[3.6] bpo-31799: Make module.__spec__ more discoverable (GH-4010) (#4021)

bpo-31799: Make module.__spec__ more discoverable
(cherry picked from commit 191e313820)
This commit is contained in:
Miss Islington (bot) 2017-10-17 12:59:21 -07:00 committed by Barry Warsaw
parent 06949585d2
commit 858ea4354f
2 changed files with 12 additions and 3 deletions

View file

@ -1045,7 +1045,15 @@ find and load modules.
.. class:: ModuleSpec(name, loader, *, origin=None, loader_state=None, is_package=None)
A specification for a module's import-system-related state.
A specification for a module's import-system-related state. This is
typically exposed as the module's ``__spec__`` attribute. In the
descriptions below, the names in parentheses give the corresponding
attribute available directly on the module object.
E.g. ``module.__spec__.origin == module.__file__``. Note however that
while the *values* are usually equivalent, they can differ since there is
no synchronization between the two objects. Thus it is possible to update
the module's ``__path__`` at runtime, and this will not be automatically
reflected in ``__spec__.submodule_search_locations``.
.. versionadded:: 3.4

View file

@ -519,8 +519,9 @@ and the loader that executes it. Most importantly, it allows the
import machinery to perform the boilerplate operations of loading,
whereas without a module spec the loader had that responsibility.
See :class:`~importlib.machinery.ModuleSpec` for more specifics on what
information a module's spec may hold.
The module's spec is exposed as the ``__spec__`` attribute on a module object.
See :class:`~importlib.machinery.ModuleSpec` for details on the contents of
the module spec.
.. versionadded:: 3.4