code: def url_quote (url):
      
      if not url_is_absolute(url):
          return document_quote(url)
      urlparts = list(urlparse.urlsplit(url))
      urlparts[0] = url_quote_part(urlparts[0]) # scheme
      urlparts[1] = url_quote_part(urlparts[1], ':') # host
      urlparts[2] = url_quote_part(urlparts[2], '/=,') # path
      urlparts[3] = url_quote_part(urlparts[3], '&=,') # query
      l = []
      for k, v, sep in parse_qsl(urlparts[3], True): # query
          k = url_quote_part(k, '/-:,;')
          if v:
              v = url_quote_part(v, '/-:,;')
              l.append("%s=%s%s" % (k, v, sep))
          else:
              l.append("%s%s" % (k, sep))
      urlparts[3] = ''.join(l)
      urlparts[4] = url_quote_part(urlparts[4]) # anchor
      return urlunsplit(urlparts)
docs: Quote given URL.