From 56b4ca78d8cd30e6f2a1292fa9d7004ef157f68c Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sat, 17 Nov 2012 09:30:55 -0500 Subject: Issue #16489: Make it clearer that importlib.find_loader() requires the user to import any parent packages. --- Doc/library/importlib.rst | 9 ++++----- Lib/importlib/__init__.py | 4 +++- Misc/NEWS | 3 +++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index 681f1d9..083656e 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -94,11 +94,10 @@ Functions :exc:`ValueError` is raised). Otherwise a search using :attr:`sys.meta_path` is done. ``None`` is returned if no loader is found. - A dotted name does not have its parent's implicitly imported. If that is - desired (although not nessarily required to find the loader, it will most - likely be needed if the loader actually is used to load the module), then - you will have to import the packages containing the module prior to calling - this function. + A dotted name does not have its parent's implicitly imported as that requires + loading them and that may not be desired. To properly import a submodule you + will need to import all parent packages of the submodule and use the correct + argument to *path*. .. function:: invalidate_caches() diff --git a/Lib/importlib/__init__.py b/Lib/importlib/__init__.py index 6f40dac..22c90f2 100644 --- a/Lib/importlib/__init__.py +++ b/Lib/importlib/__init__.py @@ -55,7 +55,9 @@ def find_loader(name, path=None): value of 'path' given to the finders. None is returned if no loader could be found. - Dotted names do not have their parent packages implicitly imported. + Dotted names do not have their parent packages implicitly imported. You will + most likely need to explicitly import all parent packages in the proper + order for a submodule to get the correct loader. """ try: diff --git a/Misc/NEWS b/Misc/NEWS index 47bf94c..217eecd7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -271,6 +271,9 @@ Tools/Demos Documentation ------------- +- Issue #16489: Make it clearer that importlib.find_loader() requires any and + all packages to be separately imported. + - Issue #16400: Update the description of which versions of a given package PyPI displays. -- cgit v0.12