From b19449751f7e8b83ab6b8669111c111b905a14b7 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Mon, 9 Jul 2012 14:10:23 -0400 Subject: Issue #15288: Clarify that pkgutil.walk_packages() and friends will no longer work as expected in Python 3.3 as importlib's loaders do not implement the non-standard iter_modules() method. Also link to the term "loader" in the requisite notes to help make it clearer what has happened. --- Doc/library/pkgutil.rst | 17 +++++++++++++---- Misc/NEWS | 5 +++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Doc/library/pkgutil.rst b/Doc/library/pkgutil.rst index 0aee4e7..f85bb0b 100644 --- a/Doc/library/pkgutil.rst +++ b/Doc/library/pkgutil.rst @@ -139,8 +139,13 @@ support. *prefix* is a string to output on the front of every module name on output. .. note:: - Only works for importers which define a ``iter_modules()`` method, which - is non-standard but implemented by classes defined in this module. + Only works wtih a :term:`loader` which defines a ``iter_modules()`` + method, which is non-standard but implemented by classes defined in this + module. + + .. versionchanged:: 3.3 + As of Python 3.3, the import system provides loaders by default, but they + do not include the ``iter_modules()`` method required by this function. .. function:: walk_packages(path=None, prefix='', onerror=None) @@ -171,8 +176,12 @@ support. walk_packages(ctypes.__path__, ctypes.__name__ + '.') .. note:: - Only works for importers which define a ``iter_modules()`` method, which - is non-standard but implemented by classes defined in this module. + Only works for a :term:`loader` which define a ``iter_modules()`` method, + which is non-standard but implemented by classes defined in this module. + + .. versionchanged:: 3.3 + As of Python 3.3, the import system provides loaders by default, but they + do not include the ``iter_modules()`` method required by this function. .. function:: get_data(package, resource) diff --git a/Misc/NEWS b/Misc/NEWS index 353b0cd..e3f2206 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -101,6 +101,11 @@ Tools/Demos Documentation ------------- +- Issue #15288: Link to the term "loader" in notes in pkgutil about how things + won't work as expected in Python 3.3 and mark the requisite functions as + "changed" since they will no longer work with modules directly imported by + import itself. + - Issue #13557: Clarify effect of giving two different namespaces to exec or execfile(). -- cgit v0.12