mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Added 'change_root()' to forcibly slap a new root directory onto a pathname,
even if it's already absolute. Currently only implemented for Unix; I'm not entirely sure of the right thing to do for DOS/Windows, and have no clue what to do for Mac OS.
This commit is contained in:
parent
bad9c7675a
commit
67f75d4bcb
1 changed files with 26 additions and 0 deletions
|
@ -85,6 +85,32 @@ def native_path (pathname):
|
||||||
# native_path ()
|
# native_path ()
|
||||||
|
|
||||||
|
|
||||||
|
def change_root (new_root, pathname):
|
||||||
|
|
||||||
|
"""Return 'pathname' with 'new_root' prepended. If 'pathname' is
|
||||||
|
relative, this is equivalent to "os.path.join(new_root,pathname)".
|
||||||
|
Otherwise, it requires making 'pathname' relative and then joining the
|
||||||
|
two, which is tricky on DOS/Windows and Mac OS."""
|
||||||
|
|
||||||
|
if not abspath (pathname):
|
||||||
|
return os.path.join (new_root, pathname)
|
||||||
|
|
||||||
|
elif os.name == 'posix':
|
||||||
|
return os.path.join (new_root, pathname[1:])
|
||||||
|
|
||||||
|
elif os.name == 'nt':
|
||||||
|
(root_drive, root_path) = os.path.splitdrive (new_root)
|
||||||
|
(drive, path) = os.path.splitdrive (pathname)
|
||||||
|
raise RuntimeError, "I give up -- not sure how to do this on Windows"
|
||||||
|
|
||||||
|
elif os.name == 'mac':
|
||||||
|
raise RuntimeError, "no clue how to do this on Mac OS"
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise DistutilsPlatformError, \
|
||||||
|
"nothing known about platform '%s'" % os.name
|
||||||
|
|
||||||
|
|
||||||
def _check_environ ():
|
def _check_environ ():
|
||||||
"""Ensure that 'os.environ' has all the environment variables we
|
"""Ensure that 'os.environ' has all the environment variables we
|
||||||
guarantee that users can use in config files, command-line
|
guarantee that users can use in config files, command-line
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue