Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision 90c25aa2b656c47304c77723be1987cf34b99d36 authored by Jack Jansen on 25 March 2002, 10:45:21 UTC, committed by Jack Jansen on 25 March 2002, 10:45:21 UTC
Weaklink most toolbox modules, improving backward compatibility. Modules will no longer fail to load if a single routine is missing on the curent OS version, in stead calling the missing routine will raise an exception. Should finally fix 531398. 2.2.1 candidate. Also blacklisted some constants with definitions that were not Python-compatible.
1 parent 2bfd14e
Tip revision: 90c25aa2b656c47304c77723be1987cf34b99d36 authored by Jack Jansen on 25 March 2002, 10:45:21 UTC
Backport of _Icnmodule.c 1.5, icnsupport.py 1.7:
Backport of _Icnmodule.c 1.5, icnsupport.py 1.7:
Tip revision: 90c25aa
nturl2path.py
"""Convert a NT pathname to a file URL and vice versa."""
def url2pathname(url):
r"""Convert a URL to a DOS path.
///C|/foo/bar/spam.foo
becomes
C:\foo\bar\spam.foo
"""
import string, urllib
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()
components = comp[1].split('/')
path = drive + ':'
for comp in components:
if comp:
path = path + '\\' + urllib.unquote(comp)
return path
def pathname2url(p):
r"""Convert a DOS path name to a file url.
C:\foo\bar\spam.foo
becomes
///C|/foo/bar/spam.foo
"""
import urllib
if not ':' in p:
# No drive specifier, just convert slashes and quote the name
if p[:2] == '\\\\':
# path is something like \\host\path\on\remote\host
# convert this to ////host/path/on/remote/host
# (notice doubling of slashes at the start of the path)
p = '\\\\' + p
components = p.split('\\')
return urllib.quote('/'.join(components))
comp = p.split(':')
if len(comp) != 2 or len(comp[0]) > 1:
error = 'Bad path: ' + p
raise IOError, error
drive = urllib.quote(comp[0].upper())
components = comp[1].split('\\')
path = '///' + drive + '|'
for comp in components:
if comp:
path = path + '/' + urllib.quote(comp)
return path
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...