[Python-checkins] r56246 - sandbox/trunk/import_in_py/_importlib.py sandbox/trunk/import_in_py/importlib.py
brett.cannon
python-checkins at python.org
Wed Jul 11 01:48:48 CEST 2007
Author: brett.cannon
Date: Wed Jul 11 01:48:48 2007
New Revision: 56246
Modified:
sandbox/trunk/import_in_py/_importlib.py
sandbox/trunk/import_in_py/importlib.py
Log:
Rework importing of built-in modules.
Modified: sandbox/trunk/import_in_py/_importlib.py
==============================================================================
--- sandbox/trunk/import_in_py/_importlib.py (original)
+++ sandbox/trunk/import_in_py/_importlib.py Wed Jul 11 01:48:48 2007
@@ -58,12 +58,7 @@
"""
from __future__ import with_statement
-
-# Built-in modules required by this module to work.
-# XXX posix can be named os2 or nt.
-# XXX posix guaranteed on all platforms (especially posix.stat)?
-_required_builtins = ['imp', 'sys', 'marshal', 'posix']
-
+# The injected modules are 'imp', 'sys', 'marshal', 'posix' (aka 'nt' & 'os2').
def _path_join(*args):
"""Replacement for os.path.join so as to remove dependency on os module."""
Modified: sandbox/trunk/import_in_py/importlib.py
==============================================================================
--- sandbox/trunk/import_in_py/importlib.py (original)
+++ sandbox/trunk/import_in_py/importlib.py Wed Jul 11 01:48:48 2007
@@ -96,10 +96,22 @@
return False
-# Import needed built-in modules.
-for builtin_name in _importlib._required_builtins:
- module = __import__(builtin_name)
- _importlib.__dict__[builtin_name] = module
+# Required built-in modules.
+import imp, sys, marshal
+_importlib.imp = imp
+_importlib.sys = sys
+_importlib.marshal = marshal
+try:
+ import posix
+except ImportError:
+ try:
+ import nt as posix
+ except ImportError:
+ try:
+ import os2 as posix
+ except ImportError:
+ raise ImportError('posix, nt, or os2 required for importlib')
+_importlib.posix = posix
# XXX These all need to either go away or become built-in modules
# (<cough>Neal</cough>).
More information about the Python-checkins
mailing list