mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
If a module injects something into sys.modules as a side-effect of
importation, then respect that injection. Discovered thanks to Lib/xml/parsers/expat.py injecting xml.parsers.expat.errors and etree now importing that directly as a module.
This commit is contained in:
parent
368b4b7405
commit
927d87470a
2 changed files with 16 additions and 0 deletions
|
@ -927,6 +927,9 @@ def _find_and_load(name, import_):
|
|||
if parent:
|
||||
if parent not in sys.modules:
|
||||
import_(parent)
|
||||
# Crazy side-effects!
|
||||
if name in sys.modules:
|
||||
return sys.modules[name]
|
||||
# Backwards-compatibility; be nicer to skip the dict lookup.
|
||||
parent_module = sys.modules[parent]
|
||||
try:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue