summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/sys.rst4
-rw-r--r--Doc/reference/import.rst24
-rw-r--r--Lib/importlib/_bootstrap.py2
-rw-r--r--Lib/test/test_importlib/import_/test_path.py25
-rw-r--r--Misc/NEWS3
-rw-r--r--Python/importlib.h130
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
diff --git a/Misc/NEWS b/Misc/NEWS
index e3f5024..f27ce2e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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,
};