From: Géry Ogam Date: Wed, 1 May 2019 20:08:17 +0000 (+0200) Subject: Namespace packages _bootstrap.ModuleSpec.loader attributes are no longer None (#10376) X-Git-Tag: v3.8.0a4~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ee88af3f4f7493df4ecf52faf429e63351bbcd5c;p=thirdparty%2FPython%2Fcpython.git Namespace packages _bootstrap.ModuleSpec.loader attributes are no longer None (#10376) Namespace packages _bootstrap.ModuleSpec.loader attributes are no longer `None` _after_ calling the importlib._bootstrap._init_module_attrs function. See: * https://stackoverflow.com/questions/52869541/namespace-package-spec-loader-and-loader-attributes-not-set-to-none * https://bugs.python.org/issue35181 --- diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst index 88290c88bb35..0228bfb7e984 100644 --- a/Doc/reference/import.rst +++ b/Doc/reference/import.rst @@ -345,12 +345,11 @@ of what happens during the loading portion of import:: _init_module_attrs(spec, module) if spec.loader is None: - if spec.submodule_search_locations is not None: - # namespace package - sys.modules[spec.name] = module - else: - # unsupported - raise ImportError + # unsupported + raise ImportError + if spec.origin is None and spec.submodule_search_locations is not None: + # namespace package + sys.modules[spec.name] = module elif not hasattr(spec.loader, 'exec_module'): module = spec.loader.load_module(spec.name) # Set __loader__ and __package__ if missing.