]> granicus.if.org Git - python/commitdiff
move mac url2path conversion to separate module
authorGuido van Rossum <guido@python.org>
Thu, 21 Mar 1996 16:31:41 +0000 (16:31 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 21 Mar 1996 16:31:41 +0000 (16:31 +0000)
Lib/urllib.py

index f036078b895117734e0ee60f7319cca907212140..82a39f2fad1e38f07efa0ec77c3aedae43562c3e 100644 (file)
@@ -24,56 +24,7 @@ __version__ = '1.3'
 
 # Helper for non-unix systems
 if os.name == 'mac':
-       def url2pathname(pathname):
-               "Convert /-delimited pathname to mac pathname"
-               #
-               # XXXX The .. handling should be fixed...
-               #
-               tp = splittype(pathname)[0]
-               if tp and tp <> 'file':
-                       raise RuntimeError, 'Cannot convert non-local URL to pathname'
-               components = string.split(pathname, '/')
-               # Remove . and embedded ..
-               i = 0
-               while i < len(components):
-                       if components[i] == '.':
-                               del components[i]
-                       elif components[i] == '..' and i > 0 and \
-                                                 components[i-1] not in ('', '..'):
-                               del components[i-1:i+1]
-                               i = i-1
-                       elif components[i] == '' and i > 0 and components[i-1] <> '':
-                               del components[i]
-                       else:
-                               i = i+1
-               if not components[0]:
-                       # Absolute unix path, don't start with colon
-                       return string.join(components[1:], ':')
-               else:
-                       # relative unix path, start with colon. First replace
-                       # leading .. by empty strings (giving ::file)
-                       i = 0
-                       while i < len(components) and components[i] == '..':
-                               components[i] = ''
-                               i = i + 1
-                       return ':' + string.join(components, ':')
-                       
-       def pathname2url(pathname):
-               "convert mac pathname to /-delimited pathname"
-               if '/' in pathname:
-                       raise RuntimeError, "Cannot convert pathname containing slashes"
-               components = string.split(pathname, ':')
-               # Replace empty string ('::') by .. (will result in '/../' later)
-               for i in range(1, len(components)):
-                       if components[i] == '':
-                               components[i] = '..'
-               # Truncate names longer than 31 bytes
-               components = map(lambda x: x[:31], components)
-               
-               if os.path.isabs(pathname):
-                       return '/' + string.join(components, '/')
-               else:
-                       return string.join(components, '/')
+       from macurl2path import url2pathname, pathname2url
 else:
        def url2pathname(pathname):
                return pathname