summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-03-21 16:31:41 (GMT)
committerGuido van Rossum <guido@python.org>1996-03-21 16:31:41 (GMT)
commit71ac945321dbb10279aaff0a88231f9b1f4f1882 (patch)
treec47d45bb475d7c90b5e2b8a17d81b6956c60ba79 /Lib
parent857e88eab58a52976db448ab9664fbdcbacb88a9 (diff)
downloadcpython-71ac945321dbb10279aaff0a88231f9b1f4f1882.zip
cpython-71ac945321dbb10279aaff0a88231f9b1f4f1882.tar.gz
cpython-71ac945321dbb10279aaff0a88231f9b1f4f1882.tar.bz2
move mac url2path conversion to separate module
Diffstat (limited to 'Lib')
-rw-r--r--Lib/urllib.py51
1 files changed, 1 insertions, 50 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py
index f036078..82a39f2 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -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