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:
Brett Cannon 2020-12-04 15:39:21 -08:00 committed by GitHub
parent 79c1849b9e
commit 2de5097ba4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 3245 additions and 3034 deletions

View File

@ -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.

View File

@ -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):

View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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__':

View File

@ -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)

View File

@ -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'

View File

@ -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

View File

@ -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')

View File

@ -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)

View File

@ -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

View File

@ -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')

View File

@ -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):

View File

@ -0,0 +1,2 @@
The import system triggers a `ImportWarning` when it falls back to using
`load_module()`.

View File

@ -0,0 +1,2 @@
The `load_module()` methods found in importlib now trigger a
DeprecationWarning.

View File

@ -0,0 +1 @@
Deprecate zipimport.zipimporter.load_module() in favour of exec_module().

3594
Python/importlib.h generated

File diff suppressed because it is too large Load Diff

View File

@ -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