parameters: (url)
return_statement: return path
docstring: OS-specific conversion from a relative URL of the 'file' scheme
      to a file system path; not recommended for general use.
docstring_summary: OS-specific conversion from a relative URL of the 'file' scheme
      to a file system path; not recommended for general use.
docstring_tokens: OS - specific conversion from a relative URL of the file scheme to a file system path ; not recommended for general use .
function: def url2pathname(url):
      """OS-specific conversion from a relative URL of the 'file' scheme
      to a file system path; not recommended for general use."""
      # e.g.
      # ///C|/foo/bar/spam.foo
      # becomes
      # C:\foo\bar\spam.foo
      import string, urllib
      # Windows itself uses ":" even in URLs.
      url = url.replace(':', '|')
      if not '|' in url:
          # No drive specifier, just convert slashes
          if url[:4] == '////':
              # path is something like ////host/path/on/remote/host
              # convert this to \\host\path\on\remote\host
              # (notice halving of slashes at the start of the path)
              url = url[2:]
          components = url.split('/')
          # make sure not to convert quoted slashes :-)
          return urllib.unquote('\\'.join(components))
      comp = url.split('|')
      if len(comp) != 2 or comp[0][-1] not in string.ascii_letters:
          error = 'Bad URL: ' + url
          raise IOError, error
      drive = comp[0][-1].upper()
      path = drive + ':'
      components = comp[1].split('/')
      for comp in components:
          if comp:
              path = path + '\\' + urllib.unquote(comp)
      # Issue #11474: url like '/C|/' should convert into 'C:\\'
      if path.endswith(':') and url.endswith('/'):
          path += '\\'
      return path
function_tokens: def url2pathname ( url ) : # e.g. # ///C|/foo/bar/spam.foo # becomes # C:\foo\bar\spam.foo import string , urllib # Windows itself uses ":" even in URLs. url = url . replace ( ':' , '|' ) if not '|' in url : # No drive specifier, just convert slashes if url [ : 4 ] == '////' : # path is something like ////host/path/on/remote/host # convert this to \\host\path\on\remote\host # (notice halving of slashes at the start of the path) url = url [ 2 : ] components = url . split ( '/' ) # make sure not to convert quoted slashes :-) return urllib . unquote ( '\\' . join ( components ) ) comp = url . split ( '|' ) if len ( comp ) != 2 or comp [ 0 ] [ - 1 ] not in string . ascii_letters : error = 'Bad URL: ' + url raise IOError , error drive = comp [ 0 ] [ - 1 ] . upper ( ) path = drive + ':' components = comp [ 1 ] . split ( '/' ) for comp in components : if comp : path = path + '\\' + urllib . unquote ( comp ) # Issue #11474: url like '/C|/' should convert into 'C:\\' if path . endswith ( ':' ) and url . endswith ( '/' ) : path += '\\' return path