Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 85ae356

Browse files
committed
Merge w/ 3.3 more fixes thanks to issue #17098
2 parents f41fa4f + da9cf0e commit 85ae356

3 files changed

Lines changed: 296 additions & 271 deletions

File tree

Lib/importlib/_bootstrap.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,10 +1724,13 @@ def _setup(sys_module, _imp_module):
17241724
BYTECODE_SUFFIXES = DEBUG_BYTECODE_SUFFIXES
17251725

17261726
module_type = type(sys)
1727-
for module in sys.modules.values():
1727+
for name, module in sys.modules.items():
17281728
if isinstance(module, module_type):
17291729
if not hasattr(module, '__loader__'):
1730-
module.__loader__ = BuiltinImporter
1730+
if name in sys.builtin_module_names:
1731+
module.__loader__ = BuiltinImporter
1732+
elif _imp.is_frozen(name):
1733+
module.__loader__ = FrozenImporter
17311734

17321735
self_module = sys.modules[__name__]
17331736
for builtin_name in ('_io', '_warnings', 'builtins', 'marshal'):

Lib/test/test_importlib/test_api.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from . import util
22
import imp
33
import importlib
4+
from importlib import _bootstrap
45
from importlib import machinery
56
import sys
67
from test import support
@@ -184,6 +185,14 @@ def test_everyone_has___loader__(self):
184185
if isinstance(module, types.ModuleType):
185186
self.assertTrue(hasattr(module, '__loader__'),
186187
'{!r} lacks a __loader__ attribute'.format(name))
188+
if name in sys.builtin_module_names:
189+
self.assertIn(module.__loader__,
190+
(importlib.machinery.BuiltinImporter,
191+
importlib._bootstrap.BuiltinImporter))
192+
elif imp.is_frozen(name):
193+
self.assertIn(module.__loader__,
194+
(importlib.machinery.FrozenImporter,
195+
importlib._bootstrap.FrozenImporter))
187196

188197

189198
if __name__ == '__main__':

0 commit comments

Comments
 (0)