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 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/>`_ <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 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, * 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 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 as appropriate to help identify code which needs updating during
this transition. 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 * ``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python
3.3, when it was made an alias to :class:`str`. It is now deprecated, 3.3, when it was made an alias to :class:`str`. It is now deprecated,
scheduled for removal in Python 3.12. scheduled for removal in Python 3.12.

View File

@ -35,6 +35,7 @@ class Loader(metaclass=abc.ABCMeta):
""" """
if not hasattr(self, 'exec_module'): if not hasattr(self, 'exec_module'):
raise ImportError raise ImportError
# Warning implemented in _load_module_shim().
return _bootstrap._load_module_shim(self, fullname) return _bootstrap._load_module_shim(self, fullname)
def module_repr(self, module): 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 # reference any injected objects! This includes not only global code but also
# anything specified at the class level. # anything specified at the class level.
def _object_name(obj):
try:
return obj.__qualname__
except AttributeError:
return type(obj).__qualname__
# Bootstrap-related code ###################################################### # Bootstrap-related code ######################################################
# Modules injected manually by _setup() # Modules injected manually by _setup()
@ -272,6 +278,9 @@ def _load_module_shim(self, fullname):
This method is deprecated. Use loader.exec_module instead. 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) spec = spec_from_loader(fullname, self)
if fullname in sys.modules: if fullname in sys.modules:
module = sys.modules[fullname] module = sys.modules[fullname]
@ -612,9 +621,9 @@ def _exec(spec, module):
else: else:
_init_module_attrs(spec, module, override=True) _init_module_attrs(spec, module, override=True)
if not hasattr(spec.loader, 'exec_module'): if not hasattr(spec.loader, 'exec_module'):
# (issue19713) Once BuiltinImporter and ExtensionFileLoader msg = (f"{_object_name(spec.loader)}.exec_module() not found; "
# have exec_module() implemented, we can add a deprecation "falling back to load_module()")
# warning here. _warnings.warn(msg, ImportWarning)
spec.loader.load_module(name) spec.loader.load_module(name)
else: else:
spec.loader.exec_module(module) spec.loader.exec_module(module)
@ -627,9 +636,8 @@ def _exec(spec, module):
def _load_backward_compatible(spec): def _load_backward_compatible(spec):
# (issue19713) Once BuiltinImporter and ExtensionFileLoader # It is assumed that all callers have been warned about using load_module()
# have exec_module() implemented, we can add a deprecation # appropriately before calling this function.
# warning here.
try: try:
spec.loader.load_module(spec.name) spec.loader.load_module(spec.name)
except: except:
@ -668,6 +676,9 @@ def _load_unlocked(spec):
if spec.loader is not None: if spec.loader is not None:
# Not a namespace package. # Not a namespace package.
if not hasattr(spec.loader, 'exec_module'): 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) return _load_backward_compatible(spec)
module = module_from_spec(spec) module = module_from_spec(spec)
@ -851,6 +862,7 @@ class FrozenImporter:
This method is deprecated. Use exec_module() instead. This method is deprecated. Use exec_module() instead.
""" """
# Warning about deprecation implemented in _load_module_shim().
return _load_module_shim(cls, fullname) return _load_module_shim(cls, fullname)
@classmethod @classmethod

View File

@ -832,7 +832,8 @@ class _LoaderBasics:
_bootstrap._call_with_frames_removed(exec, code, module.__dict__) _bootstrap._call_with_frames_removed(exec, code, module.__dict__)
def load_module(self, fullname): 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) return _bootstrap._load_module_shim(self, fullname)
@ -1007,7 +1008,7 @@ class FileLoader:
""" """
# The only reason for this method is for the name check. # The only reason for this method is for the name check.
# Issue #14857: Avoid the zero-argument form of super so the implementation # 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) return super(FileLoader, self).load_module(fullname)
@_check_name @_check_name
@ -1253,6 +1254,7 @@ class _NamespaceLoader:
# The import system never calls this method. # The import system never calls this method.
_bootstrap._verbose_message('namespace module loaded with path {!r}', _bootstrap._verbose_message('namespace module loaded with path {!r}',
self._path) self._path)
# Warning implemented in _load_module_shim().
return _bootstrap._load_module_shim(self, fullname) return _bootstrap._load_module_shim(self, fullname)

View File

@ -6,6 +6,7 @@ machinery = util.import_importlib('importlib.machinery')
import sys import sys
import types import types
import unittest import unittest
import warnings
@unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module') @unittest.skipIf(util.BUILTINS.good_name is None, 'no reasonable builtin module')
class LoaderTests(abc.LoaderTests): class LoaderTests(abc.LoaderTests):
@ -24,7 +25,9 @@ class LoaderTests(abc.LoaderTests):
self.assertIn(module.__name__, sys.modules) self.assertIn(module.__name__, sys.modules)
def load_module(self, name): 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): def test_module(self):
# Common case. # Common case.

View File

@ -1,3 +1,4 @@
from warnings import catch_warnings
from .. import abc from .. import abc
from .. import util from .. import util
@ -7,6 +8,7 @@ import os.path
import sys import sys
import types import types
import unittest import unittest
import warnings
import importlib.util import importlib.util
import importlib import importlib
from test.support.script_helper import assert_python_failure from test.support.script_helper import assert_python_failure
@ -20,14 +22,18 @@ class LoaderTests(abc.LoaderTests):
util.EXTENSIONS.file_path) util.EXTENSIONS.file_path)
def load_module(self, fullname): 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): def test_load_module_API(self):
# Test the default argument for load_module(). # Test the default argument for load_module().
self.loader.load_module() with warnings.catch_warnings():
self.loader.load_module(None) warnings.simplefilter("ignore", DeprecationWarning)
with self.assertRaises(ImportError): self.loader.load_module()
self.load_module('XXX') self.loader.load_module(None)
with self.assertRaises(ImportError):
self.load_module('XXX')
def test_equality(self): def test_equality(self):
other = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name, other = self.machinery.ExtensionFileLoader(util.EXTENSIONS.name,
@ -94,6 +100,21 @@ class MultiPhaseExtensionModuleTests(abc.LoaderTests):
self.loader = self.machinery.ExtensionFileLoader( self.loader = self.machinery.ExtensionFileLoader(
self.name, self.spec.origin) 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. # No extension module as __init__ available for testing.
test_package = None test_package = None
@ -157,19 +178,6 @@ class MultiPhaseExtensionModuleTests(abc.LoaderTests):
with self.assertRaises(SystemError): with self.assertRaises(SystemError):
module.call_state_registration_func(2) 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): def test_load_submodule(self):
'''Test loading a simulated submodule''' '''Test loading a simulated submodule'''
module = self.load_module_by_name('pkg.' + self.name) module = self.load_module_by_name('pkg.' + self.name)

View File

@ -161,19 +161,23 @@ class LoaderTests(abc.LoaderTests):
"<module '__hello__' (frozen)>") "<module '__hello__' (frozen)>")
def test_module_repr_indirect(self): def test_module_repr_indirect(self):
with util.uncache('__hello__'), captured_stdout(): with warnings.catch_warnings():
module = self.machinery.FrozenImporter.load_module('__hello__') warnings.simplefilter("ignore", DeprecationWarning)
self.assertEqual(repr(module), with util.uncache('__hello__'), captured_stdout():
"<module '__hello__' (frozen)>") module = self.machinery.FrozenImporter.load_module('__hello__')
self.assertEqual(repr(module),
"<module '__hello__' (frozen)>")
# No way to trigger an error in a frozen module. # No way to trigger an error in a frozen module.
test_state_after_failure = None test_state_after_failure = None
def test_unloadable(self): def test_unloadable(self):
assert self.machinery.FrozenImporter.find_module('_not_real') is None with warnings.catch_warnings():
with self.assertRaises(ImportError) as cm: warnings.simplefilter("ignore", DeprecationWarning)
self.machinery.FrozenImporter.load_module('_not_real') assert self.machinery.FrozenImporter.find_module('_not_real') is None
self.assertEqual(cm.exception.name, '_not_real') with self.assertRaises(ImportError) as cm:
self.machinery.FrozenImporter.load_module('_not_real')
self.assertEqual(cm.exception.name, '_not_real')
(Frozen_LoaderTests, (Frozen_LoaderTests,

View File

@ -2,6 +2,7 @@ from importlib import machinery
import sys import sys
import types import types
import unittest import unittest
import warnings
from .. import util from .. import util
@ -45,25 +46,29 @@ class LoaderMock:
class LoaderAttributeTests: class LoaderAttributeTests:
def test___loader___missing(self): def test___loader___missing(self):
module = types.ModuleType('blah') with warnings.catch_warnings():
try: warnings.simplefilter("ignore", ImportWarning)
del module.__loader__ module = types.ModuleType('blah')
except AttributeError: try:
pass del module.__loader__
loader = LoaderMock() except AttributeError:
loader.module = module pass
with util.uncache('blah'), util.import_state(meta_path=[loader]): loader = LoaderMock()
module = self.__import__('blah') loader.module = module
self.assertEqual(loader, module.__loader__) 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): def test___loader___is_None(self):
module = types.ModuleType('blah') with warnings.catch_warnings():
module.__loader__ = None warnings.simplefilter("ignore", ImportWarning)
loader = LoaderMock() module = types.ModuleType('blah')
loader.module = module module.__loader__ = None
with util.uncache('blah'), util.import_state(meta_path=[loader]): loader = LoaderMock()
returned_module = self.__import__('blah') loader.module = module
self.assertEqual(loader, module.__loader__) with util.uncache('blah'), util.import_state(meta_path=[loader]):
returned_module = self.__import__('blah')
self.assertEqual(loader, module.__loader__)
(Frozen_Tests, (Frozen_Tests,

View File

@ -98,6 +98,16 @@ class FakeSpec:
class Using__package__PEP302(Using__package__): class Using__package__PEP302(Using__package__):
mock_modules = util.mock_modules 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, (Frozen_UsingPackagePEP302,
Source_UsingPackagePEP302 Source_UsingPackagePEP302
@ -155,6 +165,21 @@ class Setting__package__:
class Setting__package__PEP302(Setting__package__, unittest.TestCase): class Setting__package__PEP302(Setting__package__, unittest.TestCase):
mock_modules = util.mock_modules 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): class Setting__package__PEP451(Setting__package__, unittest.TestCase):
mock_modules = util.mock_spec mock_modules = util.mock_spec

View File

@ -4,6 +4,7 @@ from importlib import machinery
import sys import sys
import types import types
import unittest import unittest
import warnings
PKG_NAME = 'fine' PKG_NAME = 'fine'
SUBMOD_NAME = 'fine.bogus' SUBMOD_NAME = 'fine.bogus'
@ -100,6 +101,36 @@ class APITest:
class OldAPITests(APITest): class OldAPITests(APITest):
bad_finder_loader = BadLoaderFinder 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, (Frozen_OldAPITests,
Source_OldAPITests Source_OldAPITests

View File

@ -3,6 +3,7 @@ from .. import util
import sys import sys
from types import MethodType from types import MethodType
import unittest import unittest
import warnings
class UseCache: class UseCache:
@ -63,30 +64,36 @@ class ImportlibUseCache(UseCache, unittest.TestCase):
# to when to use the module in sys.modules and when not to. # to when to use the module in sys.modules and when not to.
def test_using_cache_after_loader(self): def test_using_cache_after_loader(self):
# [from cache on return] # [from cache on return]
with self.create_mock('module') as mock: with warnings.catch_warnings():
with util.import_state(meta_path=[mock]): warnings.simplefilter("ignore", ImportWarning)
module = self.__import__('module') with self.create_mock('module') as mock:
self.assertEqual(id(module), id(sys.modules['module'])) 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. # See test_using_cache_after_loader() for reasoning.
def test_using_cache_for_assigning_to_attribute(self): def test_using_cache_for_assigning_to_attribute(self):
# [from cache to attribute] # [from cache to attribute]
with self.create_mock('pkg.__init__', 'pkg.module') as importer: with warnings.catch_warnings():
with util.import_state(meta_path=[importer]): warnings.simplefilter("ignore", ImportWarning)
module = self.__import__('pkg.module') with self.create_mock('pkg.__init__', 'pkg.module') as importer:
self.assertTrue(hasattr(module, 'module')) with util.import_state(meta_path=[importer]):
self.assertEqual(id(module.module), module = self.__import__('pkg.module')
id(sys.modules['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. # See test_using_cache_after_loader() for reasoning.
def test_using_cache_for_fromlist(self): def test_using_cache_for_fromlist(self):
# [from cache for fromlist] # [from cache for fromlist]
with self.create_mock('pkg.__init__', 'pkg.module') as importer: with warnings.catch_warnings():
with util.import_state(meta_path=[importer]): warnings.simplefilter("ignore", ImportWarning)
module = self.__import__('pkg', fromlist=['module']) with self.create_mock('pkg.__init__', 'pkg.module') as importer:
self.assertTrue(hasattr(module, 'module')) with util.import_state(meta_path=[importer]):
self.assertEqual(id(module.module), module = self.__import__('pkg', fromlist=['module'])
id(sys.modules['pkg.module'])) self.assertTrue(hasattr(module, 'module'))
self.assertEqual(id(module.module),
id(sys.modules['pkg.module']))
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -24,7 +24,7 @@ class ReturnValue:
def test_return_from_from_import(self): def test_return_from_from_import(self):
# [from return] # [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]): with util.import_state(meta_path=[importer]):
module = self.__import__('pkg.module', fromlist=['attr']) module = self.__import__('pkg.module', fromlist=['attr'])
self.assertEqual(module.__name__, 'pkg.module') self.assertEqual(module.__name__, 'pkg.module')
@ -52,14 +52,14 @@ class HandlingFromlist:
def test_object(self): def test_object(self):
# [object case] # [object case]
with util.mock_modules('module') as importer: with util.mock_spec('module') as importer:
with util.import_state(meta_path=[importer]): with util.import_state(meta_path=[importer]):
module = self.__import__('module', fromlist=['attr']) module = self.__import__('module', fromlist=['attr'])
self.assertEqual(module.__name__, 'module') self.assertEqual(module.__name__, 'module')
def test_nonexistent_object(self): def test_nonexistent_object(self):
# [bad object] # [bad object]
with util.mock_modules('module') as importer: with util.mock_spec('module') as importer:
with util.import_state(meta_path=[importer]): with util.import_state(meta_path=[importer]):
module = self.__import__('module', fromlist=['non_existent']) module = self.__import__('module', fromlist=['non_existent'])
self.assertEqual(module.__name__, 'module') self.assertEqual(module.__name__, 'module')
@ -67,7 +67,7 @@ class HandlingFromlist:
def test_module_from_package(self): def test_module_from_package(self):
# [module] # [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]): with util.import_state(meta_path=[importer]):
module = self.__import__('pkg', fromlist=['module']) module = self.__import__('pkg', fromlist=['module'])
self.assertEqual(module.__name__, 'pkg') self.assertEqual(module.__name__, 'pkg')
@ -75,7 +75,7 @@ class HandlingFromlist:
self.assertEqual(module.module.__name__, 'pkg.module') self.assertEqual(module.module.__name__, 'pkg.module')
def test_nonexistent_from_package(self): 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]): with util.import_state(meta_path=[importer]):
module = self.__import__('pkg', fromlist=['non_existent']) module = self.__import__('pkg', fromlist=['non_existent'])
self.assertEqual(module.__name__, 'pkg') self.assertEqual(module.__name__, 'pkg')
@ -87,7 +87,7 @@ class HandlingFromlist:
# ModuleNotFoundError propagate. # ModuleNotFoundError propagate.
def module_code(): def module_code():
import i_do_not_exist 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: module_code={'pkg.mod': module_code}) as importer:
with util.import_state(meta_path=[importer]): with util.import_state(meta_path=[importer]):
with self.assertRaises(ModuleNotFoundError) as exc: with self.assertRaises(ModuleNotFoundError) as exc:
@ -95,14 +95,14 @@ class HandlingFromlist:
self.assertEqual('i_do_not_exist', exc.exception.name) self.assertEqual('i_do_not_exist', exc.exception.name)
def test_empty_string(self): 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]): with util.import_state(meta_path=[importer]):
module = self.__import__('pkg.mod', fromlist=['']) module = self.__import__('pkg.mod', fromlist=[''])
self.assertEqual(module.__name__, 'pkg.mod') self.assertEqual(module.__name__, 'pkg.mod')
def basic_star_test(self, fromlist=['*']): def basic_star_test(self, fromlist=['*']):
# [using *] # [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]): with util.import_state(meta_path=[mock]):
mock['pkg'].__all__ = ['module'] mock['pkg'].__all__ = ['module']
module = self.__import__('pkg', fromlist=fromlist) module = self.__import__('pkg', fromlist=fromlist)
@ -119,7 +119,7 @@ class HandlingFromlist:
def test_star_with_others(self): def test_star_with_others(self):
# [using * with others] # [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 context as mock:
with util.import_state(meta_path=[mock]): with util.import_state(meta_path=[mock]):
mock['pkg'].__all__ = ['module1'] mock['pkg'].__all__ = ['module1']
@ -131,7 +131,7 @@ class HandlingFromlist:
self.assertEqual(module.module2.__name__, 'pkg.module2') self.assertEqual(module.module2.__name__, 'pkg.module2')
def test_nonexistent_in_all(self): 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]): with util.import_state(meta_path=[importer]):
importer['pkg'].__all__ = ['non_existent'] importer['pkg'].__all__ = ['non_existent']
module = self.__import__('pkg', fromlist=['*']) module = self.__import__('pkg', fromlist=['*'])
@ -139,7 +139,7 @@ class HandlingFromlist:
self.assertFalse(hasattr(module, 'non_existent')) self.assertFalse(hasattr(module, 'non_existent'))
def test_star_in_all(self): 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]): with util.import_state(meta_path=[importer]):
importer['pkg'].__all__ = ['*'] importer['pkg'].__all__ = ['*']
module = self.__import__('pkg', fromlist=['*']) module = self.__import__('pkg', fromlist=['*'])
@ -147,7 +147,7 @@ class HandlingFromlist:
self.assertFalse(hasattr(module, '*')) self.assertFalse(hasattr(module, '*'))
def test_invalid_type(self): 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]), \ with util.import_state(meta_path=[importer]), \
warnings.catch_warnings(): warnings.catch_warnings():
warnings.simplefilter('error', BytesWarning) warnings.simplefilter('error', BytesWarning)
@ -157,7 +157,7 @@ class HandlingFromlist:
self.__import__('pkg', fromlist=iter([b'attr'])) self.__import__('pkg', fromlist=iter([b'attr']))
def test_invalid_type_in_all(self): 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]), \ with util.import_state(meta_path=[importer]), \
warnings.catch_warnings(): warnings.catch_warnings():
warnings.simplefilter('error', BytesWarning) warnings.simplefilter('error', BytesWarning)

View File

@ -100,8 +100,20 @@ class CallSignature:
self.assertEqual(args[0], mod_name) self.assertEqual(args[0], mod_name)
self.assertIs(args[1], path) 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 mock_modules = util.mock_modules
finder_name = 'find_module' finder_name = 'find_module'

View File

@ -458,32 +458,36 @@ class LoaderLoadModuleTests:
return SpecLoader() return SpecLoader()
def test_fresh(self): def test_fresh(self):
loader = self.loader() with warnings.catch_warnings():
name = 'blah' warnings.simplefilter("ignore", DeprecationWarning)
with test_util.uncache(name): loader = self.loader()
loader.load_module(name) name = 'blah'
module = loader.found with test_util.uncache(name):
self.assertIs(sys.modules[name], module) loader.load_module(name)
self.assertEqual(loader, module.__loader__) module = loader.found
self.assertEqual(loader, module.__spec__.loader) self.assertIs(sys.modules[name], module)
self.assertEqual(name, module.__name__) self.assertEqual(loader, module.__loader__)
self.assertEqual(name, module.__spec__.name) self.assertEqual(loader, module.__spec__.loader)
self.assertIsNotNone(module.__path__) self.assertEqual(name, module.__name__)
self.assertIsNotNone(module.__path__, self.assertEqual(name, module.__spec__.name)
module.__spec__.submodule_search_locations) self.assertIsNotNone(module.__path__)
self.assertIsNotNone(module.__path__,
module.__spec__.submodule_search_locations)
def test_reload(self): def test_reload(self):
name = 'blah' with warnings.catch_warnings():
loader = self.loader() warnings.simplefilter("ignore", DeprecationWarning)
module = types.ModuleType(name) name = 'blah'
module.__spec__ = self.util.spec_from_loader(name, loader) loader = self.loader()
module.__loader__ = loader module = types.ModuleType(name)
with test_util.uncache(name): module.__spec__ = self.util.spec_from_loader(name, loader)
sys.modules[name] = module module.__loader__ = loader
loader.load_module(name) with test_util.uncache(name):
found = loader.found sys.modules[name] = module
self.assertIs(found, sys.modules[name]) loader.load_module(name)
self.assertIs(module, sys.modules[name]) found = loader.found
self.assertIs(found, sys.modules[name])
self.assertIs(module, sys.modules[name])
(Frozen_LoaderLoadModuleTests, (Frozen_LoaderLoadModuleTests,
@ -837,25 +841,29 @@ class SourceOnlyLoaderTests(SourceLoaderTestHarness):
# Loading a module should set __name__, __loader__, __package__, # Loading a module should set __name__, __loader__, __package__,
# __path__ (for packages), __file__, and __cached__. # __path__ (for packages), __file__, and __cached__.
# The module should also be put into sys.modules. # The module should also be put into sys.modules.
with test_util.uncache(self.name): with warnings.catch_warnings():
with warnings.catch_warnings(): warnings.simplefilter("ignore", ImportWarning)
warnings.simplefilter('ignore', DeprecationWarning) with test_util.uncache(self.name):
module = self.loader.load_module(self.name) with warnings.catch_warnings():
self.verify_module(module) warnings.simplefilter('ignore', DeprecationWarning)
self.assertEqual(module.__path__, [os.path.dirname(self.path)]) module = self.loader.load_module(self.name)
self.assertIn(self.name, sys.modules) self.verify_module(module)
self.assertEqual(module.__path__, [os.path.dirname(self.path)])
self.assertIn(self.name, sys.modules)
def test_package_settings(self): def test_package_settings(self):
# __package__ needs to be set, while __path__ is set on if the module # __package__ needs to be set, while __path__ is set on if the module
# is a package. # is a package.
# Testing the values for a package are covered by test_load_module. # Testing the values for a package are covered by test_load_module.
self.setUp(is_package=False) with warnings.catch_warnings():
with test_util.uncache(self.name): warnings.simplefilter("ignore", ImportWarning)
with warnings.catch_warnings(): self.setUp(is_package=False)
warnings.simplefilter('ignore', DeprecationWarning) with test_util.uncache(self.name):
module = self.loader.load_module(self.name) with warnings.catch_warnings():
self.verify_module(module) warnings.simplefilter('ignore', DeprecationWarning)
self.assertFalse(hasattr(module, '__path__')) module = self.loader.load_module(self.name)
self.verify_module(module)
self.assertFalse(hasattr(module, '__path__'))
def test_get_source_encoding(self): def test_get_source_encoding(self):
# Source is considered encoded in UTF-8 by default unless otherwise # Source is considered encoded in UTF-8 by default unless otherwise

View File

@ -20,7 +20,7 @@ class ImportModuleTests:
def test_module_import(self): def test_module_import(self):
# Test importing a top-level module. # 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]): with test_util.import_state(meta_path=[mock]):
module = self.init.import_module('top_level') module = self.init.import_module('top_level')
self.assertEqual(module.__name__, 'top_level') self.assertEqual(module.__name__, 'top_level')
@ -30,7 +30,7 @@ class ImportModuleTests:
pkg_name = 'pkg' pkg_name = 'pkg'
pkg_long_name = '{0}.__init__'.format(pkg_name) pkg_long_name = '{0}.__init__'.format(pkg_name)
name = '{0}.mod'.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]): with test_util.import_state(meta_path=[mock]):
module = self.init.import_module(name) module = self.init.import_module(name)
self.assertEqual(module.__name__, name) self.assertEqual(module.__name__, name)
@ -42,7 +42,7 @@ class ImportModuleTests:
module_name = 'mod' module_name = 'mod'
absolute_name = '{0}.{1}'.format(pkg_name, module_name) absolute_name = '{0}.{1}'.format(pkg_name, module_name)
relative_name = '.{0}'.format(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]): with test_util.import_state(meta_path=[mock]):
self.init.import_module(pkg_name) self.init.import_module(pkg_name)
module = self.init.import_module(relative_name, pkg_name) module = self.init.import_module(relative_name, pkg_name)
@ -50,7 +50,7 @@ class ImportModuleTests:
def test_deep_relative_package_import(self): def test_deep_relative_package_import(self):
modules = ['a.__init__', 'a.b.__init__', 'a.c'] 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]): with test_util.import_state(meta_path=[mock]):
self.init.import_module('a') self.init.import_module('a')
self.init.import_module('a.b') self.init.import_module('a.b')
@ -63,7 +63,7 @@ class ImportModuleTests:
pkg_name = 'pkg' pkg_name = 'pkg'
pkg_long_name = '{0}.__init__'.format(pkg_name) pkg_long_name = '{0}.__init__'.format(pkg_name)
name = '{0}.mod'.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]): with test_util.import_state(meta_path=[mock]):
self.init.import_module(pkg_name) self.init.import_module(pkg_name)
module = self.init.import_module(name, pkg_name) module = self.init.import_module(name, pkg_name)
@ -88,7 +88,7 @@ class ImportModuleTests:
b_load_count += 1 b_load_count += 1
code = {'a': load_a, 'a.b': load_b} code = {'a': load_a, 'a.b': load_b}
modules = ['a.__init__', 'a.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]): with test_util.import_state(meta_path=[mock]):
self.init.import_module('a.b') self.init.import_module('a.b')
self.assertEqual(b_load_count, 1) self.assertEqual(b_load_count, 1)
@ -212,8 +212,8 @@ class ReloadTests:
module = type(sys)('top_level') module = type(sys)('top_level')
module.spam = 3 module.spam = 3
sys.modules['top_level'] = module sys.modules['top_level'] = module
mock = test_util.mock_modules('top_level', mock = test_util.mock_spec('top_level',
module_code={'top_level': code}) module_code={'top_level': code})
with mock: with mock:
with test_util.import_state(meta_path=[mock]): with test_util.import_state(meta_path=[mock]):
module = self.init.import_module('top_level') module = self.init.import_module('top_level')

View File

@ -303,32 +303,38 @@ class ModuleSpecMethodsTests:
self.assertNotIn(self.spec.name, sys.modules) self.assertNotIn(self.spec.name, sys.modules)
def test_load_legacy(self): def test_load_legacy(self):
self.spec.loader = LegacyLoader() with warnings.catch_warnings():
with CleanImport(self.spec.name): warnings.simplefilter("ignore", ImportWarning)
loaded = self.bootstrap._load(self.spec) 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): def test_load_legacy_attributes(self):
self.spec.loader = LegacyLoader() with warnings.catch_warnings():
with CleanImport(self.spec.name): warnings.simplefilter("ignore", ImportWarning)
loaded = self.bootstrap._load(self.spec) self.spec.loader = LegacyLoader()
with CleanImport(self.spec.name):
loaded = self.bootstrap._load(self.spec)
self.assertIs(loaded.__loader__, self.spec.loader) self.assertIs(loaded.__loader__, self.spec.loader)
self.assertEqual(loaded.__package__, self.spec.parent) self.assertEqual(loaded.__package__, self.spec.parent)
self.assertIs(loaded.__spec__, self.spec) self.assertIs(loaded.__spec__, self.spec)
def test_load_legacy_attributes_immutable(self): def test_load_legacy_attributes_immutable(self):
module = object() module = object()
class ImmutableLoader(TestLoader): with warnings.catch_warnings():
def load_module(self, name): warnings.simplefilter("ignore", ImportWarning)
sys.modules[name] = module class ImmutableLoader(TestLoader):
return module def load_module(self, name):
self.spec.loader = ImmutableLoader() sys.modules[name] = module
with CleanImport(self.spec.name): return module
loaded = self.bootstrap._load(self.spec) 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() # reload()
@ -382,11 +388,13 @@ class ModuleSpecMethodsTests:
self.assertFalse(hasattr(loaded, '__cached__')) self.assertFalse(hasattr(loaded, '__cached__'))
def test_reload_legacy(self): def test_reload_legacy(self):
self.spec.loader = LegacyLoader() with warnings.catch_warnings():
with CleanImport(self.spec.name): warnings.simplefilter("ignore", ImportWarning)
loaded = self.bootstrap._load(self.spec) self.spec.loader = LegacyLoader()
reloaded = self.bootstrap._exec(self.spec, loaded) with CleanImport(self.spec.name):
installed = sys.modules[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.assertEqual(loaded.ham, -1)
self.assertIs(reloaded, loaded) self.assertIs(reloaded, loaded)

View File

@ -446,7 +446,7 @@ class EnsurePipTest(BaseTest):
# pip's cross-version compatibility may trigger deprecation # pip's cross-version compatibility may trigger deprecation
# warnings in current versions of Python. Ensure related # warnings in current versions of Python. Ensure related
# environment settings don't cause venv to fail. # environment settings don't cause venv to fail.
envvars["PYTHONWARNINGS"] = "e" envvars["PYTHONWARNINGS"] = "ignore"
# ensurepip is different enough from a normal pip invocation # ensurepip is different enough from a normal pip invocation
# that we want to ensure it ignores the normal pip environment # that we want to ensure it ignores the normal pip environment
# variable settings. We set PIP_NO_INSTALL here specifically # variable settings. We set PIP_NO_INSTALL here specifically
@ -485,7 +485,8 @@ class EnsurePipTest(BaseTest):
# Ensure pip is available in the virtual environment # Ensure pip is available in the virtual environment
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe) envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
# Ignore DeprecationWarning since pip code is not part of Python # 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']) '-m', 'pip', '--version'])
# We force everything to text, so unittest gives the detailed diff # We force everything to text, so unittest gives the detailed diff
# if we get unexpected results # if we get unexpected results
@ -501,8 +502,12 @@ class EnsurePipTest(BaseTest):
# Check the private uninstall command provided for the Windows # Check the private uninstall command provided for the Windows
# installers works (at least in a virtual environment) # installers works (at least in a virtual environment)
with EnvironmentVarGuard() as envvars: 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, out, err = check_output([envpy,
'-W', 'ignore::DeprecationWarning', '-I', '-W', 'ignore::DeprecationWarning',
'-W', 'ignore::ImportWarning', '-I',
'-m', 'ensurepip._uninstall']) '-m', 'ensurepip._uninstall'])
# We force everything to text, so unittest gives the detailed diff # We force everything to text, so unittest gives the detailed diff
# if we get unexpected results # if we get unexpected results

View File

@ -7,6 +7,7 @@ import struct
import time import time
import unittest import unittest
import unittest.mock import unittest.mock
import warnings
from test import support from test import support
from test.support import import_helper from test.support import import_helper
@ -453,15 +454,17 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
self.assertTrue(zi.is_package(TESTPACK)) self.assertTrue(zi.is_package(TESTPACK))
# PEP 302 # PEP 302
find_mod = zi.find_module('spam') with warnings.catch_warnings():
self.assertIsNotNone(find_mod) warnings.simplefilter("ignore", DeprecationWarning)
self.assertIsInstance(find_mod, zipimport.zipimporter) find_mod = zi.find_module('spam')
self.assertFalse(find_mod.is_package('spam')) self.assertIsNotNone(find_mod)
load_mod = find_mod.load_module('spam') self.assertIsInstance(find_mod, zipimport.zipimporter)
self.assertEqual(find_mod.get_filename('spam'), load_mod.__file__) 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) mod = zi.load_module(TESTPACK)
self.assertEqual(zi.get_filename(TESTPACK), mod.__file__) self.assertEqual(zi.get_filename(TESTPACK), mod.__file__)
# PEP 451 # PEP 451
spec = zi.find_spec('spam') spec = zi.find_spec('spam')
@ -522,8 +525,10 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
self.assertEqual(zi.prefix, packdir) self.assertEqual(zi.prefix, packdir)
self.assertTrue(zi.is_package(TESTPACK2)) self.assertTrue(zi.is_package(TESTPACK2))
# PEP 302 # PEP 302
mod = zi.load_module(TESTPACK2) with warnings.catch_warnings():
self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__) warnings.simplefilter("ignore", DeprecationWarning)
mod = zi.load_module(TESTPACK2)
self.assertEqual(zi.get_filename(TESTPACK2), mod.__file__)
# PEP 451 # PEP 451
spec = zi.find_spec(TESTPACK2) spec = zi.find_spec(TESTPACK2)
mod = importlib.util.module_from_spec(spec) mod = importlib.util.module_from_spec(spec)
@ -536,13 +541,15 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase):
pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2 pkg_path = TEMP_ZIP + os.sep + packdir + TESTPACK2
zi2 = zipimport.zipimporter(pkg_path) zi2 = zipimport.zipimporter(pkg_path)
# PEP 302 # PEP 302
find_mod_dotted = zi2.find_module(TESTMOD) with warnings.catch_warnings():
self.assertIsNotNone(find_mod_dotted) warnings.simplefilter("ignore", DeprecationWarning)
self.assertIsInstance(find_mod_dotted, zipimport.zipimporter) find_mod_dotted = zi2.find_module(TESTMOD)
self.assertFalse(zi2.is_package(TESTMOD)) self.assertIsNotNone(find_mod_dotted)
load_mod = find_mod_dotted.load_module(TESTMOD) self.assertIsInstance(find_mod_dotted, zipimport.zipimporter)
self.assertEqual( self.assertFalse(zi2.is_package(TESTMOD))
find_mod_dotted.get_filename(TESTMOD), load_mod.__file__) load_mod = find_mod_dotted.load_module(TESTMOD)
self.assertEqual(
find_mod_dotted.get_filename(TESTMOD), load_mod.__file__)
# PEP 451 # PEP 451
spec = zi2.find_spec(TESTMOD) spec = zi2.find_spec(TESTMOD)
@ -778,10 +785,12 @@ class BadFileZipImportTestCase(unittest.TestCase):
z = zipimport.zipimporter(TESTMOD) z = zipimport.zipimporter(TESTMOD)
try: 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_module, None)
self.assertRaises(TypeError, z.find_spec, None) self.assertRaises(TypeError, z.find_spec, None)
self.assertRaises(TypeError, z.exec_module, 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.is_package, None)
self.assertRaises(TypeError, z.get_code, None) self.assertRaises(TypeError, z.get_code, None)
self.assertRaises(TypeError, z.get_data, 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_module('abc'))
self.assertIsNone(z.find_spec('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(error, z.get_code, 'abc')
self.assertRaises(OSError, z.get_data, 'abc') self.assertRaises(OSError, z.get_data, 'abc')
self.assertRaises(error, z.get_source, 'abc') self.assertRaises(error, z.get_source, 'abc')

View File

@ -22,6 +22,7 @@ import _io # for open
import marshal # for loads import marshal # for loads
import sys # for modules import sys # for modules
import time # for mktime import time # for mktime
import _warnings # For warn()
__all__ = ['ZipImportError', 'zipimporter'] __all__ = ['ZipImportError', 'zipimporter']
@ -268,8 +269,11 @@ class zipimporter(_bootstrap_external._LoaderBasics):
fully qualified (dotted) module name. It returns the imported fully qualified (dotted) module name. It returns the imported
module, or raises ZipImportError if it wasn't found. 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) code, ispackage, modpath = _get_module_code(self, fullname)
mod = sys.modules.get(fullname) mod = sys.modules.get(fullname)
if mod is None or not isinstance(mod, _module_type): 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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,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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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,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,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,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,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, 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, 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,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,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, 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, 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, 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, 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,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,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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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,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, 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,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,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, 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, 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, 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, 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,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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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,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,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, 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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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,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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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,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,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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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,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,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, 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, 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, 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, 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, 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,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, 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, 224,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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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,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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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,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, 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,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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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,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, 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,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, 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, 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,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,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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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,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, 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, 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,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,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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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,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, 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, 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, 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, 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, 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, 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, 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,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,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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 64,16,30,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, 63,14,43,0,127,14,20,0,127,10,22,8,23,8,11,12,
5,255,128, 5,255,128,
}; };

File diff suppressed because it is too large Load Diff