diff options
-rw-r--r-- | Doc/library/sys.rst | 4 | ||||
-rw-r--r-- | Doc/reference/import.rst | 24 | ||||
-rw-r--r-- | Lib/importlib/_bootstrap.py | 2 | ||||
-rw-r--r-- | Lib/test/test_importlib/import_/test_path.py | 25 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Python/importlib.h | 130 |
6 files changed, 111 insertions, 77 deletions
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 0da2be8..5e2b371 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -783,7 +783,9 @@ always available. current directory first. Notice that the script directory is inserted *before* the entries inserted as a result of :envvar:`PYTHONPATH`. - A program is free to modify this list for its own purposes. + A program is free to modify this list for its own purposes. Only strings + and bytes should be added to :data:`sys.path`; all other data types are + ignored during import. .. seealso:: diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst index fdecc76..ef0235d 100644 --- a/Doc/reference/import.rst +++ b/Doc/reference/import.rst @@ -540,7 +540,10 @@ environment variable and various other installation- and implementation-specific defaults. Entries in :data:`sys.path` can name directories on the file system, zip files, and potentially other "locations" (see the :mod:`site` module) that should be searched for modules, such as -URLs, or database queries. +URLs, or database queries. Only strings and bytes should be present on +:data:`sys.path`; all other data types are ignored. The encoding of bytes +entries is determined by the individual :term:`path entry finders <path entry +finder>`. The :term:`path based finder` is a :term:`meta path finder`, so the import machinery begins the :term:`import path` search by calling the path @@ -563,14 +566,17 @@ free to remove cache entries from :data:`sys.path_importer_cache` forcing the path based finder to perform the path entry search again [#fnpic]_. If the path entry is not present in the cache, the path based finder iterates -over every callable in :data:`sys.path_hooks`. Each of the -:term:`path entry hooks <path entry hook>` in this list is called with a -single argument, the path entry to be searched. This callable may either -return a :term:`path entry finder` that can handle the path entry, or it may -raise :exc:`ImportError`. -An :exc:`ImportError` is used by the path based finder to signal that the hook -cannot find a :term:`path entry finder` for that :term:`path entry`. The -exception is ignored and :term:`import path` iteration continues. +over every callable in :data:`sys.path_hooks`. Each of the :term:`path entry +hooks <path entry hook>` in this list is called with a single argument, the +path entry to be searched. This callable may either return a :term:`path +entry finder` that can handle the path entry, or it may raise +:exc:`ImportError`. An :exc:`ImportError` is used by the path based finder to +signal that the hook cannot find a :term:`path entry finder` for that +:term:`path entry`. The exception is ignored and :term:`import path` +iteration continues. The hook should expect either a string or bytes object; +the encoding of bytes objects is up to the hook (e.g. it may be a file system +encoding, UTF-8, or something else), and if the hook cannot decode the +argument, it should raise :exc:`ImportError`. If :data:`sys.path_hooks` iteration ends with no :term:`path entry finder` being returned, then the path based finder's :meth:`find_module()` method diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index a924c79..2e0bd6a 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -1287,6 +1287,8 @@ class PathFinder: # the list of paths that will become its __path__ namespace_path = [] for entry in path: + if not isinstance(entry, (str, bytes)): + continue finder = cls._path_importer_cache(entry) if finder is not None: if hasattr(finder, 'find_loader'): diff --git a/Lib/test/test_importlib/import_/test_path.py b/Lib/test/test_importlib/import_/test_path.py index 0c086ce..8b9c77d 100644 --- a/Lib/test/test_importlib/import_/test_path.py +++ b/Lib/test/test_importlib/import_/test_path.py @@ -1,15 +1,14 @@ from importlib import _bootstrap from importlib import machinery +from importlib import import_module from .. import util from . import util as import_util -import imp import os import sys -import tempfile -from test import support -from types import MethodType +from types import ModuleType import unittest import warnings +import zipimport class FinderTests(unittest.TestCase): @@ -89,6 +88,24 @@ class FinderTests(unittest.TestCase): self.assertIs(loader, importer) self.assertIn(os.curdir, sys.path_importer_cache) + def test_None_on_sys_path(self): + # Putting None in sys.path[0] caused an import regression from Python + # 3.2: http://bugs.python.org/issue16514 + new_path = sys.path[:] + new_path.insert(0, None) + new_path_importer_cache = sys.path_importer_cache.copy() + new_path_importer_cache.pop(None, None) + new_path_hooks = [zipimport.zipimporter, + _bootstrap.FileFinder.path_hook( + *_bootstrap._get_supported_file_loaders())] + with util.uncache('email'): + with util.import_state(meta_path=sys.meta_path[:], + path=new_path, + path_importer_cache=new_path_importer_cache, + path_hooks=new_path_hooks): + module = import_module('email') + self.assertIsInstance(module, ModuleType) + def test_main(): from test.support import run_unittest @@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1? Core and Builtins ----------------- +- Issue #16514: Fix regression causing a traceback when sys.path[0] is None + (actually, any non-string or non-bytes type). + - Issue #16505: Remove unused Py_TPFLAGS_INT_SUBCLASS. - Issue #16306: Fix multiple error messages when unknown command line diff --git a/Python/importlib.h b/Python/importlib.h index 505a423..3c0015b 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -3213,40 +3213,44 @@ unsigned char _Py_M__importlib[] = { 31,0,0,0,80,97,116,104,70,105,110,100,101,114,46,95, 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, 99,104,101,99,3,0,0,0,0,0,0,0,8,0,0,0, - 4,0,0,0,67,0,0,0,115,162,0,0,0,103,0,0, - 125,3,0,120,149,0,124,2,0,68,93,131,0,125,4,0, - 124,0,0,106,0,0,124,4,0,131,1,0,125,5,0,124, - 5,0,100,2,0,107,9,0,114,13,0,116,2,0,124,5, - 0,100,1,0,131,2,0,114,85,0,124,5,0,106,3,0, - 124,1,0,131,1,0,92,2,0,125,6,0,125,7,0,110, - 21,0,124,5,0,106,4,0,124,1,0,131,1,0,125,6, - 0,103,0,0,125,7,0,124,6,0,100,2,0,107,9,0, - 114,128,0,124,6,0,124,3,0,102,2,0,83,124,3,0, - 106,5,0,124,7,0,131,1,0,1,113,13,0,113,13,0, - 87,100,2,0,124,3,0,102,2,0,83,100,2,0,83,40, - 3,0,0,0,117,63,0,0,0,70,105,110,100,32,116,104, - 101,32,108,111,97,100,101,114,32,111,114,32,110,97,109,101, - 115,112,97,99,101,95,112,97,116,104,32,102,111,114,32,116, - 104,105,115,32,109,111,100,117,108,101,47,112,97,99,107,97, - 103,101,32,110,97,109,101,46,117,11,0,0,0,102,105,110, - 100,95,108,111,97,100,101,114,78,40,6,0,0,0,117,20, - 0,0,0,95,112,97,116,104,95,105,109,112,111,114,116,101, - 114,95,99,97,99,104,101,117,4,0,0,0,78,111,110,101, - 117,7,0,0,0,104,97,115,97,116,116,114,117,11,0,0, - 0,102,105,110,100,95,108,111,97,100,101,114,117,11,0,0, - 0,102,105,110,100,95,109,111,100,117,108,101,117,6,0,0, - 0,101,120,116,101,110,100,40,8,0,0,0,117,3,0,0, - 0,99,108,115,117,8,0,0,0,102,117,108,108,110,97,109, - 101,117,4,0,0,0,112,97,116,104,117,14,0,0,0,110, - 97,109,101,115,112,97,99,101,95,112,97,116,104,117,5,0, - 0,0,101,110,116,114,121,117,6,0,0,0,102,105,110,100, - 101,114,117,6,0,0,0,108,111,97,100,101,114,117,8,0, - 0,0,112,111,114,116,105,111,110,115,40,0,0,0,0,40, - 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110, - 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, - 115,116,114,97,112,62,117,11,0,0,0,95,103,101,116,95, - 108,111,97,100,101,114,3,5,0,0,115,24,0,0,0,0, - 5,6,1,13,1,15,1,12,1,15,1,24,2,15,1,6, + 5,0,0,0,67,0,0,0,115,189,0,0,0,103,0,0, + 125,3,0,120,176,0,124,2,0,68,93,158,0,125,4,0, + 116,0,0,124,4,0,116,1,0,116,2,0,102,2,0,131, + 2,0,115,46,0,113,13,0,110,0,0,124,0,0,106,3, + 0,124,4,0,131,1,0,125,5,0,124,5,0,100,2,0, + 107,9,0,114,13,0,116,5,0,124,5,0,100,1,0,131, + 2,0,114,112,0,124,5,0,106,6,0,124,1,0,131,1, + 0,92,2,0,125,6,0,125,7,0,110,21,0,124,5,0, + 106,7,0,124,1,0,131,1,0,125,6,0,103,0,0,125, + 7,0,124,6,0,100,2,0,107,9,0,114,155,0,124,6, + 0,124,3,0,102,2,0,83,124,3,0,106,8,0,124,7, + 0,131,1,0,1,113,13,0,113,13,0,87,100,2,0,124, + 3,0,102,2,0,83,100,2,0,83,40,3,0,0,0,117, + 63,0,0,0,70,105,110,100,32,116,104,101,32,108,111,97, + 100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101, + 95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109, + 111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97, + 109,101,46,117,11,0,0,0,102,105,110,100,95,108,111,97, + 100,101,114,78,40,9,0,0,0,117,10,0,0,0,105,115, + 105,110,115,116,97,110,99,101,117,3,0,0,0,115,116,114, + 117,5,0,0,0,98,121,116,101,115,117,20,0,0,0,95, + 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, + 99,104,101,117,4,0,0,0,78,111,110,101,117,7,0,0, + 0,104,97,115,97,116,116,114,117,11,0,0,0,102,105,110, + 100,95,108,111,97,100,101,114,117,11,0,0,0,102,105,110, + 100,95,109,111,100,117,108,101,117,6,0,0,0,101,120,116, + 101,110,100,40,8,0,0,0,117,3,0,0,0,99,108,115, + 117,8,0,0,0,102,117,108,108,110,97,109,101,117,4,0, + 0,0,112,97,116,104,117,14,0,0,0,110,97,109,101,115, + 112,97,99,101,95,112,97,116,104,117,5,0,0,0,101,110, + 116,114,121,117,6,0,0,0,102,105,110,100,101,114,117,6, + 0,0,0,108,111,97,100,101,114,117,8,0,0,0,112,111, + 114,116,105,111,110,115,40,0,0,0,0,40,0,0,0,0, + 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112, + 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, + 112,62,117,11,0,0,0,95,103,101,116,95,108,111,97,100, + 101,114,3,5,0,0,115,28,0,0,0,0,5,6,1,13, + 1,21,1,6,1,15,1,12,1,15,1,24,2,15,1,6, 1,12,2,10,5,20,2,117,22,0,0,0,80,97,116,104, 70,105,110,100,101,114,46,95,103,101,116,95,108,111,97,100, 101,114,99,3,0,0,0,0,0,0,0,5,0,0,0,4, @@ -3275,7 +3279,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114, 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,117,11,0,0,0,102, - 105,110,100,95,109,111,100,117,108,101,28,5,0,0,115,16, + 105,110,100,95,109,111,100,117,108,101,30,5,0,0,115,16, 0,0,0,0,4,12,1,12,1,24,1,12,1,4,2,6, 3,19,2,117,22,0,0,0,80,97,116,104,70,105,110,100, 101,114,46,102,105,110,100,95,109,111,100,117,108,101,78,40, @@ -3296,7 +3300,7 @@ unsigned char _Py_M__importlib[] = { 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115, 116,114,97,112,62,117,10,0,0,0,80,97,116,104,70,105, 110,100,101,114,213,4,0,0,115,14,0,0,0,16,2,6, - 2,18,8,18,17,18,17,18,25,3,1,117,10,0,0,0, + 2,18,8,18,17,18,17,18,27,3,1,117,10,0,0,0, 80,97,116,104,70,105,110,100,101,114,99,1,0,0,0,0, 0,0,0,1,0,0,0,3,0,0,0,66,0,0,0,115, 110,0,0,0,124,0,0,69,101,0,0,90,1,0,100,0, @@ -3350,7 +3354,7 @@ unsigned char _Py_M__importlib[] = { 111,97,100,101,114,40,0,0,0,0,117,29,0,0,0,60, 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98, 46,95,98,111,111,116,115,116,114,97,112,62,117,9,0,0, - 0,60,103,101,110,101,120,112,114,62,61,5,0,0,115,2, + 0,60,103,101,110,101,120,112,114,62,63,5,0,0,115,2, 0,0,0,6,0,117,38,0,0,0,70,105,108,101,70,105, 110,100,101,114,46,95,95,105,110,105,116,95,95,46,60,108, 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62, @@ -3369,7 +3373,7 @@ unsigned char _Py_M__importlib[] = { 0,0,108,111,97,100,101,114,117,29,0,0,0,60,102,114, 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,95, - 95,105,110,105,116,95,95,55,5,0,0,115,16,0,0,0, + 95,105,110,105,116,95,95,57,5,0,0,115,16,0,0,0, 0,4,6,1,19,1,36,1,9,2,15,1,9,1,12,1, 117,19,0,0,0,70,105,108,101,70,105,110,100,101,114,46, 95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,0, @@ -3384,7 +3388,7 @@ unsigned char _Py_M__importlib[] = { 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112, 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, 112,62,117,17,0,0,0,105,110,118,97,108,105,100,97,116, - 101,95,99,97,99,104,101,115,69,5,0,0,115,2,0,0, + 101,95,99,97,99,104,101,115,71,5,0,0,115,2,0,0, 0,0,2,117,28,0,0,0,70,105,108,101,70,105,110,100, 101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,97, 99,104,101,115,99,2,0,0,0,0,0,0,0,12,0,0, @@ -3456,7 +3460,7 @@ unsigned char _Py_M__importlib[] = { 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111, 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98, 111,111,116,115,116,114,97,112,62,117,11,0,0,0,102,105, - 110,100,95,108,111,97,100,101,114,75,5,0,0,115,62,0, + 110,100,95,108,111,97,100,101,114,77,5,0,0,115,62,0, 0,0,0,3,6,1,19,1,3,1,25,1,13,1,11,1, 15,1,10,1,12,2,9,1,9,1,15,2,9,1,6,2, 12,1,18,1,12,1,22,1,10,1,15,1,12,1,26,4, @@ -3496,7 +3500,7 @@ unsigned char _Py_M__importlib[] = { 0,117,29,0,0,0,60,102,114,111,122,101,110,32,105,109, 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114, 97,112,62,117,9,0,0,0,60,103,101,110,101,120,112,114, - 62,145,5,0,0,115,2,0,0,0,6,0,117,41,0,0, + 62,147,5,0,0,115,2,0,0,0,6,0,117,41,0,0, 0,70,105,108,101,70,105,110,100,101,114,46,95,102,105,108, 108,95,99,97,99,104,101,46,60,108,111,99,97,108,115,62, 46,60,103,101,110,101,120,112,114,62,78,40,15,0,0,0, @@ -3523,7 +3527,7 @@ unsigned char _Py_M__importlib[] = { 109,101,40,0,0,0,0,40,0,0,0,0,117,29,0,0, 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108, 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,11, - 0,0,0,95,102,105,108,108,95,99,97,99,104,101,117,5, + 0,0,0,95,102,105,108,108,95,99,97,99,104,101,119,5, 0,0,115,34,0,0,0,0,2,9,1,3,1,19,1,13, 2,11,3,18,1,18,7,9,1,13,1,24,1,6,1,27, 2,6,1,17,1,9,1,18,1,117,22,0,0,0,70,105, @@ -3569,7 +3573,7 @@ unsigned char _Py_M__importlib[] = { 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,117,24,0,0,0,112, 97,116,104,95,104,111,111,107,95,102,111,114,95,70,105,108, - 101,70,105,110,100,101,114,157,5,0,0,115,6,0,0,0, + 101,70,105,110,100,101,114,159,5,0,0,115,6,0,0,0, 0,2,12,1,21,1,117,54,0,0,0,70,105,108,101,70, 105,110,100,101,114,46,112,97,116,104,95,104,111,111,107,46, 60,108,111,99,97,108,115,62,46,112,97,116,104,95,104,111, @@ -3583,7 +3587,7 @@ unsigned char _Py_M__importlib[] = { 95,100,101,116,97,105,108,115,117,29,0,0,0,60,102,114, 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,117,9,0,0,0,112, - 97,116,104,95,104,111,111,107,147,5,0,0,115,4,0,0, + 97,116,104,95,104,111,111,107,149,5,0,0,115,4,0,0, 0,0,10,21,6,117,20,0,0,0,70,105,108,101,70,105, 110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,1, 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67, @@ -3596,7 +3600,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110, 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, 115,116,114,97,112,62,117,8,0,0,0,95,95,114,101,112, - 114,95,95,165,5,0,0,115,2,0,0,0,0,1,117,19, + 114,95,95,167,5,0,0,115,2,0,0,0,0,1,117,19, 0,0,0,70,105,108,101,70,105,110,100,101,114,46,95,95, 114,101,112,114,95,95,78,40,13,0,0,0,117,8,0,0, 0,95,95,110,97,109,101,95,95,117,10,0,0,0,95,95, @@ -3616,7 +3620,7 @@ unsigned char _Py_M__importlib[] = { 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111, 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98, 111,111,116,115,116,114,97,112,62,117,10,0,0,0,70,105, - 108,101,70,105,110,100,101,114,46,5,0,0,115,16,0,0, + 108,101,70,105,110,100,101,114,48,5,0,0,115,16,0,0, 0,16,7,6,2,12,14,12,4,6,2,12,42,12,30,18, 18,117,10,0,0,0,70,105,108,101,70,105,110,100,101,114, 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, @@ -3639,7 +3643,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,117,29,0,0,0,60,102,114,111,122,101,110,32, 105,109,112,111,114,116,108,105,98,46,95,98,111,111,116,115, 116,114,97,112,62,117,9,0,0,0,95,95,101,110,116,101, - 114,95,95,175,5,0,0,115,2,0,0,0,0,2,117,28, + 114,95,95,177,5,0,0,115,2,0,0,0,0,2,117,28, 0,0,0,95,73,109,112,111,114,116,76,111,99,107,67,111, 110,116,101,120,116,46,95,95,101,110,116,101,114,95,95,99, 4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0, @@ -3658,7 +3662,7 @@ unsigned char _Py_M__importlib[] = { 0,0,117,29,0,0,0,60,102,114,111,122,101,110,32,105, 109,112,111,114,116,108,105,98,46,95,98,111,111,116,115,116, 114,97,112,62,117,8,0,0,0,95,95,101,120,105,116,95, - 95,179,5,0,0,115,2,0,0,0,0,2,117,27,0,0, + 95,181,5,0,0,115,2,0,0,0,0,2,117,27,0,0, 0,95,73,109,112,111,114,116,76,111,99,107,67,111,110,116, 101,120,116,46,95,95,101,120,105,116,95,95,78,40,6,0, 0,0,117,8,0,0,0,95,95,110,97,109,101,95,95,117, @@ -3671,7 +3675,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110, 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, 115,116,114,97,112,62,117,18,0,0,0,95,73,109,112,111, - 114,116,76,111,99,107,67,111,110,116,101,120,116,171,5,0, + 114,116,76,111,99,107,67,111,110,116,101,120,116,173,5,0, 0,115,6,0,0,0,16,2,6,2,12,4,117,18,0,0, 0,95,73,109,112,111,114,116,76,111,99,107,67,111,110,116, 101,120,116,99,3,0,0,0,0,0,0,0,5,0,0,0, @@ -3700,7 +3704,7 @@ unsigned char _Py_M__importlib[] = { 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111, 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98, 111,111,116,115,116,114,97,112,62,117,13,0,0,0,95,114, - 101,115,111,108,118,101,95,110,97,109,101,184,5,0,0,115, + 101,115,111,108,118,101,95,110,97,109,101,186,5,0,0,115, 10,0,0,0,0,2,22,1,18,1,15,1,10,1,117,13, 0,0,0,95,114,101,115,111,108,118,101,95,110,97,109,101, 99,2,0,0,0,0,0,0,0,4,0,0,0,11,0,0, @@ -3732,7 +3736,7 @@ unsigned char _Py_M__importlib[] = { 0,0,40,0,0,0,0,117,29,0,0,0,60,102,114,111, 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98, 111,111,116,115,116,114,97,112,62,117,12,0,0,0,95,102, - 105,110,100,95,109,111,100,117,108,101,193,5,0,0,115,20, + 105,110,100,95,109,111,100,117,108,101,195,5,0,0,115,20, 0,0,0,0,2,9,1,19,1,16,1,10,1,24,1,12, 2,15,1,4,2,21,2,117,12,0,0,0,95,102,105,110, 100,95,109,111,100,117,108,101,99,3,0,0,0,0,0,0, @@ -3777,7 +3781,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,60,102,114,111,122,101,110,32,105,109,112,111,114, 116,108,105,98,46,95,98,111,111,116,115,116,114,97,112,62, 117,13,0,0,0,95,115,97,110,105,116,121,95,99,104,101, - 99,107,210,5,0,0,115,24,0,0,0,0,2,15,1,30, + 99,107,212,5,0,0,115,24,0,0,0,0,2,15,1,30, 1,12,1,15,1,6,1,15,1,15,1,15,1,6,2,27, 1,19,1,117,13,0,0,0,95,115,97,110,105,116,121,95, 99,104,101,99,107,117,20,0,0,0,78,111,32,109,111,100, @@ -3854,7 +3858,7 @@ unsigned char _Py_M__importlib[] = { 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111, 111,116,115,116,114,97,112,62,117,23,0,0,0,95,102,105, 110,100,95,97,110,100,95,108,111,97,100,95,117,110,108,111, - 99,107,101,100,229,5,0,0,115,76,0,0,0,0,1,6, + 99,107,101,100,231,5,0,0,115,76,0,0,0,0,1,6, 1,19,1,6,1,15,1,16,2,15,1,11,2,13,1,3, 1,13,1,13,1,22,1,26,1,15,1,12,1,27,3,9, 1,9,1,15,2,13,1,19,2,13,1,6,2,13,1,32, @@ -3884,7 +3888,7 @@ unsigned char _Py_M__importlib[] = { 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112, 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, 112,62,117,14,0,0,0,95,102,105,110,100,95,97,110,100, - 95,108,111,97,100,23,6,0,0,115,14,0,0,0,0,2, + 95,108,111,97,100,25,6,0,0,115,14,0,0,0,0,2, 3,1,16,2,11,1,10,1,3,1,17,2,117,14,0,0, 0,95,102,105,110,100,95,97,110,100,95,108,111,97,100,99, 3,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0, @@ -3942,7 +3946,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,0,40,0,0,0,0,117,29,0,0,0,60,102, 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46, 95,98,111,111,116,115,116,114,97,112,62,117,11,0,0,0, - 95,103,99,100,95,105,109,112,111,114,116,36,6,0,0,115, + 95,103,99,100,95,105,109,112,111,114,116,38,6,0,0,115, 28,0,0,0,0,9,16,1,12,1,21,1,10,1,15,1, 13,1,13,1,12,1,10,1,6,1,9,1,21,1,10,1, 117,11,0,0,0,95,103,99,100,95,105,109,112,111,114,116, @@ -4001,7 +4005,7 @@ unsigned char _Py_M__importlib[] = { 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98, 46,95,98,111,111,116,115,116,114,97,112,62,117,16,0,0, 0,95,104,97,110,100,108,101,95,102,114,111,109,108,105,115, - 116,60,6,0,0,115,34,0,0,0,0,10,15,1,12,1, + 116,62,6,0,0,115,34,0,0,0,0,10,15,1,12,1, 12,1,13,1,15,1,22,1,13,1,15,1,21,1,3,1, 17,1,18,6,18,1,15,1,9,1,32,1,117,16,0,0, 0,95,104,97,110,100,108,101,95,102,114,111,109,108,105,115, @@ -4034,7 +4038,7 @@ unsigned char _Py_M__importlib[] = { 0,60,102,114,111,122,101,110,32,105,109,112,111,114,116,108, 105,98,46,95,98,111,111,116,115,116,114,97,112,62,117,17, 0,0,0,95,99,97,108,99,95,95,95,112,97,99,107,97, - 103,101,95,95,94,6,0,0,115,12,0,0,0,0,7,15, + 103,101,95,95,96,6,0,0,115,12,0,0,0,0,7,15, 1,12,1,10,1,12,1,25,1,117,17,0,0,0,95,99, 97,108,99,95,95,95,112,97,99,107,97,103,101,95,95,99, 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, @@ -4066,7 +4070,7 @@ unsigned char _Py_M__importlib[] = { 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, 115,116,114,97,112,62,117,27,0,0,0,95,103,101,116,95, 115,117,112,112,111,114,116,101,100,95,102,105,108,101,95,108, - 111,97,100,101,114,115,109,6,0,0,115,8,0,0,0,0, + 111,97,100,101,114,115,111,6,0,0,115,8,0,0,0,0, 5,18,1,12,1,12,1,117,27,0,0,0,95,103,101,116, 95,115,117,112,112,111,114,116,101,100,95,102,105,108,101,95, 108,111,97,100,101,114,115,99,5,0,0,0,0,0,0,0, @@ -4134,7 +4138,7 @@ unsigned char _Py_M__importlib[] = { 0,40,0,0,0,0,117,29,0,0,0,60,102,114,111,122, 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111, 111,116,115,116,114,97,112,62,117,10,0,0,0,95,95,105, - 109,112,111,114,116,95,95,120,6,0,0,115,26,0,0,0, + 109,112,111,114,116,95,95,122,6,0,0,115,26,0,0,0, 0,11,12,1,15,2,24,1,12,1,18,1,6,3,12,1, 23,1,6,1,4,4,35,3,40,2,117,10,0,0,0,95, 95,105,109,112,111,114,116,95,95,99,2,0,0,0,0,0, @@ -4212,7 +4216,7 @@ unsigned char _Py_M__importlib[] = { 117,29,0,0,0,60,102,114,111,122,101,110,32,105,109,112, 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, 112,62,117,9,0,0,0,60,103,101,110,101,120,112,114,62, - 188,6,0,0,115,2,0,0,0,6,0,117,25,0,0,0, + 190,6,0,0,115,2,0,0,0,6,0,117,25,0,0,0, 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46, 60,103,101,110,101,120,112,114,62,105,0,0,0,0,117,30, 0,0,0,105,109,112,111,114,116,108,105,98,32,114,101,113, @@ -4274,7 +4278,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,0,117,29,0,0,0,60,102,114,111,122,101,110, 32,105,109,112,111,114,116,108,105,98,46,95,98,111,111,116, 115,116,114,97,112,62,117,6,0,0,0,95,115,101,116,117, - 112,156,6,0,0,115,92,0,0,0,0,9,6,1,6,2, + 112,158,6,0,0,115,92,0,0,0,0,9,6,1,6,2, 12,1,9,2,6,2,19,1,15,1,16,2,13,1,13,1, 15,1,18,2,13,1,20,2,33,1,19,2,31,1,10,1, 15,1,13,1,4,2,3,1,15,1,5,1,13,1,12,2, @@ -4317,7 +4321,7 @@ unsigned char _Py_M__importlib[] = { 0,0,0,40,0,0,0,0,117,29,0,0,0,60,102,114, 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, 98,111,111,116,115,116,114,97,112,62,117,8,0,0,0,95, - 105,110,115,116,97,108,108,227,6,0,0,115,16,0,0,0, + 105,110,115,116,97,108,108,229,6,0,0,115,16,0,0,0, 0,2,13,1,9,1,28,1,16,1,16,1,15,1,19,1, 117,8,0,0,0,95,105,110,115,116,97,108,108,78,40,3, 0,0,0,117,3,0,0,0,119,105,110,117,6,0,0,0, @@ -4418,7 +4422,7 @@ unsigned char _Py_M__importlib[] = { 20,12,100,34,1,37,2,6,2,9,2,9,1,9,2,15, 27,12,23,12,21,12,8,12,13,12,11,12,55,12,18,12, 11,12,11,12,17,19,57,19,54,19,50,19,82,22,140,19, - 29,25,49,25,25,6,3,19,45,19,55,19,18,19,89,19, + 29,25,49,25,25,6,3,19,45,19,55,19,18,19,91,19, 125,19,13,12,9,12,17,12,17,6,2,12,50,12,13,18, 24,12,34,12,15,12,11,24,36,12,71, }; |