summaryrefslogtreecommitdiffstats
path: root/Lib/importlib
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-10-08 09:51:55 (GMT)
committerGitHub <noreply@github.com>2017-10-08 09:51:55 (GMT)
commit6f059ab80a351a7dd85cc57c5ca240f817a79c5d (patch)
treeca107824fb2992f89ea5764763d2a40fd161c89d /Lib/importlib
parentd13a4e50679c0861971cfae2bb226f35b8bf5142 (diff)
downloadcpython-6f059ab80a351a7dd85cc57c5ca240f817a79c5d.zip
cpython-6f059ab80a351a7dd85cc57c5ca240f817a79c5d.tar.gz
cpython-6f059ab80a351a7dd85cc57c5ca240f817a79c5d.tar.bz2
[3.6] bpo-31642: Restore blocking "from" import by setting None in sys.modules. (GH-3834). (#3923)
(cherry picked from commit f07e2b64df6304a36fb5e29397d3c77a7ba17704)
Diffstat (limited to 'Lib/importlib')
-rw-r--r--Lib/importlib/_bootstrap.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 4cf8aec..4fc5f02 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1019,7 +1019,8 @@ def _handle_fromlist(module, fromlist, import_):
# Backwards-compatibility dictates we ignore failed
# imports triggered by fromlist for modules that don't
# exist.
- if exc.name == from_name:
+ if (exc.name == from_name and
+ sys.modules.get(from_name, _NEEDS_LOADING) is not None):
continue
raise
return module