diff options
Diffstat (limited to 'Lib/os.py')
-rw-r--r-- | Lib/os.py | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -19,12 +19,22 @@ and opendir), and leave all pathname manipulation to os.path (e.g., split and join). """ +#' + import sys _names = sys.builtin_module_names altsep = None +__all__ = [] + +def _get_exports_list(module): + try: + return list(module.__all__) + except AttributeError: + return [n for n in dir(module) if n[0] != '_'] + if 'posix' in _names: name = 'posix' linesep = '\n' @@ -38,6 +48,11 @@ if 'posix' in _names: import posixpath path = posixpath del posixpath + + import posix + __all__.extend(_get_exports_list(posix)) + del posix + elif 'nt' in _names: name = 'nt' linesep = '\r\n' @@ -52,6 +67,11 @@ elif 'nt' in _names: import ntpath path = ntpath del ntpath + + import nt + __all__.extend(_get_exports_list(nt)) + del nt + elif 'dos' in _names: name = 'dos' linesep = '\r\n' @@ -65,6 +85,11 @@ elif 'dos' in _names: import dospath path = dospath del dospath + + import dos + __all__.extend(_get_exports_list(dos)) + del dos + elif 'os2' in _names: name = 'os2' linesep = '\r\n' @@ -78,6 +103,11 @@ elif 'os2' in _names: import ntpath path = ntpath del ntpath + + import os2 + __all__.extend(_get_exports_list(os2)) + del os2 + elif 'mac' in _names: name = 'mac' linesep = '\r' @@ -91,6 +121,11 @@ elif 'mac' in _names: import macpath path = macpath del macpath + + import mac + __all__.extend(_get_exports_list(mac)) + del mac + elif 'ce' in _names: name = 'ce' linesep = '\r\n' @@ -106,13 +141,22 @@ elif 'ce' in _names: import ntpath path = ntpath del ntpath + + import ce + __all__.extend(_get_exports_list(ce)) + del ce + else: raise ImportError, 'no os specific module found' +__all__.append("path") + del _names sys.modules['os.path'] = path +#' + # Super directory utilities. # (Inspired by Eric Raymond; the doc strings are mostly his) @@ -180,6 +224,8 @@ def renames(old, new): except error: pass +__all__.extend(["makedirs", "removedirs", "renames"]) + # Make sure os.environ exists, at least try: environ @@ -234,6 +280,8 @@ def execvpe(file, args, env): args may be a list or tuple of strings. """ _execvpe(file, args, env) +__all__.extend(["execl","execle","execlp","execlpe","execvp","execvpe"]) + _notfound = None def _execvpe(file, args, env=None): if env is not None: @@ -319,6 +367,7 @@ def getenv(key, default=None): The optional second argument can specify an alternate default.""" return environ.get(key, default) +__all__.append("getenv") def _exists(name): try: @@ -454,6 +503,10 @@ otherwise return -SIG, where SIG is the signal that killed it. """ return spawnvpe(mode, file, args[:-1], env) + __all__.extend(["spawnlp","spawnlpe","spawnv", "spawnve","spawnvp", + "spawnvpe","spawnl","spawnle",]) + + # Supply popen2 etc. (for Unix) if _exists("fork"): if not _exists("popen2"): @@ -461,15 +514,18 @@ if _exists("fork"): import popen2 stdout, stdin = popen2.popen2(cmd, bufsize) return stdin, stdout + __all__.append("popen2") if not _exists("popen3"): def popen3(cmd, mode="t", bufsize=-1): import popen2 stdout, stdin, stderr = popen2.popen3(cmd, bufsize) return stdin, stdout, stderr + __all__.append("popen3") if not _exists("popen4"): def popen4(cmd, mode="t", bufsize=-1): import popen2 stdout, stdin = popen2.popen4(cmd, bufsize) return stdin, stdout + __all__.append("popen4") |