From 289bc05709f48d7140ac2c36cafdb55c746be9df Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Fri, 17 Aug 2007 02:30:27 +0000 Subject: [PATCH] some RiscOS stuff I missed before (was only looking for "RISCOS") --- Doc/library/tempfile.rst | 3 - Lib/os.py | 116 ++++++++++++++------------------- Lib/plat-mac/bundlebuilder.py | 2 +- Lib/site.py | 2 +- Lib/tempfile.py | 3 - Lib/test/regrtest.py | 27 -------- Lib/test/test_bz2.py | 2 +- Lib/test/test_mhlib.py | 3 +- Lib/test/test_select.py | 2 +- Lib/test/test_signal.py | 2 +- Lib/test/test_support.py | 2 - Lib/test/test_threadsignals.py | 2 +- Lib/test/test_urllib2.py | 4 -- Lib/urllib.py | 2 - Tools/freeze/freeze.py | 2 +- 15 files changed, 57 insertions(+), 117 deletions(-) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index cafdd05e836..c4ddf8b857b 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -171,9 +171,6 @@ function arguments, instead. #. A platform-specific location: - * On RiscOS, the directory named by the :envvar:`Wimp$ScrapDir` environment - variable. - * On Windows, the directories :file:`C:\\TEMP`, :file:`C:\\TMP`, :file:`\\TEMP`, and :file:`\\TMP`, in that order. diff --git a/Lib/os.py b/Lib/os.py index 48bcea25179..b8d7a0f828a 100644 --- a/Lib/os.py +++ b/Lib/os.py @@ -3,7 +3,7 @@ r"""OS routines for Mac, NT, or Posix depending on what system we're on. This exports: - all functions from posix, nt, os2, mac, or ce, e.g. unlink, stat, etc. - os.path is one of the modules posixpath, ntpath, or macpath - - os.name is 'posix', 'nt', 'os2', 'mac', 'ce' or 'riscos' + - os.name is 'posix', 'nt', 'os2', 'mac' 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 '\\') @@ -112,20 +112,6 @@ elif 'ce' in _names: __all__.extend(_get_exports_list(ce)) del ce -elif 'riscos' in _names: - name = 'riscos' - linesep = '\n' - from riscos import * - try: - from riscos import _exit - except ImportError: - pass - import riscospath as path - - import riscos - __all__.extend(_get_exports_list(riscos)) - del riscos - else: raise ImportError, 'no os specific module found' @@ -404,62 +390,58 @@ def _execvpe(file, args, env=None): raise error, last_exc, tb -if name == "riscos": - # On RISC OS, all env access goes through getenv and putenv - from riscosenviron import _Environ +# Change environ to automatically call putenv(), unsetenv if they exist. +from _abcoll import MutableMapping # Can't use collections (bootstrap) + +class _Environ(MutableMapping): + def __init__(self, environ, keymap, putenv, unsetenv): + self.keymap = keymap + self.putenv = putenv + self.unsetenv = unsetenv + self.data = data = {} + for key, value in environ.items(): + data[keymap(key)] = str(value) + def __getitem__(self, key): + return self.data[self.keymap(key)] + def __setitem__(self, key, value): + value = str(value) + self.putenv(key, value) + self.data[self.keymap(key)] = value + def __delitem__(self, key): + self.unsetenv(key) + del self.data[self.keymap(key)] + def __iter__(self): + for key in self.data: + yield key + def __len__(self): + return len(self.data) + def copy(self): + return dict(self) + def setdefault(self, key, value): + if key not in self: + self[key] = value + return self[key] + +try: + _putenv = putenv +except NameError: + _putenv = lambda key, value: None else: - # Change environ to automatically call putenv(), unsetenv if they exist. - from _abcoll import MutableMapping # Can't use collections (bootstrap) + __all__.append("putenv") - class _Environ(MutableMapping): - def __init__(self, environ, keymap, putenv, unsetenv): - self.keymap = keymap - self.putenv = putenv - self.unsetenv = unsetenv - self.data = data = {} - for key, value in environ.items(): - data[keymap(key)] = str(value) - def __getitem__(self, key): - return self.data[self.keymap(key)] - def __setitem__(self, key, value): - value = str(value) - self.putenv(key, value) - self.data[self.keymap(key)] = value - def __delitem__(self, key): - self.unsetenv(key) - del self.data[self.keymap(key)] - def __iter__(self): - for key in self.data: - yield key - def __len__(self): - return len(self.data) - def copy(self): - return dict(self) - def setdefault(self, key, value): - if key not in self: - self[key] = value - return self[key] +try: + _unsetenv = unsetenv +except NameError: + _unsetenv = lambda key: _putenv(key, "") +else: + __all__.append("unsetenv") - try: - _putenv = putenv - except NameError: - _putenv = lambda key, value: None - else: - __all__.append("putenv") +if name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE + _keymap = lambda key: str(key.upper()) +else: # Where Env Var Names Can Be Mixed Case + _keymap = lambda key: str(key) - try: - _unsetenv = unsetenv - except NameError: - _unsetenv = lambda key: _putenv(key, "") - else: - __all__.append("unsetenv") - - if name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE - _keymap = lambda key: str(key.upper()) - else: # Where Env Var Names Can Be Mixed Case - _keymap = lambda key: str(key) - - environ = _Environ(environ, _keymap, _putenv, _unsetenv) +environ = _Environ(environ, _keymap, _putenv, _unsetenv) def getenv(key, default=None): diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py index d8186c1d7d2..f1ca5b8fec8 100755 --- a/Lib/plat-mac/bundlebuilder.py +++ b/Lib/plat-mac/bundlebuilder.py @@ -272,7 +272,7 @@ del __load MAYMISS_MODULES = ['mac', 'os2', 'nt', 'ntpath', 'dos', 'dospath', 'win32api', 'ce', '_winreg', 'nturl2path', 'sitecustomize', - 'org.python.core', 'riscos', 'riscosenviron', 'riscospath' + 'org.python.core' ] STRIP_EXEC = "/usr/bin/strip" diff --git a/Lib/site.py b/Lib/site.py index 47a46f62d4a..30c54b07fd6 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -180,7 +180,7 @@ def addsitepackages(known_paths): prefixes.append(sys.exec_prefix) for prefix in prefixes: if prefix: - if sys.platform in ('os2emx', 'riscos'): + if sys.platform == 'os2emx': sitedirs = [os.path.join(prefix, "Lib", "site-packages")] elif os.sep == '/': sitedirs = [os.path.join(prefix, diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 61c64e48586..c71cebc3728 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -159,9 +159,6 @@ def _candidate_tempdir_list(): dirlist.append(dirname) except _Folder.error: pass - elif _os.name == 'riscos': - dirname = _os.getenv('Wimp$ScrapDir') - if dirname: dirlist.append(dirname) elif _os.name == 'nt': dirlist.extend([ r'c:\temp', r'c:\tmp', r'\temp', r'\tmp' ]) else: diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index e7596a58078..58b2c0b81a0 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -947,33 +947,6 @@ _expectations = { test_threadedtempfile test_threading """, - 'riscos': - """ - test_asynchat - test_atexit - test_bsddb - test_bsddb3 - test_commands - test_crypt - test_dbm - test_dl - test_fcntl - test_fork1 - test_gdbm - test_grp - test_largefile - test_locale - test_mmap - test_openpty - test_poll - test_pty - test_pwd - test_sundry - test_thread - test_threaded_import - test_threadedtempfile - test_threading - """, 'darwin': """ test__locale diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py index 32c9cefc752..2233f841baf 100644 --- a/Lib/test/test_bz2.py +++ b/Lib/test/test_bz2.py @@ -11,7 +11,7 @@ import sys import bz2 from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor -has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx", "riscos") +has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx") class BaseTest(unittest.TestCase): "Base for other testcases." diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py index ad66edeed4f..09522f7de95 100644 --- a/Lib/test/test_mhlib.py +++ b/Lib/test/test_mhlib.py @@ -13,8 +13,7 @@ import io import sys import mhlib -if (sys.platform.startswith("win") or sys.platform=="riscos" or - sys.platform.startswith("atheos")): +if sys.platform.startswith("win") or sys.platform.startswith("atheos"): # mhlib.updateline() renames a file to the name of a file that already # exists. That causes a reasonable OS to complain in test_sequence # here, like the "OSError: [Errno 17] File exists" raised on Windows. diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index fd766746f7b..b45ec7f8edf 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -42,7 +42,7 @@ else: def test(): import sys - if sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'): + if sys.platform[:3] in ('win', 'mac', 'os2'): if verbose: print("Can't test select easily on", sys.platform) return diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 9093965b568..15c6e9c9567 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -3,7 +3,7 @@ from test.test_support import verbose, TestSkipped, TestFailed, vereq import signal import os, sys, time -if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos': +if sys.platform[:3] in ('win', 'os2'): raise TestSkipped, "Can't test signal on %s" % sys.platform MAX_DURATION = 20 # Entire test should last at most 20 sec. diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index fa4c3ef2515..2d9612ed951 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -142,8 +142,6 @@ is_jython = sys.platform.startswith('java') if os.name == 'java': # Jython disallows @ in module names TESTFN = '$test' -elif os.name == 'riscos': - TESTFN = 'testfile' else: TESTFN = '@test' diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py index 286c2e420fb..9f076efb5c9 100644 --- a/Lib/test/test_threadsignals.py +++ b/Lib/test/test_threadsignals.py @@ -7,7 +7,7 @@ import os import sys from test.test_support import run_unittest, TestSkipped -if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos': +if sys.platform[:3] in ('win', 'os2'): raise TestSkipped, "Can't test signal on %s" % sys.platform process_pid = os.getpid() diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index 91d6ba7770b..dff840ecc03 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -26,10 +26,6 @@ class TrivialTests(unittest.TestCase): # urllib.pathname2url works, unfortunately... if os.name == 'mac': fname = '/' + fname.replace(':', '/') - elif os.name == 'riscos': - import string - fname = os.expand(fname) - fname = fname.translate(string.maketrans("/.", "./")) file_url = "file://%s" % fname f = urllib2.urlopen(file_url) diff --git a/Lib/urllib.py b/Lib/urllib.py index c55dee8ab3a..3ecfea7c0d0 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -46,8 +46,6 @@ if os.name == 'mac': from macurl2path import url2pathname, pathname2url elif os.name == 'nt': from nturl2path import url2pathname, pathname2url -elif os.name == 'riscos': - from rourl2path import url2pathname, pathname2url else: def url2pathname(pathname): """OS-specific conversion from a relative URL of the 'file' scheme diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py index 80db69ea1d6..d1e024f0c7a 100755 --- a/Tools/freeze/freeze.py +++ b/Tools/freeze/freeze.py @@ -125,7 +125,7 @@ def main(): # default the exclude list for each platform if win: exclude = exclude + [ 'dos', 'dospath', 'mac', 'macpath', 'macfs', 'MACFS', 'posix', - 'os2', 'ce', 'riscos', 'riscosenviron', 'riscospath', + 'os2', 'ce', ] fail_import = exclude[:]