mirror of
https://github.com/python/cpython.git
synced 2024-11-24 02:15:30 +08:00
bpo-26131: Deprecate usage of load_module() (GH-23469)
Raise an ImportWarning when the import system falls back on load_module(). As for implementations of load_module(), raise a DeprecationWarning.
This commit is contained in:
parent
79c1849b9e
commit
2de5097ba4
@ -394,7 +394,8 @@ Optimizations
|
||||
with ``gcc`` by up to 30%. See `this article
|
||||
<https://developers.redhat.com/blog/2020/06/25/red-hat-enterprise-linux-8-2-brings-faster-python-3-8-run-speeds/>`_
|
||||
for more details. (Contributed by Victor Stinner and Pablo Galindo in
|
||||
:issue:`38980`)
|
||||
:issue:`38980`.)
|
||||
|
||||
|
||||
* Function parameters and their annotations are no longer computed at runtime,
|
||||
but rather at compilation time. They are stored as a tuple of strings at the
|
||||
@ -421,6 +422,21 @@ Deprecated
|
||||
as appropriate to help identify code which needs updating during
|
||||
this transition.
|
||||
|
||||
* The various ``load_module()`` methods of :mod:`importlib` have been
|
||||
documented as deprecated since Python 3.6, but will now also trigger
|
||||
a :exc:`DeprecationWarning`. Use
|
||||
:meth:`~importlib.abc.Loader.exec_module` instead.
|
||||
(Contributed by Brett Cannon in :issue:`26131`.)
|
||||
|
||||
* :meth:`zimport.zipimporter.load_module` has been deprecated in
|
||||
preference for :meth:`~zipimport.zipimporter.exec_module`.
|
||||
(Contributed by Brett Cannon in :issue:`26131`.)
|
||||
|
||||
* The use of :meth:`~importlib.abc.Loader.load_module` by the import
|
||||
system now triggers an :exc:`ImportWarning` as
|
||||
:meth:`~importlib.abc.Loader.exec_module` is preferred.
|
||||
(Contributed by Brett Cannon in :issue:`26131`.)
|
||||
|
||||
* ``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python
|
||||
3.3, when it was made an alias to :class:`str`. It is now deprecated,
|
||||
scheduled for removal in Python 3.12.
|
||||
|
@ -35,6 +35,7 @@ class Loader(metaclass=abc.ABCMeta):
|
||||
"""
|
||||
if not hasattr(self, 'exec_module'):
|
||||
raise ImportError
|
||||
# Warning implemented in _load_module_shim().
|
||||
return _bootstrap._load_module_shim(self, fullname)
|
||||
|
||||
def module_repr(self, module):
|
||||
|
@ -20,6 +20,12 @@ work. One should use importlib as the public-facing version of this module.
|
||||
# reference any injected objects! This includes not only global code but also
|
||||
# anything specified at the class level.
|
||||
|
||||
def _object_name(obj):
|
||||
try:
|
||||
return obj.__qualname__
|
||||
except AttributeError:
|
||||
return type(obj).__qualname__
|
||||
|
||||
# Bootstrap-related code ######################################################
|
||||
|
||||
# Modules injected manually by _setup()
|
||||
@ -272,6 +278,9 @@ def _load_module_shim(self, fullname):
|
||||
This method is deprecated. Use loader.exec_module instead.
|
||||
|
||||
"""
|
||||
msg = ("the load_module() method is deprecated and slated for removal in "
|
||||
"Python 3.12; use exec_module() instead")
|
||||
_warnings.warn(msg, DeprecationWarning)
|
||||
spec = spec_from_loader(fullname, self)
|
||||
if fullname in sys.modules:
|
||||
module = sys.modules[fullname]
|
||||
@ -612,9 +621,9 @@ def _exec(spec, module):
|
||||
else:
|
||||
_init_module_attrs(spec, module, override=True)
|
||||
if not hasattr(spec.loader, 'exec_module'):
|
||||
# (issue19713) Once BuiltinImporter and ExtensionFileLoader
|
||||
# have exec_module() implemented, we can add a deprecation
|
||||
# warning here.
|
||||
msg = (f"{_object_name(spec.loader)}.exec_module() not found; "
|
||||
"falling back to load_module()")
|
||||
_warnings.warn(msg, ImportWarning)
|
||||
spec.loader.load_module(name)
|
||||
else:
|
||||
spec.loader.exec_module(module)
|
||||
@ -627,9 +636,8 @@ def _exec(spec, module):
|
||||
|
||||
|
||||
def _load_backward_compatible(spec):
|
||||
# (issue19713) Once BuiltinImporter and ExtensionFileLoader
|
||||
# have exec_module() implemented, we can add a deprecation
|
||||
# warning here.
|
||||
# It is assumed that all callers have been warned about using load_module()
|
||||
# appropriately before calling this function.
|
||||
try:
|
||||
spec.loader.load_module(spec.name)
|
||||
except:
|
||||
@ -668,6 +676,9 @@ def _load_unlocked(spec):
|
||||
if spec.loader is not None:
|
||||
# Not a namespace package.
|
||||
if not hasattr(spec.loader, 'exec_module'):
|
||||
msg = (f"{_object_name(spec.loader)}.exec_module() not found; "
|
||||
"falling back to load_module()")
|
||||
_warnings.warn(msg, ImportWarning)
|
||||
return _load_backward_compatible(spec)
|
||||
|
||||
module = module_from_spec(spec)
|
||||
@ -851,6 +862,7 @@ class FrozenImporter:
|
||||
This method is deprecated. Use exec_module() instead.
|
||||
|
||||
"""
|
||||
# Warning about deprecation implemented in _load_module_shim().
|
||||
return _load_module_shim(cls, fullname)
|
||||
|
||||
@classmethod
|
||||
|
@ -832,7 +832,8 @@ class _LoaderBasics:
|
||||
_bootstrap._call_with_frames_removed(exec, code, module.__dict__)
|
||||
|
||||
def load_module(self, fullname):
|
||||
"""This module is deprecated."""
|
||||
"""This method is deprecated."""
|
||||
# Warning implemented in _load_module_shim().
|
||||
return _bootstrap._load_module_shim(self, fullname)
|
||||
|
||||
|
||||
@ -1007,7 +1008,7 @@ class FileLoader:
|
||||
"""
|
||||
# The only reason for this method is for the name check.
|
||||
# Issue #14857: Avoid the zero-argument form of super so the implementation
|
||||
# of that form can be updated without breaking the frozen module
|
||||
# of that form can be updated without breaking the frozen module.
|
||||
return super(FileLoader, self).load_module(fullname)
|
||||
|
||||
@_check_name
|
||||
@ -1253,6 +1254,7 @@ class _NamespaceLoader:
|
||||
# The import system never calls this method.
|
||||
_bootstrap._verbose_message('namespace module loaded with path {!r}',
|
||||
self._path)
|
||||
# Warning implemented in _load_module_shim().
|
||||
return _bootstrap._load_module_shim(self, fullname)
|
||||
|
||||
|
||||
|
@ -6,6 +6,7 @@ machinery = util.import_importlib('importlib.machinery')
|
||||
import sys
|
||||
import types
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
@unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module')
|
||||
class LoaderTests(abc.LoaderTests):
|
||||
@ -24,7 +25,9 @@ class LoaderTests(abc.LoaderTests):
|
||||
self.assertIn(module.__name__, sys.modules)
|
||||
|
||||
def load_module(self, name):
|
||||
return self.machinery.BuiltinImporter.load_module(name)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
return self.machinery.BuiltinImporter.load_module(name)
|
||||
|
||||
def test_module(self):
|
||||
# Common case.
|
||||
|
@ -1,3 +1,4 @@
|
||||
from warnings import catch_warnings
|
||||
from .. import abc
|
||||
from .. import util
|
||||
|
||||
@ -7,6 +8,7 @@ import os.path
|
||||
import sys
|
||||
import types
|
||||
import unittest
|
||||
import warnings
|
||||
import importlib.util
|
||||
import importlib
|
||||
from test.support.script_helper import assert_python_failure
|
||||
@ -20,14 +22,18 @@ class LoaderTests(abc.LoaderTests):
|
||||
util.EXTENSIONS.file_path)
|
||||
|
||||
def load_module(self, fullname):
|
||||
return self.loader.load_module(fullname)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
return self.loader.load_module(fullname)
|
||||
|
||||
def test_load_module_API(self):
|
||||
# Test the default argument for load_module().
|
||||
self.loader.load_module()
|
||||
self.loader.load_module(None)
|
||||
with self.assertRaises(ImportError):
|
||||
self.load_module('XXX')
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
self.loader.load_module()
|
||||
self.loader.load_module(None)
|
||||
with self.assertRaises(ImportError):
|
||||
self.load_module('XXX')
|
||||
|
||||
def test_equality(self):
|
||||
other = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name,
|
||||
@ -94,6 +100,21 @@ class MultiPhaseExtensionModuleTests(abc.LoaderTests):
|
||||
self.loader = self.machinery.ExtensionFileLoader(
|
||||
self.name, self.spec.origin)
|
||||
|
||||
def load_module(self):
|
||||
'''Load the module from the test extension'''
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
return self.loader.load_module(self.name)
|
||||
|
||||
def load_module_by_name(self, fullname):
|
||||
'''Load a module from the test extension by name'''
|
||||
origin = self.spec.origin
|
||||
loader = self.machinery.ExtensionFileLoader(fullname, origin)
|
||||
spec = importlib.util.spec_from_loader(fullname, loader)
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
loader.exec_module(module)
|
||||
return module
|
||||
|
||||
# No extension module as __init__ available for testing.
|
||||
test_package = None
|
||||
|
||||
@ -157,19 +178,6 @@ class MultiPhaseExtensionModuleTests(abc.LoaderTests):
|
||||
with self.assertRaises(SystemError):
|
||||
module.call_state_registration_func(2)
|
||||
|
||||
def load_module(self):
|
||||
'''Load the module from the test extension'''
|
||||
return self.loader.load_module(self.name)
|
||||
|
||||
def load_module_by_name(self, fullname):
|
||||
'''Load a module from the test extension by name'''
|
||||
origin = self.spec.origin
|
||||
loader = self.machinery.ExtensionFileLoader(fullname, origin)
|
||||
spec = importlib.util.spec_from_loader(fullname, loader)
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
loader.exec_module(module)
|
||||
return module
|
||||
|
||||
def test_load_submodule(self):
|
||||
'''Test loading a simulated submodule'''
|
||||
module = self.load_module_by_name('pkg.' + self.name)
|
||||
|
@ -161,19 +161,23 @@ class LoaderTests(abc.LoaderTests):
|
||||
"<module '__hello__' (frozen)>")
|
||||
|
||||
def test_module_repr_indirect(self):
|
||||
with util.uncache('__hello__'), captured_stdout():
|
||||
module = self.machinery.FrozenImporter.load_module('__hello__')
|
||||
self.assertEqual(repr(module),
|
||||
"<module '__hello__' (frozen)>")
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
with util.uncache('__hello__'), captured_stdout():
|
||||
module = self.machinery.FrozenImporter.load_module('__hello__')
|
||||
self.assertEqual(repr(module),
|
||||
"<module '__hello__' (frozen)>")
|
||||
|
||||
# No way to trigger an error in a frozen module.
|
||||
test_state_after_failure = None
|
||||
|
||||
def test_unloadable(self):
|
||||
assert self.machinery.FrozenImporter.find_module('_not_real') is None
|
||||
with self.assertRaises(ImportError) as cm:
|
||||
self.machinery.FrozenImporter.load_module('_not_real')
|
||||
self.assertEqual(cm.exception.name, '_not_real')
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
assert self.machinery.FrozenImporter.find_module('_not_real') is None
|
||||
with self.assertRaises(ImportError) as cm:
|
||||
self.machinery.FrozenImporter.load_module('_not_real')
|
||||
self.assertEqual(cm.exception.name, '_not_real')
|
||||
|
||||
|
||||
(Frozen_LoaderTests,
|
||||
|
@ -2,6 +2,7 @@ from importlib import machinery
|
||||
import sys
|
||||
import types
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
from .. import util
|
||||
|
||||
@ -45,25 +46,29 @@ class LoaderMock:
|
||||
class LoaderAttributeTests:
|
||||
|
||||
def test___loader___missing(self):
|
||||
module = types.ModuleType('blah')
|
||||
try:
|
||||
del module.__loader__
|
||||
except AttributeError:
|
||||
pass
|
||||
loader = LoaderMock()
|
||||
loader.module = module
|
||||
with util.uncache('blah'), util.import_state(meta_path=[loader]):
|
||||
module = self.__import__('blah')
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
module = types.ModuleType('blah')
|
||||
try:
|
||||
del module.__loader__
|
||||
except AttributeError:
|
||||
pass
|
||||
loader = LoaderMock()
|
||||
loader.module = module
|
||||
with util.uncache('blah'), util.import_state(meta_path=[loader]):
|
||||
module = self.__import__('blah')
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
|
||||
def test___loader___is_None(self):
|
||||
module = types.ModuleType('blah')
|
||||
module.__loader__ = None
|
||||
loader = LoaderMock()
|
||||
loader.module = module
|
||||
with util.uncache('blah'), util.import_state(meta_path=[loader]):
|
||||
returned_module = self.__import__('blah')
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
module = types.ModuleType('blah')
|
||||
module.__loader__ = None
|
||||
loader = LoaderMock()
|
||||
loader.module = module
|
||||
with util.uncache('blah'), util.import_state(meta_path=[loader]):
|
||||
returned_module = self.__import__('blah')
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
|
||||
|
||||
(Frozen_Tests,
|
||||
|
@ -98,6 +98,16 @@ class FakeSpec:
|
||||
class Using__package__PEP302(Using__package__):
|
||||
mock_modules = util.mock_modules
|
||||
|
||||
def test_using___package__(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_using___package__()
|
||||
|
||||
def test_spec_fallback(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_spec_fallback()
|
||||
|
||||
|
||||
(Frozen_UsingPackagePEP302,
|
||||
Source_UsingPackagePEP302
|
||||
@ -155,6 +165,21 @@ class Setting__package__:
|
||||
class Setting__package__PEP302(Setting__package__, unittest.TestCase):
|
||||
mock_modules = util.mock_modules
|
||||
|
||||
def test_top_level(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_top_level()
|
||||
|
||||
def test_package(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_package()
|
||||
|
||||
def test_submodule(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_submodule()
|
||||
|
||||
class Setting__package__PEP451(Setting__package__, unittest.TestCase):
|
||||
mock_modules = util.mock_spec
|
||||
|
||||
|
@ -4,6 +4,7 @@ from importlib import machinery
|
||||
import sys
|
||||
import types
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
PKG_NAME = 'fine'
|
||||
SUBMOD_NAME = 'fine.bogus'
|
||||
@ -100,6 +101,36 @@ class APITest:
|
||||
class OldAPITests(APITest):
|
||||
bad_finder_loader = BadLoaderFinder
|
||||
|
||||
def test_raises_ModuleNotFoundError(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_raises_ModuleNotFoundError()
|
||||
|
||||
def test_name_requires_rparition(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_name_requires_rparition()
|
||||
|
||||
def test_negative_level(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_negative_level()
|
||||
|
||||
def test_nonexistent_fromlist_entry(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_nonexistent_fromlist_entry()
|
||||
|
||||
def test_fromlist_load_error_propagates(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_fromlist_load_error_propagates
|
||||
|
||||
def test_blocked_fromlist(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_blocked_fromlist()
|
||||
|
||||
|
||||
(Frozen_OldAPITests,
|
||||
Source_OldAPITests
|
||||
|
@ -3,6 +3,7 @@ from .. import util
|
||||
import sys
|
||||
from types import MethodType
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
|
||||
class UseCache:
|
||||
@ -63,30 +64,36 @@ class ImportlibUseCache(UseCache, unittest.TestCase):
|
||||
# to when to use the module in sys.modules and when not to.
|
||||
def test_using_cache_after_loader(self):
|
||||
# [from cache on return]
|
||||
with self.create_mock('module') as mock:
|
||||
with util.import_state(meta_path=[mock]):
|
||||
module = self.__import__('module')
|
||||
self.assertEqual(id(module), id(sys.modules['module']))
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
with self.create_mock('module') as mock:
|
||||
with util.import_state(meta_path=[mock]):
|
||||
module = self.__import__('module')
|
||||
self.assertEqual(id(module), id(sys.modules['module']))
|
||||
|
||||
# See test_using_cache_after_loader() for reasoning.
|
||||
def test_using_cache_for_assigning_to_attribute(self):
|
||||
# [from cache to attribute]
|
||||
with self.create_mock('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg.module')
|
||||
self.assertTrue(hasattr(module, 'module'))
|
||||
self.assertEqual(id(module.module),
|
||||
id(sys.modules['pkg.module']))
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
with self.create_mock('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg.module')
|
||||
self.assertTrue(hasattr(module, 'module'))
|
||||
self.assertEqual(id(module.module),
|
||||
id(sys.modules['pkg.module']))
|
||||
|
||||
# See test_using_cache_after_loader() for reasoning.
|
||||
def test_using_cache_for_fromlist(self):
|
||||
# [from cache for fromlist]
|
||||
with self.create_mock('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg', fromlist=['module'])
|
||||
self.assertTrue(hasattr(module, 'module'))
|
||||
self.assertEqual(id(module.module),
|
||||
id(sys.modules['pkg.module']))
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
with self.create_mock('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg', fromlist=['module'])
|
||||
self.assertTrue(hasattr(module, 'module'))
|
||||
self.assertEqual(id(module.module),
|
||||
id(sys.modules['pkg.module']))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -24,7 +24,7 @@ class ReturnValue:
|
||||
|
||||
def test_return_from_from_import(self):
|
||||
# [from return]
|
||||
with util.mock_modules('pkg.__init__', 'pkg.module')as importer:
|
||||
with util.mock_spec('pkg.__init__', 'pkg.module')as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg.module', fromlist=['attr'])
|
||||
self.assertEqual(module.__name__, 'pkg.module')
|
||||
@ -52,14 +52,14 @@ class HandlingFromlist:
|
||||
|
||||
def test_object(self):
|
||||
# [object case]
|
||||
with util.mock_modules('module') as importer:
|
||||
with util.mock_spec('module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('module', fromlist=['attr'])
|
||||
self.assertEqual(module.__name__, 'module')
|
||||
|
||||
def test_nonexistent_object(self):
|
||||
# [bad object]
|
||||
with util.mock_modules('module') as importer:
|
||||
with util.mock_spec('module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('module', fromlist=['non_existent'])
|
||||
self.assertEqual(module.__name__, 'module')
|
||||
@ -67,7 +67,7 @@ class HandlingFromlist:
|
||||
|
||||
def test_module_from_package(self):
|
||||
# [module]
|
||||
with util.mock_modules('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.mock_spec('pkg.__init__', 'pkg.module') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg', fromlist=['module'])
|
||||
self.assertEqual(module.__name__, 'pkg')
|
||||
@ -75,7 +75,7 @@ class HandlingFromlist:
|
||||
self.assertEqual(module.module.__name__, 'pkg.module')
|
||||
|
||||
def test_nonexistent_from_package(self):
|
||||
with util.mock_modules('pkg.__init__') as importer:
|
||||
with util.mock_spec('pkg.__init__') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg', fromlist=['non_existent'])
|
||||
self.assertEqual(module.__name__, 'pkg')
|
||||
@ -87,7 +87,7 @@ class HandlingFromlist:
|
||||
# ModuleNotFoundError propagate.
|
||||
def module_code():
|
||||
import i_do_not_exist
|
||||
with util.mock_modules('pkg.__init__', 'pkg.mod',
|
||||
with util.mock_spec('pkg.__init__', 'pkg.mod',
|
||||
module_code={'pkg.mod': module_code}) as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
with self.assertRaises(ModuleNotFoundError) as exc:
|
||||
@ -95,14 +95,14 @@ class HandlingFromlist:
|
||||
self.assertEqual('i_do_not_exist', exc.exception.name)
|
||||
|
||||
def test_empty_string(self):
|
||||
with util.mock_modules('pkg.__init__', 'pkg.mod') as importer:
|
||||
with util.mock_spec('pkg.__init__', 'pkg.mod') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
module = self.__import__('pkg.mod', fromlist=[''])
|
||||
self.assertEqual(module.__name__, 'pkg.mod')
|
||||
|
||||
def basic_star_test(self, fromlist=['*']):
|
||||
# [using *]
|
||||
with util.mock_modules('pkg.__init__', 'pkg.module') as mock:
|
||||
with util.mock_spec('pkg.__init__', 'pkg.module') as mock:
|
||||
with util.import_state(meta_path=[mock]):
|
||||
mock['pkg'].__all__ = ['module']
|
||||
module = self.__import__('pkg', fromlist=fromlist)
|
||||
@ -119,7 +119,7 @@ class HandlingFromlist:
|
||||
|
||||
def test_star_with_others(self):
|
||||
# [using * with others]
|
||||
context = util.mock_modules('pkg.__init__', 'pkg.module1', 'pkg.module2')
|
||||
context = util.mock_spec('pkg.__init__', 'pkg.module1', 'pkg.module2')
|
||||
with context as mock:
|
||||
with util.import_state(meta_path=[mock]):
|
||||
mock['pkg'].__all__ = ['module1']
|
||||
@ -131,7 +131,7 @@ class HandlingFromlist:
|
||||
self.assertEqual(module.module2.__name__, 'pkg.module2')
|
||||
|
||||
def test_nonexistent_in_all(self):
|
||||
with util.mock_modules('pkg.__init__') as importer:
|
||||
with util.mock_spec('pkg.__init__') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
importer['pkg'].__all__ = ['non_existent']
|
||||
module = self.__import__('pkg', fromlist=['*'])
|
||||
@ -139,7 +139,7 @@ class HandlingFromlist:
|
||||
self.assertFalse(hasattr(module, 'non_existent'))
|
||||
|
||||
def test_star_in_all(self):
|
||||
with util.mock_modules('pkg.__init__') as importer:
|
||||
with util.mock_spec('pkg.__init__') as importer:
|
||||
with util.import_state(meta_path=[importer]):
|
||||
importer['pkg'].__all__ = ['*']
|
||||
module = self.__import__('pkg', fromlist=['*'])
|
||||
@ -147,7 +147,7 @@ class HandlingFromlist:
|
||||
self.assertFalse(hasattr(module, '*'))
|
||||
|
||||
def test_invalid_type(self):
|
||||
with util.mock_modules('pkg.__init__') as importer:
|
||||
with util.mock_spec('pkg.__init__') as importer:
|
||||
with util.import_state(meta_path=[importer]), \
|
||||
warnings.catch_warnings():
|
||||
warnings.simplefilter('error', BytesWarning)
|
||||
@ -157,7 +157,7 @@ class HandlingFromlist:
|
||||
self.__import__('pkg', fromlist=iter([b'attr']))
|
||||
|
||||
def test_invalid_type_in_all(self):
|
||||
with util.mock_modules('pkg.__init__') as importer:
|
||||
with util.mock_spec('pkg.__init__') as importer:
|
||||
with util.import_state(meta_path=[importer]), \
|
||||
warnings.catch_warnings():
|
||||
warnings.simplefilter('error', BytesWarning)
|
||||
|
@ -100,8 +100,20 @@ class CallSignature:
|
||||
self.assertEqual(args[0], mod_name)
|
||||
self.assertIs(args[1], path)
|
||||
|
||||
class CallSignoreSuppressImportWarning(CallSignature):
|
||||
|
||||
class CallSignaturePEP302(CallSignature):
|
||||
def test_no_path(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_no_path()
|
||||
|
||||
def test_with_path(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
super().test_no_path()
|
||||
|
||||
|
||||
class CallSignaturePEP302(CallSignoreSuppressImportWarning):
|
||||
mock_modules = util.mock_modules
|
||||
finder_name = 'find_module'
|
||||
|
||||
|
@ -458,32 +458,36 @@ class LoaderLoadModuleTests:
|
||||
return SpecLoader()
|
||||
|
||||
def test_fresh(self):
|
||||
loader = self.loader()
|
||||
name = 'blah'
|
||||
with test_util.uncache(name):
|
||||
loader.load_module(name)
|
||||
module = loader.found
|
||||
self.assertIs(sys.modules[name], module)
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
self.assertEqual(loader, module.__spec__.loader)
|
||||
self.assertEqual(name, module.__name__)
|
||||
self.assertEqual(name, module.__spec__.name)
|
||||
self.assertIsNotNone(module.__path__)
|
||||
self.assertIsNotNone(module.__path__,
|
||||
module.__spec__.submodule_search_locations)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
loader = self.loader()
|
||||
name = 'blah'
|
||||
with test_util.uncache(name):
|
||||
loader.load_module(name)
|
||||
module = loader.found
|
||||
self.assertIs(sys.modules[name], module)
|
||||
self.assertEqual(loader, module.__loader__)
|
||||
self.assertEqual(loader, module.__spec__.loader)
|
||||
self.assertEqual(name, module.__name__)
|
||||
self.assertEqual(name, module.__spec__.name)
|
||||
self.assertIsNotNone(module.__path__)
|
||||
self.assertIsNotNone(module.__path__,
|
||||
module.__spec__.submodule_search_locations)
|
||||
|
||||
def test_reload(self):
|
||||
name = 'blah'
|
||||
loader = self.loader()
|
||||
module = types.ModuleType(name)
|
||||
module.__spec__ = self.util.spec_from_loader(name, loader)
|
||||
module.__loader__ = loader
|
||||
with test_util.uncache(name):
|
||||
sys.modules[name] = module
|
||||
loader.load_module(name)
|
||||
found = loader.found
|
||||
self.assertIs(found, sys.modules[name])
|
||||
self.assertIs(module, sys.modules[name])
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
name = 'blah'
|
||||
loader = self.loader()
|
||||
module = types.ModuleType(name)
|
||||
module.__spec__ = self.util.spec_from_loader(name, loader)
|
||||
module.__loader__ = loader
|
||||
with test_util.uncache(name):
|
||||
sys.modules[name] = module
|
||||
loader.load_module(name)
|
||||
found = loader.found
|
||||
self.assertIs(found, sys.modules[name])
|
||||
self.assertIs(module, sys.modules[name])
|
||||
|
||||
|
||||
(Frozen_LoaderLoadModuleTests,
|
||||
@ -837,25 +841,29 @@ class SourceOnlyLoaderTests(SourceLoaderTestHarness):
|
||||
# Loading a module should set __name__, __loader__, __package__,
|
||||
# __path__ (for packages), __file__, and __cached__.
|
||||
# The module should also be put into sys.modules.
|
||||
with test_util.uncache(self.name):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter('ignore', DeprecationWarning)
|
||||
module = self.loader.load_module(self.name)
|
||||
self.verify_module(module)
|
||||
self.assertEqual(module.__path__, [os.path.dirname(self.path)])
|
||||
self.assertIn(self.name, sys.modules)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
with test_util.uncache(self.name):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter('ignore', DeprecationWarning)
|
||||
module = self.loader.load_module(self.name)
|
||||
self.verify_module(module)
|
||||
self.assertEqual(module.__path__, [os.path.dirname(self.path)])
|
||||
self.assertIn(self.name, sys.modules)
|
||||
|
||||
def test_package_settings(self):
|
||||
# __package__ needs to be set, while __path__ is set on if the module
|
||||
# is a package.
|
||||
# Testing the values for a package are covered by test_load_module.
|
||||
self.setUp(is_package=False)
|
||||
with test_util.uncache(self.name):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter('ignore', DeprecationWarning)
|
||||
module = self.loader.load_module(self.name)
|
||||
self.verify_module(module)
|
||||
self.assertFalse(hasattr(module, '__path__'))
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
self.setUp(is_package=False)
|
||||
with test_util.uncache(self.name):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter('ignore', DeprecationWarning)
|
||||
module = self.loader.load_module(self.name)
|
||||
self.verify_module(module)
|
||||
self.assertFalse(hasattr(module, '__path__'))
|
||||
|
||||
def test_get_source_encoding(self):
|
||||
# Source is considered encoded in UTF-8 by default unless otherwise
|
||||
|
@ -20,7 +20,7 @@ class ImportModuleTests:
|
||||
|
||||
def test_module_import(self):
|
||||
# Test importing a top-level module.
|
||||
with test_util.mock_modules('top_level') as mock:
|
||||
with test_util.mock_spec('top_level') as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
module = self.init.import_module('top_level')
|
||||
self.assertEqual(module.__name__, 'top_level')
|
||||
@ -30,7 +30,7 @@ class ImportModuleTests:
|
||||
pkg_name = 'pkg'
|
||||
pkg_long_name = '{0}.__init__'.format(pkg_name)
|
||||
name = '{0}.mod'.format(pkg_name)
|
||||
with test_util.mock_modules(pkg_long_name, name) as mock:
|
||||
with test_util.mock_spec(pkg_long_name, name) as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
module = self.init.import_module(name)
|
||||
self.assertEqual(module.__name__, name)
|
||||
@ -42,7 +42,7 @@ class ImportModuleTests:
|
||||
module_name = 'mod'
|
||||
absolute_name = '{0}.{1}'.format(pkg_name, module_name)
|
||||
relative_name = '.{0}'.format(module_name)
|
||||
with test_util.mock_modules(pkg_long_name, absolute_name) as mock:
|
||||
with test_util.mock_spec(pkg_long_name, absolute_name) as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
self.init.import_module(pkg_name)
|
||||
module = self.init.import_module(relative_name, pkg_name)
|
||||
@ -50,7 +50,7 @@ class ImportModuleTests:
|
||||
|
||||
def test_deep_relative_package_import(self):
|
||||
modules = ['a.__init__', 'a.b.__init__', 'a.c']
|
||||
with test_util.mock_modules(*modules) as mock:
|
||||
with test_util.mock_spec(*modules) as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
self.init.import_module('a')
|
||||
self.init.import_module('a.b')
|
||||
@ -63,7 +63,7 @@ class ImportModuleTests:
|
||||
pkg_name = 'pkg'
|
||||
pkg_long_name = '{0}.__init__'.format(pkg_name)
|
||||
name = '{0}.mod'.format(pkg_name)
|
||||
with test_util.mock_modules(pkg_long_name, name) as mock:
|
||||
with test_util.mock_spec(pkg_long_name, name) as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
self.init.import_module(pkg_name)
|
||||
module = self.init.import_module(name, pkg_name)
|
||||
@ -88,7 +88,7 @@ class ImportModuleTests:
|
||||
b_load_count += 1
|
||||
code = {'a': load_a, 'a.b': load_b}
|
||||
modules = ['a.__init__', 'a.b']
|
||||
with test_util.mock_modules(*modules, module_code=code) as mock:
|
||||
with test_util.mock_spec(*modules, module_code=code) as mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
self.init.import_module('a.b')
|
||||
self.assertEqual(b_load_count, 1)
|
||||
@ -212,8 +212,8 @@ class ReloadTests:
|
||||
module = type(sys)('top_level')
|
||||
module.spam = 3
|
||||
sys.modules['top_level'] = module
|
||||
mock = test_util.mock_modules('top_level',
|
||||
module_code={'top_level': code})
|
||||
mock = test_util.mock_spec('top_level',
|
||||
module_code={'top_level': code})
|
||||
with mock:
|
||||
with test_util.import_state(meta_path=[mock]):
|
||||
module = self.init.import_module('top_level')
|
||||
|
@ -303,32 +303,38 @@ class ModuleSpecMethodsTests:
|
||||
self.assertNotIn(self.spec.name, sys.modules)
|
||||
|
||||
def test_load_legacy(self):
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
|
||||
self.assertEqual(loaded.ham, -1)
|
||||
self.assertEqual(loaded.ham, -1)
|
||||
|
||||
def test_load_legacy_attributes(self):
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
|
||||
self.assertIs(loaded.__loader__, self.spec.loader)
|
||||
self.assertEqual(loaded.__package__, self.spec.parent)
|
||||
self.assertIs(loaded.__spec__, self.spec)
|
||||
self.assertIs(loaded.__loader__, self.spec.loader)
|
||||
self.assertEqual(loaded.__package__, self.spec.parent)
|
||||
self.assertIs(loaded.__spec__, self.spec)
|
||||
|
||||
def test_load_legacy_attributes_immutable(self):
|
||||
module = object()
|
||||
class ImmutableLoader(TestLoader):
|
||||
def load_module(self, name):
|
||||
sys.modules[name] = module
|
||||
return module
|
||||
self.spec.loader = ImmutableLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
class ImmutableLoader(TestLoader):
|
||||
def load_module(self, name):
|
||||
sys.modules[name] = module
|
||||
return module
|
||||
self.spec.loader = ImmutableLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
|
||||
self.assertIs(sys.modules[self.spec.name], module)
|
||||
self.assertIs(sys.modules[self.spec.name], module)
|
||||
|
||||
# reload()
|
||||
|
||||
@ -382,11 +388,13 @@ class ModuleSpecMethodsTests:
|
||||
self.assertFalse(hasattr(loaded, '__cached__'))
|
||||
|
||||
def test_reload_legacy(self):
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
reloaded = self.bootstrap._exec(self.spec, loaded)
|
||||
installed = sys.modules[self.spec.name]
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", ImportWarning)
|
||||
self.spec.loader = LegacyLoader()
|
||||
with CleanImport(self.spec.name):
|
||||
loaded = self.bootstrap._load(self.spec)
|
||||
reloaded = self.bootstrap._exec(self.spec, loaded)
|
||||
installed = sys.modules[self.spec.name]
|
||||
|
||||
self.assertEqual(loaded.ham, -1)
|
||||
self.assertIs(reloaded, loaded)
|
||||
|
@ -446,7 +446,7 @@ class EnsurePipTest(BaseTest):
|
||||
# pip's cross-version compatibility may trigger deprecation
|
||||
# warnings in current versions of Python. Ensure related
|
||||
# environment settings don't cause venv to fail.
|
||||
envvars["PYTHONWARNINGS"] = "e"
|
||||
envvars["PYTHONWARNINGS"] = "ignore"
|
||||
# ensurepip is different enough from a normal pip invocation
|
||||
# that we want to ensure it ignores the normal pip environment
|
||||
# variable settings. We set PIP_NO_INSTALL here specifically
|
||||
@ -485,7 +485,8 @@ class EnsurePipTest(BaseTest):
|
||||
# Ensure pip is available in the virtual environment
|
||||
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
|
||||
# Ignore DeprecationWarning since pip code is not part of Python
|
||||
out, err = check_output([envpy, '-W', 'ignore::DeprecationWarning', '-I',
|
||||
out, err = check_output([envpy, '-W', 'ignore::DeprecationWarning',
|
||||
'-W', 'ignore::ImportWarning', '-I',
|
||||
'-m', 'pip', '--version'])
|
||||
# We force everything to text, so unittest gives the detailed diff
|
||||
# if we get unexpected results
|
||||
@ -501,8 +502,12 @@ class EnsurePipTest(BaseTest):
|
||||
# Check the private uninstall command provided for the Windows
|
||||
# installers works (at least in a virtual environment)
|
||||
with EnvironmentVarGuard() as envvars:
|
||||
# It seems ensurepip._uninstall calls subprocesses which do not
|
||||
# inherit the interpreter settings.
|
||||
envvars["PYTHONWARNINGS"] = "ignore"
|
||||
out, err = check_output([envpy,
|
||||
'-W', 'ignore::DeprecationWarning', '-I',
|
||||
'-W', 'ignore::DeprecationWarning',
|
||||
'-W', 'ignore::ImportWarning', '-I',
|
||||
'-m', 'ensurepip._uninstall'])
|
||||
# We force everything to text, so unittest gives the detailed diff
|
||||
# if we get unexpected results
|
||||
|
@ -7,6 +7,7 @@ import struct
|
||||
import time
|
||||
import unittest
|
||||
import unittest.mock
|
||||
import warnings
|
||||
|
||||
from test import support
|
||||
from test.support import import_helper
|
||||
@ -453,15 +454,17 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
|
||||
self.assertTrue(zi.is_package(TESTPACK))
|
||||
|
||||
# PEP 302
|
||||
find_mod = zi.find_module('spam')
|
||||
self.assertIsNotNone(find_mod)
|
||||
self.assertIsInstance(find_mod, zipimport.zipimporter)
|
||||
self.assertFalse(find_mod.is_package('spam'))
|
||||
load_mod = find_mod.load_module('spam')
|
||||
self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
find_mod = zi.find_module('spam')
|
||||
self.assertIsNotNone(find_mod)
|
||||
self.assertIsInstance(find_mod, zipimport.zipimporter)
|
||||
self.assertFalse(find_mod.is_package('spam'))
|
||||
load_mod = find_mod.load_module('spam')
|
||||
self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__)
|
||||
|
||||
mod = zi.load_module(TESTPACK)
|
||||
self.assertEqual(zi.get_filename(TESTPACK), mod.__file__)
|
||||
mod = zi.load_module(TESTPACK)
|
||||
self.assertEqual(zi.get_filename(TESTPACK), mod.__file__)
|
||||
|
||||
# PEP 451
|
||||
spec = zi.find_spec('spam')
|
||||
@ -522,8 +525,10 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
|
||||
self.assertEqual(zi.prefix, packdir)
|
||||
self.assertTrue(zi.is_package(TESTPACK2))
|
||||
# PEP 302
|
||||
mod = zi.load_module(TESTPACK2)
|
||||
self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
mod = zi.load_module(TESTPACK2)
|
||||
self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__)
|
||||
# PEP 451
|
||||
spec = zi.find_spec(TESTPACK2)
|
||||
mod = importlib.util.module_from_spec(spec)
|
||||
@ -536,13 +541,15 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
|
||||
pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2
|
||||
zi2 = zipimport.zipimporter(pkg_path)
|
||||
# PEP 302
|
||||
find_mod_dotted = zi2.find_module(TESTMOD)
|
||||
self.assertIsNotNone(find_mod_dotted)
|
||||
self.assertIsInstance(find_mod_dotted, zipimport.zipimporter)
|
||||
self.assertFalse(zi2.is_package(TESTMOD))
|
||||
load_mod = find_mod_dotted.load_module(TESTMOD)
|
||||
self.assertEqual(
|
||||
find_mod_dotted.get_filename(TESTMOD), load_mod.__file__)
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
find_mod_dotted = zi2.find_module(TESTMOD)
|
||||
self.assertIsNotNone(find_mod_dotted)
|
||||
self.assertIsInstance(find_mod_dotted, zipimport.zipimporter)
|
||||
self.assertFalse(zi2.is_package(TESTMOD))
|
||||
load_mod = find_mod_dotted.load_module(TESTMOD)
|
||||
self.assertEqual(
|
||||
find_mod_dotted.get_filename(TESTMOD), load_mod.__file__)
|
||||
|
||||
# PEP 451
|
||||
spec = zi2.find_spec(TESTMOD)
|
||||
@ -778,10 +785,12 @@ class BadFileZipImportTestCase(unittest.TestCase):
|
||||
z = zipimport.zipimporter(TESTMOD)
|
||||
|
||||
try:
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
self.assertRaises(TypeError, z.load_module, None)
|
||||
self.assertRaises(TypeError, z.find_module, None)
|
||||
self.assertRaises(TypeError, z.find_spec, None)
|
||||
self.assertRaises(TypeError, z.exec_module, None)
|
||||
self.assertRaises(TypeError, z.load_module, None)
|
||||
self.assertRaises(TypeError, z.is_package, None)
|
||||
self.assertRaises(TypeError, z.get_code, None)
|
||||
self.assertRaises(TypeError, z.get_data, None)
|
||||
@ -791,7 +800,9 @@ class BadFileZipImportTestCase(unittest.TestCase):
|
||||
self.assertIsNone(z.find_module('abc'))
|
||||
self.assertIsNone(z.find_spec('abc'))
|
||||
|
||||
self.assertRaises(error, z.load_module, 'abc')
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", DeprecationWarning)
|
||||
self.assertRaises(error, z.load_module, 'abc')
|
||||
self.assertRaises(error, z.get_code, 'abc')
|
||||
self.assertRaises(OSError, z.get_data, 'abc')
|
||||
self.assertRaises(error, z.get_source, 'abc')
|
||||
|
@ -22,6 +22,7 @@ import _io # for open
|
||||
import marshal # for loads
|
||||
import sys # for modules
|
||||
import time # for mktime
|
||||
import _warnings # For warn()
|
||||
|
||||
__all__ = ['ZipImportError', 'zipimporter']
|
||||
|
||||
@ -268,8 +269,11 @@ class zipimporter(_bootstrap_external._LoaderBasics):
|
||||
fully qualified (dotted) module name. It returns the imported
|
||||
module, or raises ZipImportError if it wasn't found.
|
||||
|
||||
Deprecated since Python 3.10. use exec_module() instead.
|
||||
Deprecated since Python 3.10. Use exec_module() instead.
|
||||
"""
|
||||
msg = ("zipimport.zipimporter.load_module() is deprecated and slated for "
|
||||
"removal in Python 3.12; use exec_module() instead")
|
||||
_warnings.warn(msg, DeprecationWarning)
|
||||
code, ispackage, modpath = _get_module_code(self, fullname)
|
||||
mod = sys.modules.get(fullname)
|
||||
if mod is None or not isinstance(mod, _module_type):
|
||||
|
@ -0,0 +1,2 @@
|
||||
The import system triggers a `ImportWarning` when it falls back to using
|
||||
`load_module()`.
|
@ -0,0 +1,2 @@
|
||||
The `load_module()` methods found in importlib now trigger a
|
||||
DeprecationWarning.
|
@ -0,0 +1 @@
|
||||
Deprecate zipimport.zipimporter.load_module() in favour of exec_module().
|
3594
Python/importlib.h
generated
3594
Python/importlib.h
generated
File diff suppressed because it is too large
Load Diff
170
Python/importlib_external.h
generated
170
Python/importlib_external.h
generated
@ -1179,13 +1179,13 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
|
||||
0,0,4,0,0,0,67,0,0,0,115,12,0,0,0,116,
|
||||
0,160,1,124,0,124,1,161,2,83,0,41,2,122,26,84,
|
||||
104,105,115,32,109,111,100,117,108,101,32,105,115,32,100,101,
|
||||
104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
|
||||
112,114,101,99,97,116,101,100,46,78,41,2,114,139,0,0,
|
||||
0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,
|
||||
115,104,105,109,169,2,114,123,0,0,0,114,143,0,0,0,
|
||||
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
|
||||
11,108,111,97,100,95,109,111,100,117,108,101,66,3,0,0,
|
||||
115,4,0,0,0,12,2,255,128,122,25,95,76,111,97,100,
|
||||
115,4,0,0,0,12,3,255,128,122,25,95,76,111,97,100,
|
||||
101,114,66,97,115,105,99,115,46,108,111,97,100,95,109,111,
|
||||
100,117,108,101,78,41,8,114,130,0,0,0,114,129,0,0,
|
||||
0,114,131,0,0,0,114,132,0,0,0,114,186,0,0,0,
|
||||
@ -1216,7 +1216,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
32,32,32,32,32,32,32,78,41,1,114,58,0,0,0,169,
|
||||
2,114,123,0,0,0,114,52,0,0,0,114,7,0,0,0,
|
||||
114,7,0,0,0,114,8,0,0,0,218,10,112,97,116,104,
|
||||
95,109,116,105,109,101,73,3,0,0,115,4,0,0,0,4,
|
||||
95,109,116,105,109,101,74,3,0,0,115,4,0,0,0,4,
|
||||
6,255,128,122,23,83,111,117,114,99,101,76,111,97,100,101,
|
||||
114,46,112,97,116,104,95,109,116,105,109,101,99,2,0,0,
|
||||
0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
|
||||
@ -1250,7 +1250,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
108,101,100,46,10,32,32,32,32,32,32,32,32,114,173,0,
|
||||
0,0,78,41,1,114,230,0,0,0,114,229,0,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,
|
||||
112,97,116,104,95,115,116,97,116,115,81,3,0,0,115,4,
|
||||
112,97,116,104,95,115,116,97,116,115,82,3,0,0,115,4,
|
||||
0,0,0,14,12,255,128,122,23,83,111,117,114,99,101,76,
|
||||
111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,
|
||||
99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
|
||||
@ -1274,7 +1274,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
4,114,123,0,0,0,114,112,0,0,0,90,10,99,97,99,
|
||||
104,101,95,112,97,116,104,114,37,0,0,0,114,7,0,0,
|
||||
0,114,7,0,0,0,114,8,0,0,0,218,15,95,99,97,
|
||||
99,104,101,95,98,121,116,101,99,111,100,101,95,3,0,0,
|
||||
99,104,101,95,98,121,116,101,99,111,100,101,96,3,0,0,
|
||||
115,4,0,0,0,12,8,255,128,122,28,83,111,117,114,99,
|
||||
101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,
|
||||
121,116,101,99,111,100,101,99,3,0,0,0,0,0,0,0,
|
||||
@ -1291,7 +1291,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
111,100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,
|
||||
32,32,32,78,114,7,0,0,0,41,3,114,123,0,0,0,
|
||||
114,52,0,0,0,114,37,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,232,0,0,0,105,3,
|
||||
7,0,0,0,114,8,0,0,0,114,232,0,0,0,106,3,
|
||||
0,0,115,4,0,0,0,4,0,255,128,122,21,83,111,117,
|
||||
114,99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,
|
||||
116,97,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
|
||||
@ -1312,7 +1312,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
123,0,0,0,114,143,0,0,0,114,52,0,0,0,114,178,
|
||||
0,0,0,218,3,101,120,99,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,218,10,103,101,116,95,115,111,117,
|
||||
114,99,101,112,3,0,0,115,26,0,0,0,10,2,2,1,
|
||||
114,99,101,113,3,0,0,115,26,0,0,0,10,2,2,1,
|
||||
12,1,8,4,14,253,4,1,2,1,4,255,2,1,2,255,
|
||||
8,128,2,255,255,128,122,23,83,111,117,114,99,101,76,111,
|
||||
97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,114,
|
||||
@ -1335,7 +1335,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,114,37,0,0,0,114,52,0,0,0,114,237,0,
|
||||
0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,100,
|
||||
101,122,3,0,0,115,8,0,0,0,12,5,4,1,6,255,
|
||||
101,123,3,0,0,115,8,0,0,0,12,5,4,1,6,255,
|
||||
255,128,122,27,83,111,117,114,99,101,76,111,97,100,101,114,
|
||||
46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,99,
|
||||
2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,
|
||||
@ -1412,7 +1412,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,114,16,0,0,0,90,10,98,121,116,101,115,95,
|
||||
100,97,116,97,90,11,99,111,100,101,95,111,98,106,101,99,
|
||||
116,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
|
||||
114,220,0,0,0,130,3,0,0,115,160,0,0,0,10,7,
|
||||
114,220,0,0,0,131,3,0,0,115,160,0,0,0,10,7,
|
||||
4,1,4,1,4,1,4,1,4,1,2,1,12,1,12,1,
|
||||
12,1,2,2,14,1,12,1,8,1,12,2,2,1,14,1,
|
||||
12,1,6,1,2,3,2,1,6,254,2,4,12,1,16,1,
|
||||
@ -1429,7 +1429,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,114,233,0,0,0,114,232,0,0,0,114,236,0,0,0,
|
||||
114,240,0,0,0,114,220,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,228,
|
||||
0,0,0,71,3,0,0,115,18,0,0,0,8,0,8,2,
|
||||
0,0,0,72,3,0,0,115,18,0,0,0,8,0,8,2,
|
||||
8,8,8,14,8,10,8,7,14,10,12,8,255,128,114,228,
|
||||
0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,4,0,0,0,0,0,0,0,115,92,0,0,
|
||||
@ -1456,7 +1456,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
101,10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,
|
||||
46,78,114,163,0,0,0,41,3,114,123,0,0,0,114,143,
|
||||
0,0,0,114,52,0,0,0,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,114,216,0,0,0,220,3,0,0,
|
||||
0,0,114,8,0,0,0,114,216,0,0,0,221,3,0,0,
|
||||
115,6,0,0,0,6,3,10,1,255,128,122,19,70,105,108,
|
||||
101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,
|
||||
99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
|
||||
@ -1466,7 +1466,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
95,99,108,97,115,115,95,95,114,136,0,0,0,169,2,114,
|
||||
123,0,0,0,90,5,111,116,104,101,114,114,7,0,0,0,
|
||||
114,7,0,0,0,114,8,0,0,0,218,6,95,95,101,113,
|
||||
95,95,226,3,0,0,115,8,0,0,0,12,1,10,1,2,
|
||||
95,95,227,3,0,0,115,8,0,0,0,12,1,10,1,2,
|
||||
255,255,128,122,17,70,105,108,101,76,111,97,100,101,114,46,
|
||||
95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,
|
||||
0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
|
||||
@ -1474,7 +1474,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
106,2,131,1,65,0,83,0,114,114,0,0,0,169,3,218,
|
||||
4,104,97,115,104,114,121,0,0,0,114,52,0,0,0,169,
|
||||
1,114,123,0,0,0,114,7,0,0,0,114,7,0,0,0,
|
||||
114,8,0,0,0,218,8,95,95,104,97,115,104,95,95,230,
|
||||
114,8,0,0,0,218,8,95,95,104,97,115,104,95,95,231,
|
||||
3,0,0,115,4,0,0,0,20,1,255,128,122,19,70,105,
|
||||
108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,
|
||||
95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
|
||||
@ -1489,7 +1489,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
32,32,32,32,32,32,32,78,41,3,218,5,115,117,112,101,
|
||||
114,114,246,0,0,0,114,227,0,0,0,114,226,0,0,0,
|
||||
169,1,114,248,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,114,227,0,0,0,233,3,0,0,115,4,0,0,0,16,
|
||||
0,114,227,0,0,0,234,3,0,0,115,4,0,0,0,16,
|
||||
10,255,128,122,22,70,105,108,101,76,111,97,100,101,114,46,
|
||||
108,111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,
|
||||
0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
|
||||
@ -1499,7 +1499,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
32,102,105,108,101,32,97,115,32,102,111,117,110,100,32,98,
|
||||
121,32,116,104,101,32,102,105,110,100,101,114,46,78,114,56,
|
||||
0,0,0,114,226,0,0,0,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,114,183,0,0,0,245,3,0,0,
|
||||
0,0,114,8,0,0,0,114,183,0,0,0,246,3,0,0,
|
||||
115,4,0,0,0,6,3,255,128,122,23,70,105,108,101,76,
|
||||
111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97,
|
||||
109,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
|
||||
@ -1521,7 +1521,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,90,0,0,0,90,4,114,101,97,100,114,73,0,0,0,
|
||||
41,3,114,123,0,0,0,114,52,0,0,0,114,76,0,0,
|
||||
0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
|
||||
114,234,0,0,0,250,3,0,0,115,14,0,0,0,14,2,
|
||||
114,234,0,0,0,251,3,0,0,115,14,0,0,0,14,2,
|
||||
16,1,42,1,14,2,38,1,4,128,255,128,122,19,70,105,
|
||||
108,101,76,111,97,100,101,114,46,103,101,116,95,100,97,116,
|
||||
97,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
|
||||
@ -1533,7 +1533,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
1,0,0,41,3,114,123,0,0,0,114,223,0,0,0,114,
|
||||
4,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,99,
|
||||
101,95,114,101,97,100,101,114,3,4,0,0,115,6,0,0,
|
||||
101,95,114,101,97,100,101,114,4,4,0,0,115,6,0,0,
|
||||
0,12,2,8,1,255,128,122,30,70,105,108,101,76,111,97,
|
||||
100,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
|
||||
95,114,101,97,100,101,114,41,13,114,130,0,0,0,114,129,
|
||||
@ -1542,7 +1542,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,114,227,0,0,0,114,183,0,0,0,114,234,0,0,0,
|
||||
114,5,1,0,0,90,13,95,95,99,108,97,115,115,99,101,
|
||||
108,108,95,95,114,7,0,0,0,114,7,0,0,0,114,0,
|
||||
1,0,0,114,8,0,0,0,114,246,0,0,0,215,3,0,
|
||||
1,0,0,114,8,0,0,0,114,246,0,0,0,216,3,0,
|
||||
0,115,26,0,0,0,8,0,4,2,8,3,8,6,8,4,
|
||||
2,3,14,1,2,11,10,1,8,4,2,9,18,1,255,128,
|
||||
114,246,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
|
||||
@ -1565,7 +1565,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,218,8,115,116,95,109,116,105,109,101,90,7,115,116,
|
||||
95,115,105,122,101,41,3,114,123,0,0,0,114,52,0,0,
|
||||
0,114,245,0,0,0,114,7,0,0,0,114,7,0,0,0,
|
||||
114,8,0,0,0,114,231,0,0,0,13,4,0,0,115,6,
|
||||
114,8,0,0,0,114,231,0,0,0,14,4,0,0,115,6,
|
||||
0,0,0,8,2,14,1,255,128,122,27,83,111,117,114,99,
|
||||
101,70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,
|
||||
95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,0,
|
||||
@ -1576,7 +1576,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
232,0,0,0,41,5,114,123,0,0,0,114,112,0,0,0,
|
||||
114,111,0,0,0,114,37,0,0,0,114,60,0,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,233,
|
||||
0,0,0,18,4,0,0,115,6,0,0,0,8,2,16,1,
|
||||
0,0,0,19,4,0,0,115,6,0,0,0,8,2,16,1,
|
||||
255,128,122,32,83,111,117,114,99,101,70,105,108,101,76,111,
|
||||
97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,
|
||||
99,111,100,101,114,68,0,0,0,114,8,1,0,0,99,3,
|
||||
@ -1611,7 +1611,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,218,6,112,97,114,101,110,116,114,101,0,0,0,114,47,
|
||||
0,0,0,114,43,0,0,0,114,235,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,232,0,0,
|
||||
0,23,4,0,0,115,58,0,0,0,12,2,4,1,12,2,
|
||||
0,24,4,0,0,115,58,0,0,0,12,2,4,1,12,2,
|
||||
12,1,12,1,12,2,10,1,2,1,14,1,12,1,4,2,
|
||||
14,1,6,3,4,1,4,255,16,2,8,128,2,1,12,1,
|
||||
18,1,14,1,8,2,2,1,18,255,8,128,2,254,4,255,
|
||||
@ -1620,7 +1620,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
41,7,114,130,0,0,0,114,129,0,0,0,114,131,0,0,
|
||||
0,114,132,0,0,0,114,231,0,0,0,114,233,0,0,0,
|
||||
114,232,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,6,1,0,0,9,4,
|
||||
7,0,0,0,114,8,0,0,0,114,6,1,0,0,10,4,
|
||||
0,0,115,12,0,0,0,8,0,4,2,8,2,8,5,18,
|
||||
5,255,128,114,6,1,0,0,99,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
|
||||
@ -1643,7 +1643,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,41,5,114,123,0,0,0,114,143,0,0,0,114,
|
||||
52,0,0,0,114,37,0,0,0,114,155,0,0,0,114,7,
|
||||
0,0,0,114,7,0,0,0,114,8,0,0,0,114,220,0,
|
||||
0,0,58,4,0,0,115,24,0,0,0,10,1,10,1,2,
|
||||
0,0,59,4,0,0,115,24,0,0,0,10,1,10,1,2,
|
||||
4,2,1,6,254,12,4,2,1,14,1,2,1,2,1,6,
|
||||
253,255,128,122,29,83,111,117,114,99,101,108,101,115,115,70,
|
||||
105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
|
||||
@ -1653,14 +1653,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
111,110,101,32,97,115,32,116,104,101,114,101,32,105,115,32,
|
||||
110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,
|
||||
114,7,0,0,0,114,226,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,236,0,0,0,74,4,
|
||||
7,0,0,0,114,8,0,0,0,114,236,0,0,0,75,4,
|
||||
0,0,115,4,0,0,0,4,2,255,128,122,31,83,111,117,
|
||||
114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
|
||||
114,46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,
|
||||
130,0,0,0,114,129,0,0,0,114,131,0,0,0,114,132,
|
||||
0,0,0,114,220,0,0,0,114,236,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,114,12,1,0,0,54,4,0,0,115,10,0,0,0,8,
|
||||
0,114,12,1,0,0,55,4,0,0,115,10,0,0,0,8,
|
||||
0,4,2,8,2,12,16,255,128,114,12,1,0,0,99,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
|
||||
0,0,0,64,0,0,0,115,92,0,0,0,101,0,90,1,
|
||||
@ -1681,7 +1681,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
95,0,124,2,124,0,95,1,100,0,83,0,114,114,0,0,
|
||||
0,114,163,0,0,0,41,3,114,123,0,0,0,114,121,0,
|
||||
0,0,114,52,0,0,0,114,7,0,0,0,114,7,0,0,
|
||||
0,114,8,0,0,0,114,216,0,0,0,87,4,0,0,115,
|
||||
0,114,8,0,0,0,114,216,0,0,0,88,4,0,0,115,
|
||||
6,0,0,0,6,1,10,1,255,128,122,28,69,120,116,101,
|
||||
110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
|
||||
95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,
|
||||
@ -1690,7 +1690,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
111,22,124,0,106,1,124,1,106,1,107,2,83,0,114,114,
|
||||
0,0,0,114,247,0,0,0,114,249,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,250,0,0,
|
||||
0,91,4,0,0,115,8,0,0,0,12,1,10,1,2,255,
|
||||
0,92,4,0,0,115,8,0,0,0,12,1,10,1,2,255,
|
||||
255,128,122,26,69,120,116,101,110,115,105,111,110,70,105,108,
|
||||
101,76,111,97,100,101,114,46,95,95,101,113,95,95,99,1,
|
||||
0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
|
||||
@ -1698,7 +1698,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
106,1,131,1,116,0,124,0,106,2,131,1,65,0,83,0,
|
||||
114,114,0,0,0,114,251,0,0,0,114,253,0,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,254,
|
||||
0,0,0,95,4,0,0,115,4,0,0,0,20,1,255,128,
|
||||
0,0,0,96,4,0,0,115,4,0,0,0,20,1,255,128,
|
||||
122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
|
||||
111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,
|
||||
0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,
|
||||
@ -1715,7 +1715,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
97,109,105,99,114,153,0,0,0,114,121,0,0,0,114,52,
|
||||
0,0,0,41,3,114,123,0,0,0,114,191,0,0,0,114,
|
||||
223,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,114,219,0,0,0,98,4,0,0,115,16,0,0,
|
||||
0,0,0,114,219,0,0,0,99,4,0,0,115,16,0,0,
|
||||
0,4,2,6,1,4,255,6,2,8,1,4,255,4,2,255,
|
||||
128,122,33,69,120,116,101,110,115,105,111,110,70,105,108,101,
|
||||
76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,
|
||||
@ -1733,7 +1733,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
105,99,114,153,0,0,0,114,121,0,0,0,114,52,0,0,
|
||||
0,169,2,114,123,0,0,0,114,223,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,224,0,0,
|
||||
0,106,4,0,0,115,10,0,0,0,14,2,6,1,8,1,
|
||||
0,107,4,0,0,115,10,0,0,0,14,2,6,1,8,1,
|
||||
8,255,255,128,122,31,69,120,116,101,110,115,105,111,110,70,
|
||||
105,108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,
|
||||
111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
|
||||
@ -1751,14 +1751,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
78,114,7,0,0,0,169,2,114,5,0,0,0,218,6,115,
|
||||
117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,97,
|
||||
109,101,114,7,0,0,0,114,8,0,0,0,114,9,0,0,
|
||||
0,115,4,0,0,115,8,0,0,0,4,0,2,1,20,255,
|
||||
0,116,4,0,0,115,8,0,0,0,4,0,2,1,20,255,
|
||||
255,128,122,49,69,120,116,101,110,115,105,111,110,70,105,108,
|
||||
101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,
|
||||
103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
|
||||
101,120,112,114,62,78,41,4,114,55,0,0,0,114,52,0,
|
||||
0,0,218,3,97,110,121,114,212,0,0,0,114,226,0,0,
|
||||
0,114,7,0,0,0,114,16,1,0,0,114,8,0,0,0,
|
||||
114,186,0,0,0,112,4,0,0,115,10,0,0,0,14,2,
|
||||
114,186,0,0,0,113,4,0,0,115,10,0,0,0,14,2,
|
||||
12,1,2,1,8,255,255,128,122,30,69,120,116,101,110,115,
|
||||
105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
|
||||
95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
|
||||
@ -1769,7 +1769,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
32,99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,
|
||||
32,99,111,100,101,32,111,98,106,101,99,116,46,78,114,7,
|
||||
0,0,0,114,226,0,0,0,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,114,220,0,0,0,118,4,0,0,
|
||||
0,0,114,8,0,0,0,114,220,0,0,0,119,4,0,0,
|
||||
115,4,0,0,0,4,2,255,128,122,28,69,120,116,101,110,
|
||||
115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,
|
||||
101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
|
||||
@ -1780,14 +1780,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
118,101,32,110,111,32,115,111,117,114,99,101,32,99,111,100,
|
||||
101,46,78,114,7,0,0,0,114,226,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,
|
||||
0,122,4,0,0,115,4,0,0,0,4,2,255,128,122,30,
|
||||
0,123,4,0,0,115,4,0,0,0,4,2,255,128,122,30,
|
||||
69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
|
||||
100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,
|
||||
0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
|
||||
0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,0,
|
||||
83,0,114,1,1,0,0,114,56,0,0,0,114,226,0,0,
|
||||
0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
|
||||
114,183,0,0,0,126,4,0,0,115,4,0,0,0,6,3,
|
||||
114,183,0,0,0,127,4,0,0,115,4,0,0,0,6,3,
|
||||
255,128,122,32,69,120,116,101,110,115,105,111,110,70,105,108,
|
||||
101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,
|
||||
110,97,109,101,78,41,14,114,130,0,0,0,114,129,0,0,
|
||||
@ -1796,7 +1796,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
224,0,0,0,114,186,0,0,0,114,220,0,0,0,114,236,
|
||||
0,0,0,114,140,0,0,0,114,183,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,114,3,1,0,0,79,4,0,0,115,26,0,0,0,8,
|
||||
0,114,3,1,0,0,80,4,0,0,115,26,0,0,0,8,
|
||||
0,4,2,8,6,8,4,8,4,8,3,8,8,8,6,8,
|
||||
6,8,4,2,4,14,1,255,128,114,3,1,0,0,99,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
|
||||
@ -1839,7 +1839,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
169,4,114,123,0,0,0,114,121,0,0,0,114,52,0,0,
|
||||
0,90,11,112,97,116,104,95,102,105,110,100,101,114,114,7,
|
||||
0,0,0,114,7,0,0,0,114,8,0,0,0,114,216,0,
|
||||
0,0,139,4,0,0,115,10,0,0,0,6,1,6,1,14,
|
||||
0,0,140,4,0,0,115,10,0,0,0,6,1,6,1,14,
|
||||
1,10,1,255,128,122,23,95,78,97,109,101,115,112,97,99,
|
||||
101,80,97,116,104,46,95,95,105,110,105,116,95,95,99,1,
|
||||
0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,
|
||||
@ -1856,7 +1856,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,41,4,114,123,0,0,0,114,11,1,0,0,218,3,100,
|
||||
111,116,90,2,109,101,114,7,0,0,0,114,7,0,0,0,
|
||||
114,8,0,0,0,218,23,95,102,105,110,100,95,112,97,114,
|
||||
101,110,116,95,112,97,116,104,95,110,97,109,101,115,145,4,
|
||||
101,110,116,95,112,97,116,104,95,110,97,109,101,115,146,4,
|
||||
0,0,115,10,0,0,0,18,2,8,1,4,2,8,3,255,
|
||||
128,122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,
|
||||
104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
|
||||
@ -1870,7 +1870,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
116,95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,
|
||||
97,116,104,95,97,116,116,114,95,110,97,109,101,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,21,1,0,
|
||||
0,155,4,0,0,115,6,0,0,0,12,1,16,1,255,128,
|
||||
0,156,4,0,0,115,6,0,0,0,12,1,16,1,255,128,
|
||||
122,31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
|
||||
46,95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,
|
||||
104,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,
|
||||
@ -1886,7 +1886,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,123,0,0,0,90,11,112,97,114,101,110,116,95,112,97,
|
||||
116,104,114,191,0,0,0,114,7,0,0,0,114,7,0,0,
|
||||
0,114,8,0,0,0,218,12,95,114,101,99,97,108,99,117,
|
||||
108,97,116,101,159,4,0,0,115,18,0,0,0,12,2,10,
|
||||
108,97,116,101,160,4,0,0,115,18,0,0,0,12,2,10,
|
||||
1,14,1,18,3,6,1,8,1,6,1,6,1,255,128,122,
|
||||
27,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
|
||||
95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
|
||||
@ -1895,7 +1895,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
161,0,131,1,83,0,114,114,0,0,0,41,2,218,4,105,
|
||||
116,101,114,114,28,1,0,0,114,253,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,
|
||||
105,116,101,114,95,95,172,4,0,0,115,4,0,0,0,12,
|
||||
105,116,101,114,95,95,173,4,0,0,115,4,0,0,0,12,
|
||||
1,255,128,122,23,95,78,97,109,101,115,112,97,99,101,80,
|
||||
97,116,104,46,95,95,105,116,101,114,95,95,99,2,0,0,
|
||||
0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
|
||||
@ -1903,7 +1903,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
124,1,25,0,83,0,114,114,0,0,0,169,1,114,28,1,
|
||||
0,0,41,2,114,123,0,0,0,218,5,105,110,100,101,120,
|
||||
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
|
||||
11,95,95,103,101,116,105,116,101,109,95,95,175,4,0,0,
|
||||
11,95,95,103,101,116,105,116,101,109,95,95,176,4,0,0,
|
||||
115,4,0,0,0,12,1,255,128,122,26,95,78,97,109,101,
|
||||
115,112,97,99,101,80,97,116,104,46,95,95,103,101,116,105,
|
||||
116,101,109,95,95,99,3,0,0,0,0,0,0,0,0,0,
|
||||
@ -1912,7 +1912,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,114,114,0,0,0,41,1,114,20,1,0,0,41,3,114,
|
||||
123,0,0,0,114,32,1,0,0,114,52,0,0,0,114,7,
|
||||
0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,
|
||||
95,115,101,116,105,116,101,109,95,95,178,4,0,0,115,4,
|
||||
95,115,101,116,105,116,101,109,95,95,179,4,0,0,115,4,
|
||||
0,0,0,14,1,255,128,122,26,95,78,97,109,101,115,112,
|
||||
97,99,101,80,97,116,104,46,95,95,115,101,116,105,116,101,
|
||||
109,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
|
||||
@ -1920,7 +1920,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,116,0,124,0,160,1,161,0,131,1,83,0,114,114,0,
|
||||
0,0,41,2,114,4,0,0,0,114,28,1,0,0,114,253,
|
||||
0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
|
||||
0,0,218,7,95,95,108,101,110,95,95,181,4,0,0,115,
|
||||
0,0,218,7,95,95,108,101,110,95,95,182,4,0,0,115,
|
||||
4,0,0,0,12,1,255,128,122,22,95,78,97,109,101,115,
|
||||
112,97,99,101,80,97,116,104,46,95,95,108,101,110,95,95,
|
||||
99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
|
||||
@ -1929,7 +1929,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
78,97,109,101,115,112,97,99,101,80,97,116,104,40,123,33,
|
||||
114,125,41,41,2,114,70,0,0,0,114,20,1,0,0,114,
|
||||
253,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,218,8,95,95,114,101,112,114,95,95,184,4,0,
|
||||
0,0,0,218,8,95,95,114,101,112,114,95,95,185,4,0,
|
||||
0,115,4,0,0,0,12,1,255,128,122,23,95,78,97,109,
|
||||
101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
|
||||
114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
|
||||
@ -1938,7 +1938,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,114,31,1,0,0,169,2,114,123,0,0,0,218,4,
|
||||
105,116,101,109,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,
|
||||
95,187,4,0,0,115,4,0,0,0,12,1,255,128,122,27,
|
||||
95,188,4,0,0,115,4,0,0,0,12,1,255,128,122,27,
|
||||
95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
|
||||
95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,
|
||||
0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
|
||||
@ -1946,7 +1946,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
1,161,1,1,0,100,0,83,0,114,114,0,0,0,41,2,
|
||||
114,20,1,0,0,114,190,0,0,0,114,37,1,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,190,
|
||||
0,0,0,190,4,0,0,115,4,0,0,0,16,1,255,128,
|
||||
0,0,0,191,4,0,0,115,4,0,0,0,16,1,255,128,
|
||||
122,21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
|
||||
46,97,112,112,101,110,100,78,41,15,114,130,0,0,0,114,
|
||||
129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,216,
|
||||
@ -1954,7 +1954,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,114,30,1,0,0,114,33,1,0,0,114,34,1,0,
|
||||
0,114,35,1,0,0,114,36,1,0,0,114,39,1,0,0,
|
||||
114,190,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,18,1,0,0,132,4,
|
||||
7,0,0,0,114,8,0,0,0,114,18,1,0,0,133,4,
|
||||
0,0,115,28,0,0,0,8,0,4,1,8,6,8,6,8,
|
||||
10,8,4,8,13,8,3,8,3,8,3,8,3,8,3,12,
|
||||
3,255,128,114,18,1,0,0,99,0,0,0,0,0,0,0,
|
||||
@ -1971,7 +1971,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
131,3,124,0,95,1,100,0,83,0,114,114,0,0,0,41,
|
||||
2,114,18,1,0,0,114,20,1,0,0,114,24,1,0,0,
|
||||
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
|
||||
216,0,0,0,196,4,0,0,115,4,0,0,0,18,1,255,
|
||||
216,0,0,0,197,4,0,0,115,4,0,0,0,18,1,255,
|
||||
128,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
|
||||
100,101,114,46,95,95,105,110,105,116,95,95,99,1,0,0,
|
||||
0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
|
||||
@ -1988,21 +1988,21 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
101,115,112,97,99,101,41,62,78,41,2,114,70,0,0,0,
|
||||
114,130,0,0,0,41,1,114,223,0,0,0,114,7,0,0,
|
||||
0,114,7,0,0,0,114,8,0,0,0,218,11,109,111,100,
|
||||
117,108,101,95,114,101,112,114,199,4,0,0,115,4,0,0,
|
||||
117,108,101,95,114,101,112,114,200,4,0,0,115,4,0,0,
|
||||
0,12,7,255,128,122,28,95,78,97,109,101,115,112,97,99,
|
||||
101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,114,
|
||||
101,112,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
|
||||
2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
|
||||
0,100,1,83,0,41,2,78,84,114,7,0,0,0,114,226,
|
||||
0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
|
||||
0,0,114,186,0,0,0,208,4,0,0,115,4,0,0,0,
|
||||
0,0,114,186,0,0,0,209,4,0,0,115,4,0,0,0,
|
||||
4,1,255,128,122,27,95,78,97,109,101,115,112,97,99,101,
|
||||
76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
|
||||
101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
|
||||
0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
|
||||
1,83,0,41,2,78,114,10,0,0,0,114,7,0,0,0,
|
||||
114,226,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
8,0,0,0,114,236,0,0,0,211,4,0,0,115,4,0,
|
||||
8,0,0,0,114,236,0,0,0,212,4,0,0,115,4,0,
|
||||
0,0,4,1,255,128,122,27,95,78,97,109,101,115,112,97,
|
||||
99,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
|
||||
114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
|
||||
@ -2012,20 +2012,20 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
110,103,62,114,222,0,0,0,84,41,1,114,238,0,0,0,
|
||||
41,1,114,239,0,0,0,114,226,0,0,0,114,7,0,0,
|
||||
0,114,7,0,0,0,114,8,0,0,0,114,220,0,0,0,
|
||||
214,4,0,0,115,4,0,0,0,16,1,255,128,122,25,95,
|
||||
215,4,0,0,115,4,0,0,0,16,1,255,128,122,25,95,
|
||||
78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
|
||||
103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
|
||||
0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
|
||||
0,115,4,0,0,0,100,1,83,0,114,217,0,0,0,114,
|
||||
7,0,0,0,114,218,0,0,0,114,7,0,0,0,114,7,
|
||||
0,0,0,114,8,0,0,0,114,219,0,0,0,217,4,0,
|
||||
0,0,0,114,8,0,0,0,114,219,0,0,0,218,4,0,
|
||||
0,115,4,0,0,0,4,0,255,128,122,30,95,78,97,109,
|
||||
101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,101,
|
||||
97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,
|
||||
0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
|
||||
0,0,0,115,4,0,0,0,100,0,83,0,114,114,0,0,
|
||||
0,114,7,0,0,0,114,13,1,0,0,114,7,0,0,0,
|
||||
114,7,0,0,0,114,8,0,0,0,114,224,0,0,0,220,
|
||||
114,7,0,0,0,114,8,0,0,0,114,224,0,0,0,221,
|
||||
4,0,0,115,4,0,0,0,4,1,255,128,122,28,95,78,
|
||||
97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
|
||||
120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
|
||||
@ -2044,15 +2044,15 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
78,41,4,114,139,0,0,0,114,153,0,0,0,114,20,1,
|
||||
0,0,114,225,0,0,0,114,226,0,0,0,114,7,0,0,
|
||||
0,114,7,0,0,0,114,8,0,0,0,114,227,0,0,0,
|
||||
223,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12,
|
||||
2,255,128,122,28,95,78,97,109,101,115,112,97,99,101,76,
|
||||
224,4,0,0,115,10,0,0,0,6,7,4,1,4,255,12,
|
||||
3,255,128,122,28,95,78,97,109,101,115,112,97,99,101,76,
|
||||
111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,
|
||||
101,78,41,12,114,130,0,0,0,114,129,0,0,0,114,131,
|
||||
0,0,0,114,216,0,0,0,114,213,0,0,0,114,41,1,
|
||||
0,0,114,186,0,0,0,114,236,0,0,0,114,220,0,0,
|
||||
0,114,219,0,0,0,114,224,0,0,0,114,227,0,0,0,
|
||||
114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
8,0,0,0,114,40,1,0,0,195,4,0,0,115,22,0,
|
||||
8,0,0,0,114,40,1,0,0,196,4,0,0,115,22,0,
|
||||
0,0,8,0,8,1,2,3,10,1,8,8,8,3,8,3,
|
||||
8,3,8,3,12,3,255,128,114,40,1,0,0,99,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
|
||||
@ -2089,7 +2089,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
97,99,104,101,218,5,105,116,101,109,115,114,133,0,0,0,
|
||||
114,43,1,0,0,41,2,114,121,0,0,0,218,6,102,105,
|
||||
110,100,101,114,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,114,43,1,0,0,241,4,0,0,115,14,0,0,
|
||||
0,0,0,114,43,1,0,0,243,4,0,0,115,14,0,0,
|
||||
0,22,4,8,1,10,1,10,1,10,1,4,252,255,128,122,
|
||||
28,80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,
|
||||
108,105,100,97,116,101,95,99,97,99,104,101,115,99,1,0,
|
||||
@ -2109,7 +2109,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,142,0,0,0,114,122,0,0,0,41,2,114,52,0,0,
|
||||
0,90,4,104,111,111,107,114,7,0,0,0,114,7,0,0,
|
||||
0,114,8,0,0,0,218,11,95,112,97,116,104,95,104,111,
|
||||
111,107,115,251,4,0,0,115,18,0,0,0,16,3,12,1,
|
||||
111,107,115,253,4,0,0,115,18,0,0,0,16,3,12,1,
|
||||
10,1,2,1,14,1,12,1,6,1,4,2,255,128,122,22,
|
||||
80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
|
||||
95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,0,
|
||||
@ -2141,7 +2141,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,114,52,0,0,0,114,47,1,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,218,20,95,112,
|
||||
97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,
|
||||
104,101,8,5,0,0,115,28,0,0,0,8,8,2,1,12,
|
||||
104,101,10,5,0,0,115,28,0,0,0,8,8,2,1,12,
|
||||
1,12,1,8,3,2,1,12,1,4,4,12,253,10,1,12,
|
||||
1,4,1,2,255,255,128,122,31,80,97,116,104,70,105,110,
|
||||
100,101,114,46,95,112,97,116,104,95,105,109,112,111,114,116,
|
||||
@ -2159,7 +2159,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,114,47,1,0,0,114,144,0,0,0,114,145,0,0,0,
|
||||
114,191,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
8,0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,
|
||||
116,95,115,112,101,99,30,5,0,0,115,20,0,0,0,10,
|
||||
116,95,115,112,101,99,32,5,0,0,115,20,0,0,0,10,
|
||||
4,16,1,10,2,4,1,8,1,12,1,12,1,6,1,4,
|
||||
1,255,128,122,27,80,97,116,104,70,105,110,100,101,114,46,
|
||||
95,108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,
|
||||
@ -2190,7 +2190,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
110,97,109,101,115,112,97,99,101,95,112,97,116,104,90,5,
|
||||
101,110,116,114,121,114,47,1,0,0,114,191,0,0,0,114,
|
||||
145,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,218,9,95,103,101,116,95,115,112,101,99,45,5,
|
||||
0,0,0,218,9,95,103,101,116,95,115,112,101,99,47,5,
|
||||
0,0,115,42,0,0,0,4,5,8,1,14,1,2,1,10,
|
||||
1,8,1,10,1,14,1,12,2,8,1,2,1,10,1,8,
|
||||
1,6,1,8,1,8,1,12,5,12,2,6,1,4,1,255,
|
||||
@ -2217,7 +2217,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,185,0,0,0,114,18,1,0,0,41,6,114,202,0,0,
|
||||
0,114,143,0,0,0,114,52,0,0,0,114,206,0,0,0,
|
||||
114,191,0,0,0,114,55,1,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,207,0,0,0,77,5,
|
||||
7,0,0,0,114,8,0,0,0,114,207,0,0,0,79,5,
|
||||
0,0,115,28,0,0,0,8,6,6,1,14,1,8,1,4,
|
||||
1,10,1,6,1,4,1,6,3,16,1,4,1,4,2,4,
|
||||
2,255,128,122,20,80,97,116,104,70,105,110,100,101,114,46,
|
||||
@ -2238,7 +2238,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,
|
||||
32,32,32,78,114,208,0,0,0,114,209,0,0,0,114,7,
|
||||
0,0,0,114,7,0,0,0,114,8,0,0,0,114,210,0,
|
||||
0,0,101,5,0,0,115,10,0,0,0,12,8,8,1,4,
|
||||
0,0,103,5,0,0,115,10,0,0,0,12,8,8,1,4,
|
||||
1,6,1,255,128,122,22,80,97,116,104,70,105,110,100,101,
|
||||
114,46,102,105,110,100,95,109,111,100,117,108,101,99,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
|
||||
@ -2269,7 +2269,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,57,1,0,0,218,18,102,105,110,100,95,100,105,115,116,
|
||||
114,105,98,117,116,105,111,110,115,41,3,114,124,0,0,0,
|
||||
114,125,0,0,0,114,57,1,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,58,1,0,0,114,5,
|
||||
7,0,0,0,114,8,0,0,0,114,58,1,0,0,116,5,
|
||||
0,0,115,6,0,0,0,12,10,16,1,255,128,122,29,80,
|
||||
97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,100,
|
||||
105,115,116,114,105,98,117,116,105,111,110,115,41,1,78,41,
|
||||
@ -2279,7 +2279,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,52,1,0,0,114,53,1,0,0,114,56,1,0,0,114,
|
||||
207,0,0,0,114,210,0,0,0,114,58,1,0,0,114,7,
|
||||
0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
|
||||
0,0,114,42,1,0,0,237,4,0,0,115,38,0,0,0,
|
||||
0,0,114,42,1,0,0,239,4,0,0,115,38,0,0,0,
|
||||
8,0,4,2,2,2,10,1,2,9,10,1,2,12,10,1,
|
||||
2,21,10,1,2,14,12,1,2,31,12,1,2,23,12,1,
|
||||
2,12,14,1,255,128,114,42,1,0,0,99,0,0,0,0,
|
||||
@ -2324,7 +2324,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
14,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100,
|
||||
0,83,0,114,114,0,0,0,114,7,0,0,0,114,14,1,
|
||||
0,0,169,1,114,144,0,0,0,114,7,0,0,0,114,8,
|
||||
0,0,0,114,9,0,0,0,143,5,0,0,115,4,0,0,
|
||||
0,0,0,114,9,0,0,0,145,5,0,0,115,4,0,0,
|
||||
0,22,0,255,128,122,38,70,105,108,101,70,105,110,100,101,
|
||||
114,46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,
|
||||
108,115,62,46,60,103,101,110,101,120,112,114,62,114,79,0,
|
||||
@ -2337,7 +2337,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
108,111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,
|
||||
108,111,97,100,101,114,115,114,193,0,0,0,114,7,0,0,
|
||||
0,114,60,1,0,0,114,8,0,0,0,114,216,0,0,0,
|
||||
137,5,0,0,115,18,0,0,0,4,4,12,1,26,1,6,
|
||||
139,5,0,0,115,18,0,0,0,4,4,12,1,26,1,6,
|
||||
1,10,2,6,1,8,1,12,1,255,128,122,19,70,105,108,
|
||||
101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
|
||||
99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
|
||||
@ -2347,7 +2347,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
116,111,114,121,32,109,116,105,109,101,46,114,109,0,0,0,
|
||||
78,41,1,114,62,1,0,0,114,253,0,0,0,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,43,1,0,
|
||||
0,151,5,0,0,115,4,0,0,0,10,2,255,128,122,28,
|
||||
0,153,5,0,0,115,4,0,0,0,10,2,255,128,122,28,
|
||||
70,105,108,101,70,105,110,100,101,114,46,105,110,118,97,108,
|
||||
105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
|
||||
0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
|
||||
@ -2370,7 +2370,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,207,0,0,0,114,144,0,0,0,114,182,0,0,0,41,
|
||||
3,114,123,0,0,0,114,143,0,0,0,114,191,0,0,0,
|
||||
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
|
||||
141,0,0,0,157,5,0,0,115,10,0,0,0,10,7,8,
|
||||
141,0,0,0,159,5,0,0,115,10,0,0,0,10,7,8,
|
||||
1,8,1,16,1,255,128,122,22,70,105,108,101,70,105,110,
|
||||
100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,99,
|
||||
6,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,
|
||||
@ -2381,7 +2381,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,114,143,0,0,0,114,52,0,0,0,90,4,115,109,
|
||||
115,108,114,206,0,0,0,114,144,0,0,0,114,7,0,0,
|
||||
0,114,7,0,0,0,114,8,0,0,0,114,56,1,0,0,
|
||||
169,5,0,0,115,10,0,0,0,10,1,8,1,2,1,6,
|
||||
171,5,0,0,115,10,0,0,0,10,1,8,1,2,1,6,
|
||||
255,255,128,122,20,70,105,108,101,70,105,110,100,101,114,46,
|
||||
95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0,
|
||||
0,0,0,0,0,0,0,14,0,0,0,8,0,0,0,67,
|
||||
@ -2435,7 +2435,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,90,13,105,110,105,116,95,102,105,108,101,110,97,
|
||||
109,101,90,9,102,117,108,108,95,112,97,116,104,114,191,0,
|
||||
0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,114,207,0,0,0,174,5,0,0,115,74,0,0,0,4,
|
||||
0,114,207,0,0,0,176,5,0,0,115,74,0,0,0,4,
|
||||
5,14,1,2,1,24,1,12,1,10,1,10,1,8,1,6,
|
||||
1,6,2,6,1,10,1,6,2,4,1,8,2,12,1,14,
|
||||
1,8,1,10,1,8,1,24,1,8,4,14,2,16,1,16,
|
||||
@ -2467,7 +2467,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
146,2,113,4,83,0,114,7,0,0,0,41,1,114,110,0,
|
||||
0,0,41,2,114,5,0,0,0,90,2,102,110,114,7,0,
|
||||
0,0,114,7,0,0,0,114,8,0,0,0,114,13,0,0,
|
||||
0,251,5,0,0,115,4,0,0,0,20,0,255,128,122,41,
|
||||
0,253,5,0,0,115,4,0,0,0,20,0,255,128,122,41,
|
||||
70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,
|
||||
95,99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,
|
||||
60,115,101,116,99,111,109,112,62,78,41,18,114,52,0,0,
|
||||
@ -2484,7 +2484,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
116,115,114,38,1,0,0,114,121,0,0,0,114,25,1,0,
|
||||
0,114,15,1,0,0,90,8,110,101,119,95,110,97,109,101,
|
||||
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
|
||||
67,1,0,0,222,5,0,0,115,38,0,0,0,6,2,2,
|
||||
67,1,0,0,224,5,0,0,115,38,0,0,0,6,2,2,
|
||||
1,22,1,18,1,10,3,12,3,12,1,6,7,8,1,16,
|
||||
1,4,1,18,1,4,2,12,1,6,1,12,1,20,1,4,
|
||||
255,255,128,122,22,70,105,108,101,70,105,110,100,101,114,46,
|
||||
@ -2523,14 +2523,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
169,2,114,202,0,0,0,114,66,1,0,0,114,7,0,0,
|
||||
0,114,8,0,0,0,218,24,112,97,116,104,95,104,111,111,
|
||||
107,95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,
|
||||
7,6,0,0,115,8,0,0,0,8,2,12,1,16,1,255,
|
||||
9,6,0,0,115,8,0,0,0,8,2,12,1,16,1,255,
|
||||
128,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,
|
||||
116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
|
||||
46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
|
||||
105,108,101,70,105,110,100,101,114,78,114,7,0,0,0,41,
|
||||
3,114,202,0,0,0,114,66,1,0,0,114,72,1,0,0,
|
||||
114,7,0,0,0,114,71,1,0,0,114,8,0,0,0,218,
|
||||
9,112,97,116,104,95,104,111,111,107,253,5,0,0,115,6,
|
||||
9,112,97,116,104,95,104,111,111,107,255,5,0,0,115,6,
|
||||
0,0,0,14,10,4,6,255,128,122,20,70,105,108,101,70,
|
||||
105,110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,
|
||||
1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
|
||||
@ -2539,7 +2539,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
108,101,70,105,110,100,101,114,40,123,33,114,125,41,41,2,
|
||||
114,70,0,0,0,114,52,0,0,0,114,253,0,0,0,114,
|
||||
7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,36,
|
||||
1,0,0,15,6,0,0,115,4,0,0,0,12,1,255,128,
|
||||
1,0,0,17,6,0,0,115,4,0,0,0,12,1,255,128,
|
||||
122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,
|
||||
101,112,114,95,95,41,1,78,41,15,114,130,0,0,0,114,
|
||||
129,0,0,0,114,131,0,0,0,114,132,0,0,0,114,216,
|
||||
@ -2547,7 +2547,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,114,141,0,0,0,114,56,1,0,0,114,207,0,0,
|
||||
0,114,67,1,0,0,114,214,0,0,0,114,73,1,0,0,
|
||||
114,36,1,0,0,114,7,0,0,0,114,7,0,0,0,114,
|
||||
7,0,0,0,114,8,0,0,0,114,59,1,0,0,128,5,
|
||||
7,0,0,0,114,8,0,0,0,114,59,1,0,0,130,5,
|
||||
0,0,115,26,0,0,0,8,0,4,2,8,7,8,14,4,
|
||||
4,8,2,8,12,10,5,8,48,2,31,10,1,12,17,255,
|
||||
128,114,59,1,0,0,99,4,0,0,0,0,0,0,0,0,
|
||||
@ -2571,7 +2571,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
97,109,101,90,9,99,112,97,116,104,110,97,109,101,114,144,
|
||||
0,0,0,114,191,0,0,0,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,218,14,95,102,105,120,95,117,112,
|
||||
95,109,111,100,117,108,101,21,6,0,0,115,36,0,0,0,
|
||||
95,109,111,100,117,108,101,23,6,0,0,115,36,0,0,0,
|
||||
10,2,10,1,4,1,4,1,8,1,8,1,12,1,10,2,
|
||||
4,1,14,1,2,1,8,1,8,1,8,1,14,1,12,1,
|
||||
8,2,255,128,114,78,1,0,0,99,0,0,0,0,0,0,
|
||||
@ -2591,7 +2591,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
114,94,0,0,0,41,3,90,10,101,120,116,101,110,115,105,
|
||||
111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,
|
||||
101,99,111,100,101,114,7,0,0,0,114,7,0,0,0,114,
|
||||
8,0,0,0,114,188,0,0,0,44,6,0,0,115,10,0,
|
||||
8,0,0,0,114,188,0,0,0,46,6,0,0,115,10,0,
|
||||
0,0,12,5,8,1,8,1,10,1,255,128,114,188,0,0,
|
||||
0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
|
||||
0,0,1,0,0,0,67,0,0,0,115,8,0,0,0,124,
|
||||
@ -2599,7 +2599,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,41,1,218,17,95,98,111,111,116,115,116,114,97,
|
||||
112,95,109,111,100,117,108,101,114,7,0,0,0,114,7,0,
|
||||
0,0,114,8,0,0,0,218,21,95,115,101,116,95,98,111,
|
||||
111,116,115,116,114,97,112,95,109,111,100,117,108,101,55,6,
|
||||
111,116,115,116,114,97,112,95,109,111,100,117,108,101,57,6,
|
||||
0,0,115,4,0,0,0,8,2,255,128,114,81,1,0,0,
|
||||
99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
|
||||
0,4,0,0,0,67,0,0,0,115,50,0,0,0,116,0,
|
||||
@ -2615,7 +2615,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
0,0,0,114,42,1,0,0,41,2,114,80,1,0,0,90,
|
||||
17,115,117,112,112,111,114,116,101,100,95,108,111,97,100,101,
|
||||
114,115,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
|
||||
0,218,8,95,105,110,115,116,97,108,108,60,6,0,0,115,
|
||||
0,218,8,95,105,110,115,116,97,108,108,62,6,0,0,115,
|
||||
10,0,0,0,8,2,6,1,20,1,16,1,255,128,114,83,
|
||||
1,0,0,41,1,114,68,0,0,0,41,1,78,41,3,78,
|
||||
78,78,41,2,114,0,0,0,0,114,0,0,0,0,41,1,
|
||||
@ -2662,7 +2662,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
|
||||
1,10,1,8,2,6,2,8,2,16,2,8,71,8,40,8,
|
||||
19,8,12,8,12,8,31,8,17,8,33,8,28,10,24,10,
|
||||
13,10,10,8,11,6,14,4,3,2,1,12,255,14,68,14,
|
||||
64,16,29,0,127,14,17,18,50,18,45,18,25,14,53,14,
|
||||
63,14,42,0,127,14,20,0,127,10,22,8,23,8,11,12,
|
||||
64,16,30,0,127,14,17,18,50,18,45,18,25,14,53,14,
|
||||
63,14,43,0,127,14,20,0,127,10,22,8,23,8,11,12,
|
||||
5,255,128,
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user