[Python-checkins] cpython (merge 3.3 -> default): Merge w/ 3.3 more fixes thanks to issue #17098
brett.cannon
python-checkins at python.org
Fri Feb 1 22:38:04 CET 2013
http://hg.python.org/cpython/rev/306f066e6a33
changeset: 81885:306f066e6a33
parent: 81883:370882f297a4
parent: 81884:19ea454ccdf7
user: Brett Cannon <brett at python.org>
date: Fri Feb 01 16:36:29 2013 -0500
summary:
Merge w/ 3.3 more fixes thanks to issue #17098
files:
Lib/importlib/_bootstrap.py | 7 +-
Lib/test/test_importlib/test_api.py | 9 +
Python/importlib.h | 551 ++++++++-------
3 files changed, 296 insertions(+), 271 deletions(-)
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1724,10 +1724,13 @@
BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES
module_type = type(sys)
- for module in sys.modules.values():
+ for name, module in sys.modules.items():
if isinstance(module, module_type):
if not hasattr(module, '__loader__'):
- module.__loader__ = BuiltinImporter
+ if name in sys.builtin_module_names:
+ module.__loader__ = BuiltinImporter
+ elif _imp.is_frozen(name):
+ module.__loader__ = FrozenImporter
self_module = sys.modules[__name__]
for builtin_name in ('_io', '_warnings', 'builtins', 'marshal'):
diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py
--- a/Lib/test/test_importlib/test_api.py
+++ b/Lib/test/test_importlib/test_api.py
@@ -1,6 +1,7 @@
from . import util
import imp
import importlib
+from importlib import _bootstrap
from importlib import machinery
import sys
from test import support
@@ -184,6 +185,14 @@
if isinstance(module, types.ModuleType):
self.assertTrue(hasattr(module, '__loader__'),
'{!r} lacks a __loader__ attribute'.format(name))
+ if name in sys.builtin_module_names:
+ self.assertIn(module.__loader__,
+ (importlib.machinery.BuiltinImporter,
+ importlib._bootstrap.BuiltinImporter))
+ elif imp.is_frozen(name):
+ self.assertIn(module.__loader__,
+ (importlib.machinery.FrozenImporter,
+ importlib._bootstrap.FrozenImporter))
if __name__ == '__main__':
diff --git a/Python/importlib.h b/Python/importlib.h
--- a/Python/importlib.h
+++ b/Python/importlib.h
[stripped]
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list