summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/importlib/_bootstrap.py4
-rw-r--r--Misc/NEWS3
-rw-r--r--Python/importlib.h50
3 files changed, 31 insertions, 26 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index c4ee41a..b47ffad 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1806,7 +1806,7 @@ class PathFinder:
If 'hooks' is false then use sys.path_hooks.
"""
- if not sys.path_hooks:
+ if sys.path_hooks is not None and not sys.path_hooks:
_warnings.warn('sys.path_hooks is empty', ImportWarning)
for hook in sys.path_hooks:
try:
@@ -2095,7 +2095,7 @@ def _find_spec_legacy(finder, name, path):
def _find_spec(name, path, target=None):
"""Find a module's loader."""
- if not sys.meta_path:
+ if sys.meta_path is not None and not sys.meta_path:
_warnings.warn('sys.meta_path is empty', ImportWarning)
# We check sys.modules here for the reload case. While a passed-in
# target will usually indicate a reload there is no guarantee, whereas
diff --git a/Misc/NEWS b/Misc/NEWS
index ef277be..9c65557 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ Release date: TBA
Core and Builtins
-----------------
+- Issue #21052: Do not raise ImportWarning when sys.path_hooks or sys.meta_path
+ are set to None.
+
- Issue #16518: Use 'bytes-like object required' in error messages that
previously used the far more cryptic "'x' does not support the buffer
protocol.
diff --git a/Python/importlib.h b/Python/importlib.h
index e2b5810..3ecc791 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -3210,12 +3210,13 @@ const unsigned char _Py_M__importlib[] = {
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,2,0,0,
0,0,0,0,0,3,0,0,0,12,0,0,0,67,0,0,
- 0,115,91,0,0,0,116,0,0,106,1,0,115,25,0,116,
- 2,0,106,3,0,100,1,0,116,4,0,131,2,0,1,120,
+ 0,115,107,0,0,0,116,0,0,106,1,0,100,1,0,107,
+ 9,0,114,41,0,116,0,0,106,1,0,12,114,41,0,116,
+ 2,0,106,3,0,100,2,0,116,4,0,131,2,0,1,120,
59,0,116,0,0,106,1,0,68,93,44,0,125,2,0,121,
- 14,0,124,2,0,124,1,0,131,1,0,83,87,113,35,0,
- 4,116,5,0,107,10,0,114,78,0,1,1,1,119,35,0,
- 89,113,35,0,88,113,35,0,87,100,2,0,83,100,2,0,
+ 14,0,124,2,0,124,1,0,131,1,0,83,87,113,51,0,
+ 4,116,5,0,107,10,0,114,94,0,1,1,1,119,51,0,
+ 89,113,51,0,88,113,51,0,87,100,1,0,83,100,1,0,
83,41,3,122,113,83,101,97,114,99,104,32,115,101,113,117,
101,110,99,101,32,111,102,32,104,111,111,107,115,32,102,111,
114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
@@ -3223,15 +3224,15 @@ const unsigned char _Py_M__importlib[] = {
73,102,32,39,104,111,111,107,115,39,32,105,115,32,102,97,
108,115,101,32,116,104,101,110,32,117,115,101,32,115,121,115,
46,112,97,116,104,95,104,111,111,107,115,46,10,10,32,32,
- 32,32,32,32,32,32,122,23,115,121,115,46,112,97,116,104,
- 95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,78,
+ 32,32,32,32,32,32,78,122,23,115,121,115,46,112,97,116,
+ 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
41,6,114,7,0,0,0,218,10,112,97,116,104,95,104,111,
111,107,115,114,166,0,0,0,114,167,0,0,0,114,168,0,
0,0,114,153,0,0,0,41,3,114,8,1,0,0,114,35,
0,0,0,90,4,104,111,111,107,114,4,0,0,0,114,4,
0,0,0,114,5,0,0,0,218,11,95,112,97,116,104,95,
104,111,111,107,115,10,7,0,0,115,16,0,0,0,0,7,
- 9,1,16,1,16,1,3,1,14,1,13,1,12,2,122,22,
+ 25,1,16,1,16,1,3,1,14,1,13,1,12,2,122,22,
80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,3,
0,0,0,11,0,0,0,67,0,0,0,115,94,0,0,0,
@@ -3732,28 +3733,29 @@ const unsigned char _Py_M__importlib[] = {
17,95,102,105,110,100,95,115,112,101,99,95,108,101,103,97,
99,121,39,8,0,0,115,8,0,0,0,0,3,18,1,12,
1,4,1,114,103,1,0,0,99,3,0,0,0,0,0,0,
- 0,9,0,0,0,26,0,0,0,67,0,0,0,115,25,1,
- 0,0,116,0,0,106,1,0,115,25,0,116,2,0,106,3,
- 0,100,1,0,116,4,0,131,2,0,1,124,0,0,116,0,
+ 0,9,0,0,0,26,0,0,0,67,0,0,0,115,41,1,
+ 0,0,116,0,0,106,1,0,100,1,0,107,9,0,114,41,
+ 0,116,0,0,106,1,0,12,114,41,0,116,2,0,106,3,
+ 0,100,2,0,116,4,0,131,2,0,1,124,0,0,116,0,
0,106,5,0,107,6,0,125,3,0,120,234,0,116,0,0,
106,1,0,68,93,219,0,125,4,0,116,6,0,131,0,0,
143,90,0,1,121,13,0,124,4,0,106,7,0,125,5,0,
- 87,110,51,0,4,116,8,0,107,10,0,114,132,0,1,1,
+ 87,110,51,0,4,116,8,0,107,10,0,114,148,0,1,1,
1,116,9,0,124,4,0,124,0,0,124,1,0,131,3,0,
- 125,6,0,124,6,0,100,2,0,107,8,0,114,128,0,119,
- 50,0,89,110,19,0,88,124,5,0,124,0,0,124,1,0,
- 124,2,0,131,3,0,125,6,0,87,100,2,0,81,88,124,
- 6,0,100,2,0,107,9,0,114,50,0,124,3,0,12,114,
- 9,1,124,0,0,116,0,0,106,5,0,107,6,0,114,9,
+ 125,6,0,124,6,0,100,1,0,107,8,0,114,144,0,119,
+ 66,0,89,110,19,0,88,124,5,0,124,0,0,124,1,0,
+ 124,2,0,131,3,0,125,6,0,87,100,1,0,81,88,124,
+ 6,0,100,1,0,107,9,0,114,66,0,124,3,0,12,114,
+ 25,1,124,0,0,116,0,0,106,5,0,107,6,0,114,25,
1,116,0,0,106,5,0,124,0,0,25,125,7,0,121,13,
0,124,7,0,106,10,0,125,8,0,87,110,22,0,4,116,
- 8,0,107,10,0,114,241,0,1,1,1,124,6,0,83,89,
- 113,13,1,88,124,8,0,100,2,0,107,8,0,114,2,1,
- 124,6,0,83,124,8,0,83,113,50,0,124,6,0,83,113,
- 50,0,87,100,2,0,83,100,2,0,83,41,3,122,23,70,
+ 8,0,107,10,0,114,1,1,1,1,1,124,6,0,83,89,
+ 113,29,1,88,124,8,0,100,1,0,107,8,0,114,18,1,
+ 124,6,0,83,124,8,0,83,113,66,0,124,6,0,83,113,
+ 66,0,87,100,1,0,83,100,1,0,83,41,3,122,23,70,
105,110,100,32,97,32,109,111,100,117,108,101,39,115,32,108,
- 111,97,100,101,114,46,122,22,115,121,115,46,109,101,116,97,
- 95,112,97,116,104,32,105,115,32,101,109,112,116,121,78,41,
+ 111,97,100,101,114,46,78,122,22,115,121,115,46,109,101,116,
+ 97,95,112,97,116,104,32,105,115,32,101,109,112,116,121,41,
11,114,7,0,0,0,218,9,109,101,116,97,95,112,97,116,
104,114,166,0,0,0,114,167,0,0,0,114,168,0,0,0,
114,73,0,0,0,114,99,1,0,0,114,10,1,0,0,114,
@@ -3763,7 +3765,7 @@ const unsigned char _Py_M__importlib[] = {
10,1,0,0,114,176,0,0,0,114,177,0,0,0,114,206,
0,0,0,114,4,0,0,0,114,4,0,0,0,114,5,0,
0,0,218,10,95,102,105,110,100,95,115,112,101,99,48,8,
- 0,0,115,48,0,0,0,0,2,9,1,16,4,15,1,16,
+ 0,0,115,48,0,0,0,0,2,25,1,16,4,15,1,16,
1,10,1,3,1,13,1,13,1,18,1,12,1,8,2,24,
1,12,2,22,1,13,1,3,1,13,1,13,4,9,2,12,
1,4,2,7,2,8,2,114,105,1,0,0,99,3,0,0,