parameters: (*atoms)
return_statement: return url or ntob("/")
docstring: Return the given path *atoms, joined into a single URL.
      
      This will correctly join a SCRIPT_NAME and PATH_INFO into the
      original URL, even if either atom is blank.
docstring_summary: Return the given path *atoms, joined into a single URL.
      
      This will correctly join a SCRIPT_NAME and PATH_INFO into the
      original URL, even if either atom is blank.
docstring_tokens: Return the given path * atoms joined into a single URL . This will correctly join a SCRIPT_NAME and PATH_INFO into the original URL even if either atom is blank .
function: def urljoin_bytes(*atoms):
      """Return the given path *atoms, joined into a single URL.
      
      This will correctly join a SCRIPT_NAME and PATH_INFO into the
      original URL, even if either atom is blank.
      """
      url = ntob("/").join([x for x in atoms if x])
      while ntob("//") in url:
          url = url.replace(ntob("//"), ntob("/"))
      # Special-case the final url of "", and return "/" instead.
      return url or ntob("/")
function_tokens: def urljoin_bytes ( * atoms ) : url = ntob ( "/" ) . join ( [ x for x in atoms if x ] ) while ntob ( "//" ) in url : url = url . replace ( ntob ( "//" ) , ntob ( "/" ) ) # Special-case the final url of "", and return "/" instead. return url or ntob ( "/" )