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.
This commit is contained in:
Brett Cannon 2012-07-09 14:10:23 -04:00
parent 19a2f5961c
commit b19449751f
2 changed files with 18 additions and 4 deletions

View File

@ -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)

View File

@ -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().