Kaydet (Commit) 85ae3566 authored tarafından Brett Cannon's avatar Brett Cannon

Merge w/ 3.3 more fixes thanks to issue #17098

...@@ -1724,10 +1724,13 @@ def _setup(sys_module, _imp_module): ...@@ -1724,10 +1724,13 @@ def _setup(sys_module, _imp_module):
BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES
module_type = type(sys) module_type = type(sys)
for module in sys.modules.values(): for name, module in sys.modules.items():
if isinstance(module, module_type): if isinstance(module, module_type):
if not hasattr(module, '__loader__'): if not hasattr(module, '__loader__'):
if name in sys.builtin_module_names:
module.__loader__ = BuiltinImporter module.__loader__ = BuiltinImporter
elif _imp.is_frozen(name):
module.__loader__ = FrozenImporter
self_module = sys.modules[__name__] self_module = sys.modules[__name__]
for builtin_name in ('_io', '_warnings', 'builtins', 'marshal'): for builtin_name in ('_io', '_warnings', 'builtins', 'marshal'):
......
from . import util from . import util
import imp import imp
import importlib import importlib
from importlib import _bootstrap
from importlib import machinery from importlib import machinery
import sys import sys
from test import support from test import support
...@@ -184,6 +185,14 @@ class StartupTests(unittest.TestCase): ...@@ -184,6 +185,14 @@ class StartupTests(unittest.TestCase):
if isinstance(module, types.ModuleType): if isinstance(module, types.ModuleType):
self.assertTrue(hasattr(module, '__loader__'), self.assertTrue(hasattr(module, '__loader__'),
'{!r} lacks a __loader__ attribute'.format(name)) '{!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__': if __name__ == '__main__':
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment