(original) (raw)

changeset: 79480:15949f34e08f user: Jesus Cea jcea@jcea.es date: Fri Oct 05 03:15:39 2012 +0200 files: Lib/_osx_support.py Lib/importlib/_bootstrap.py Lib/mailbox.py Lib/os.py Lib/platform.py Lib/pydoc.py Lib/site.py Lib/sysconfig.py Lib/tarfile.py Lib/test/test_tempfile.py Lib/test/test_threading.py description: #16135: Removal of OS/2 support (Python code partial cleanup) diff -r d853354e1470 -r 15949f34e08f Lib/_osx_support.py --- a/Lib/_osx_support.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/_osx_support.py Fri Oct 05 03:15:39 2012 +0200 @@ -38,7 +38,7 @@ paths = path.split(os.pathsep) base, ext = os.path.splitext(executable) - if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'): + if (sys.platform == 'win32') and (ext != '.exe'): executable = executable + '.exe' if not os.path.isfile(executable): diff -r d853354e1470 -r 15949f34e08f Lib/importlib/_bootstrap.py --- a/Lib/importlib/_bootstrap.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/importlib/_bootstrap.py Fri Oct 05 03:15:39 2012 +0200 @@ -1709,7 +1709,7 @@ builtin_module = sys.modules[builtin_name] setattr(self_module, builtin_name, builtin_module) - os_details = ('posix', ['/']), ('nt', ['\\', '/']), ('os2', ['\\', '/']) + os_details = ('posix', ['/']), ('nt', ['\\', '/']) for builtin_os, path_separators in os_details: # Assumption made in _path_join() assert all(len(sep) == 1 for sep in path_separators) @@ -1720,9 +1720,6 @@ else: try: os_module = BuiltinImporter.load_module(builtin_os) - # TODO: rip out os2 code after 3.3 is released as per PEP 11 - if builtin_os == 'os2' and 'EMX GCC' in sys.version: - path_sep = path_separators[1] break except ImportError: continue diff -r d853354e1470 -r 15949f34e08f Lib/mailbox.py --- a/Lib/mailbox.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/mailbox.py Fri Oct 05 03:15:39 2012 +0200 @@ -707,8 +707,7 @@ try: os.rename(new_file.name, self._path) except OSError as e: - if e.errno == errno.EEXIST or \ - (os.name == 'os2' and e.errno == errno.EACCES): + if e.errno == errno.EEXIST: os.remove(self._path) os.rename(new_file.name, self._path) else: @@ -2093,8 +2092,7 @@ os.rename(pre_lock.name, f.name + '.lock') dotlock_done = True except OSError as e: - if e.errno == errno.EEXIST or \ - (os.name == 'os2' and e.errno == errno.EACCES): + if e.errno == errno.EEXIST: os.remove(pre_lock.name) raise ExternalClashError('dot lock unavailable: %s' % f.name) diff -r d853354e1470 -r 15949f34e08f Lib/os.py --- a/Lib/os.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/os.py Fri Oct 05 03:15:39 2012 +0200 @@ -1,9 +1,9 @@ r"""OS routines for Mac, NT, or Posix depending on what system we're on. This exports: - - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. + - all functions from posix, nt or ce, e.g. unlink, stat, etc. - os.path is either posixpath or ntpath - - os.name is either 'posix', 'nt', 'os2' or 'ce'. + - os.name is either 'posix', 'nt' or 'ce'. - os.curdir is a string representing the current directory ('.' or ':') - os.pardir is a string representing the parent directory ('..' or '::') - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') @@ -81,30 +81,6 @@ except ImportError: pass -elif 'os2' in _names: - name = 'os2' - linesep = '\r\n' - from os2 import * - try: - from os2 import _exit - __all__.append('_exit') - except ImportError: - pass - if sys.version.find('EMX GCC') == -1: - import ntpath as path - else: - import os2emxpath as path - from _emx_link import link - - import os2 - __all__.extend(_get_exports_list(os2)) - del os2 - - try: - from os2 import _have_functions - except ImportError: - pass - elif 'ce' in _names: name = 'ce' linesep = '\r\n' @@ -715,7 +691,7 @@ __all__.append("unsetenv") def _createenviron(): - if name in ('os2', 'nt'): + if name == 'nt': # Where Env Var Names Must Be UPPERCASE def check_str(value): if not isinstance(value, str): @@ -755,7 +731,7 @@ key, default and the result are str.""" return environ.get(key, default) -supports_bytes_environ = name not in ('os2', 'nt') +supports_bytes_environ = (name != 'nt') __all__.extend(("getenv", "supports_bytes_environ")) if supports_bytes_environ: diff -r d853354e1470 -r 15949f34e08f Lib/platform.py --- a/Lib/platform.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/platform.py Fri Oct 05 03:15:39 2012 +0200 @@ -122,7 +122,7 @@ except AttributeError: # os.devnull was added in Python 2.4, so emulate it for earlier # Python versions - if sys.platform in ('dos','win32','win16','os2'): + if sys.platform in ('dos','win32','win16'): # Use the old CP/M NUL as device name DEV_NULL = 'NUL' else: @@ -896,7 +896,7 @@ """ Interface to the system's uname command. """ - if sys.platform in ('dos','win32','win16','os2'): + if sys.platform in ('dos','win32','win16'): # XXX Others too ? return default try: @@ -919,7 +919,7 @@ default in case the command should fail. """ - if sys.platform in ('dos','win32','win16','os2'): + if sys.platform in ('dos','win32','win16'): # XXX Others too ? return default target = _follow_symlinks(target) diff -r d853354e1470 -r 15949f34e08f Lib/pydoc.py --- a/Lib/pydoc.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/pydoc.py Fri Oct 05 03:15:39 2012 +0200 @@ -1393,7 +1393,7 @@ return lambda text: pipepager(text, os.environ['PAGER']) if os.environ.get('TERM') in ('dumb', 'emacs'): return plainpager - if sys.platform == 'win32' or sys.platform.startswith('os2'): + if sys.platform == 'win32': return lambda text: tempfilepager(plain(text), 'more <') if hasattr(os, 'system') and os.system('(less) 2>/dev/null') == 0: return lambda text: pipepager(text, 'less') diff -r d853354e1470 -r 15949f34e08f Lib/site.py --- a/Lib/site.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/site.py Fri Oct 05 03:15:39 2012 +0200 @@ -300,7 +300,7 @@ continue seen.add(prefix) - if sys.platform in ('os2emx', 'riscos'): + if sys.platform == 'riscos': sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) elif os.sep == '/': sitepackages.append(os.path.join(prefix, "lib", @@ -329,23 +329,6 @@ return known_paths -def setBEGINLIBPATH(): - """The OS/2 EMX port has optional extension modules that do double duty - as DLLs (and must use the .DLL file extension) for other extensions. - The library search path needs to be amended so these will be found - during module import. Use BEGINLIBPATH so that these are at the start - of the library search path. - - """ - dllpath = os.path.join(sys.prefix, "Lib", "lib-dynload") - libpath = os.environ['BEGINLIBPATH'].split(';') - if libpath[-1]: - libpath.append(dllpath) - else: - libpath[-1] = dllpath - os.environ['BEGINLIBPATH'] = ';'.join(libpath) - - def setquit(): """Define new builtins 'quit' and 'exit'. @@ -595,8 +578,6 @@ ENABLE_USER_SITE = check_enableusersite() known_paths = addusersitepackages(known_paths) known_paths = addsitepackages(known_paths) - if sys.platform == 'os2emx': - setBEGINLIBPATH() setquit() setcopyright() sethelper() diff -r d853354e1470 -r 15949f34e08f Lib/sysconfig.py --- a/Lib/sysconfig.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/sysconfig.py Fri Oct 05 03:15:39 2012 +0200 @@ -52,25 +52,6 @@ 'scripts': '{base}/Scripts', 'data': '{base}', }, - 'os2': { - 'stdlib': '{installed_base}/Lib', - 'platstdlib': '{base}/Lib', - 'purelib': '{base}/Lib/site-packages', - 'platlib': '{base}/Lib/site-packages', - 'include': '{installed_base}/Include', - 'platinclude': '{installed_base}/Include', - 'scripts': '{base}/Scripts', - 'data': '{base}', - }, - 'os2_home': { - 'stdlib': '{userbase}/lib/python{py_version_short}', - 'platstdlib': '{userbase}/lib/python{py_version_short}', - 'purelib': '{userbase}/lib/python{py_version_short}/site-packages', - 'platlib': '{userbase}/lib/python{py_version_short}/site-packages', - 'include': '{userbase}/include/python{py_version_short}', - 'scripts': '{userbase}/bin', - 'data': '{userbase}', - }, 'nt_user': { 'stdlib': '{userbase}/Python{py_version_nodot}', 'platstdlib': '{userbase}/Python{py_version_nodot}', @@ -210,7 +191,7 @@ def joinuser(*args): return os.path.expanduser(os.path.join(*args)) - # what about 'os2emx', 'riscos' ? + # what about 'riscos' ? if os.name == "nt": base = os.environ.get("APPDATA") or "~" if env_base: @@ -524,7 +505,7 @@ # sys.abiflags may not be defined on all platforms. _CONFIG_VARS['abiflags'] = '' - if os.name in ('nt', 'os2'): + if os.name == 'nt': _init_non_posix(_CONFIG_VARS) if os.name == 'posix': _init_posix(_CONFIG_VARS) diff -r d853354e1470 -r 15949f34e08f Lib/tarfile.py --- a/Lib/tarfile.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/tarfile.py Fri Oct 05 03:15:39 2012 +0200 @@ -2213,8 +2213,7 @@ if tarinfo.issym() and hasattr(os, "lchown"): os.lchown(targetpath, u, g) else: - if sys.platform != "os2emx": - os.chown(targetpath, u, g) + os.chown(targetpath, u, g) except EnvironmentError as e: raise ExtractError("could not change owner") diff -r d853354e1470 -r 15949f34e08f Lib/test/test_tempfile.py --- a/Lib/test/test_tempfile.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/test/test_tempfile.py Fri Oct 05 03:15:39 2012 +0200 @@ -276,7 +276,7 @@ file = self.do_create() mode = stat.S_IMODE(os.stat(file.name).st_mode) expected = 0o600 - if sys.platform in ('win32', 'os2emx'): + if sys.platform == 'win32': # There's no distinction among 'user', 'group' and 'world'; # replicate the 'user' bits. user = expected >> 6 @@ -310,7 +310,7 @@ # On Windows a spawn* /path/ with embedded spaces shouldn't be quoted, # but an arg with embedded spaces should be decorated with double # quotes on each end - if sys.platform in ('win32',): + if sys.platform == 'win32': decorated = '"%s"' % sys.executable tester = '"%s"' % tester else: @@ -479,7 +479,7 @@ mode = stat.S_IMODE(os.stat(dir).st_mode) mode &= 0o777 # Mask off sticky bits inherited from /tmp expected = 0o700 - if sys.platform in ('win32', 'os2emx'): + if sys.platform == 'win32': # There's no distinction among 'user', 'group' and 'world'; # replicate the 'user' bits. user = expected >> 6 diff -r d853354e1470 -r 15949f34e08f Lib/test/test_threading.py --- a/Lib/test/test_threading.py Fri Oct 05 02:48:46 2012 +0200 +++ b/Lib/test/test_threading.py Fri Oct 05 03:15:39 2012 +0200 @@ -451,8 +451,7 @@ # #12316 and #11870), and fork() from a worker thread is known to trigger # problems with some operating systems (issue #3863): skip problematic tests # on platforms known to behave badly. - platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5', - 'os2emx') + platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5') def _run_and_join(self, script): script = """if 1: /jcea@jcea.es