From 61de0ac4bba91ecd3da0d31ba9fe288d45027ed9 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 5 Dec 1997 21:24:30 +0000 Subject: Reindented according to new standard, without tabs. Also added one more os2 specific piece of code, by Jeff Rush. --- Lib/os.py | 248 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 131 insertions(+), 117 deletions(-) diff --git a/Lib/os.py b/Lib/os.py index 2776cd7..6f7e3ed 100644 --- a/Lib/os.py +++ b/Lib/os.py @@ -24,151 +24,165 @@ _names = sys.builtin_module_names altsep = None if 'posix' in _names: - name = 'posix' - curdir = '.'; pardir = '..'; sep = '/'; pathsep = ':' - defpath = ':/bin:/usr/bin' - from posix import * - try: - from posix import _exit - except ImportError: - pass - import posixpath - path = posixpath - del posixpath + name = 'posix' + curdir = '.'; pardir = '..'; sep = '/'; pathsep = ':' + defpath = ':/bin:/usr/bin' + from posix import * + try: + from posix import _exit + except ImportError: + pass + import posixpath + path = posixpath + del posixpath elif 'nt' in _names: - name = 'nt' - curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' - defpath = '.;C:\\bin' - from nt import * - try: - from nt import _exit - except ImportError: - pass - import ntpath - path = ntpath - del ntpath + name = 'nt' + curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' + defpath = '.;C:\\bin' + from nt import * + try: + from nt import _exit + except ImportError: + pass + import ntpath + path = ntpath + del ntpath elif 'dos' in _names: - name = 'dos' - curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' - defpath = '.;C:\\bin' - from dos import * - try: - from dos import _exit - except ImportError: - pass - import dospath - path = dospath - del dospath + name = 'dos' + curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' + defpath = '.;C:\\bin' + from dos import * + try: + from dos import _exit + except ImportError: + pass + import dospath + path = dospath + del dospath elif 'os2' in _names: - name = 'os2' - curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' - defpath = '.;C:\\bin' - from os2 import * - try: - from os2 import _exit - except ImportError: - pass - import ntpath - path = ntpath - del ntpath + name = 'os2' + curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';' + defpath = '.;C:\\bin' + from os2 import * + try: + from os2 import _exit + except ImportError: + pass + import ntpath + path = ntpath + del ntpath elif 'mac' in _names: - name = 'mac' - curdir = ':'; pardir = '::'; sep = ':'; pathsep = '\n' - defpath = ':' - from mac import * - try: - from mac import _exit - except ImportError: - pass - import macpath - path = macpath - del macpath + name = 'mac' + curdir = ':'; pardir = '::'; sep = ':'; pathsep = '\n' + defpath = ':' + from mac import * + try: + from mac import _exit + except ImportError: + pass + import macpath + path = macpath + del macpath else: - raise ImportError, 'no os specific module found' + raise ImportError, 'no os specific module found' del _names # Make sure os.environ exists, at least try: - environ + environ except NameError: - environ = {} + environ = {} def execl(file, *args): - execv(file, args) + execv(file, args) def execle(file, *args): - env = args[-1] - execve(file, args[:-1], env) + env = args[-1] + execve(file, args[:-1], env) def execlp(file, *args): - execvp(file, args) + execvp(file, args) def execlpe(file, *args): - env = args[-1] - execvpe(file, args[:-1], env) + env = args[-1] + execvpe(file, args[:-1], env) def execvp(file, args): - _execvpe(file, args) + _execvpe(file, args) def execvpe(file, args, env): - _execvpe(file, args, env) + _execvpe(file, args, env) _notfound = None def _execvpe(file, args, env = None): - if env: - func = execve - argrest = (args, env) - else: - func = execv - argrest = (args,) - env = environ - global _notfound - head, tail = path.split(file) - if head: - apply(func, (file,) + argrest) - return - if env.has_key('PATH'): - envpath = env['PATH'] - else: - envpath = defpath - import string - PATH = string.splitfields(envpath, pathsep) - if not _notfound: - import tempfile - # Exec a file that is guaranteed not to exist - try: execv(tempfile.mktemp(), ()) - except error, _notfound: pass - exc, arg = error, _notfound - for dir in PATH: - fullname = path.join(dir, file) - try: - apply(func, (fullname,) + argrest) - except error, (errno, msg): - if errno != arg[0]: - exc, arg = error, (errno, msg) - raise exc, arg + if env: + func = execve + argrest = (args, env) + else: + func = execv + argrest = (args,) + env = environ + global _notfound + head, tail = path.split(file) + if head: + apply(func, (file,) + argrest) + return + if env.has_key('PATH'): + envpath = env['PATH'] + else: + envpath = defpath + import string + PATH = string.splitfields(envpath, pathsep) + if not _notfound: + import tempfile + # Exec a file that is guaranteed not to exist + try: execv(tempfile.mktemp(), ()) + except error, _notfound: pass + exc, arg = error, _notfound + for dir in PATH: + fullname = path.join(dir, file) + try: + apply(func, (fullname,) + argrest) + except error, (errno, msg): + if errno != arg[0]: + exc, arg = error, (errno, msg) + raise exc, arg # Change environ to automatically call putenv() if it exists try: - # This will fail if there's no putenv - putenv + # This will fail if there's no putenv + putenv except NameError: - pass + pass else: - import UserDict - - class _Environ(UserDict.UserDict): - def __init__(self, environ): - UserDict.UserDict.__init__(self) - self.data = environ - def __getinitargs__(self): - import copy - return (copy.copy(self.data),) - def __setitem__(self, key, item): - putenv(key, item) - self.data[key] = item - def __copy__(self): - return _Environ(self.data.copy()) - - environ = _Environ(environ) + import UserDict + + if name in ('os2', ): # Where Env Var Names Must Be UPPERCASE + import string + class _Environ(UserDict.UserDict): + def __init__(self, environ): + UserDict.UserDict.__init__(self) + self.data = environ + def __setitem__(self, key, item): + key = string.upper(key) + putenv(key, item) + self.data[key] = item + def __getitem__(self, key): + return self.data[string.upper(key)] + + else: # Where Env Var Names Can Be Mixed Case + class _Environ(UserDict.UserDict): + def __init__(self, environ): + UserDict.UserDict.__init__(self) + self.data = environ + def __getinitargs__(self): + import copy + return (copy.copy(self.data),) + def __setitem__(self, key, item): + putenv(key, item) + self.data[key] = item + def __copy__(self): + return _Environ(self.data.copy()) + + environ = _Environ(environ) -- cgit v0.12