summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2017-10-17 19:52:38 (GMT)
committerGitHub <noreply@github.com>2017-10-17 19:52:38 (GMT)
commit191e3138200906e43cba9347177914325b54843f (patch)
tree56b77b61f9b986a892eac6ef425e646afb61ebde /Doc
parent6cfa927ceb931ad968b5b03e4a2bffb64a8a0604 (diff)
downloadcpython-191e3138200906e43cba9347177914325b54843f.zip
cpython-191e3138200906e43cba9347177914325b54843f.tar.gz
cpython-191e3138200906e43cba9347177914325b54843f.tar.bz2
bpo-31799: Make module.__spec__ more discoverable (#4010)
bpo-31799: Make module.__spec__ more discoverable
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/importlib.rst10
-rw-r--r--Doc/reference/import.rst5
2 files changed, 12 insertions, 3 deletions
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index 3a72648..3d350e8 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -1048,7 +1048,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
diff --git a/Doc/reference/import.rst b/Doc/reference/import.rst
index 8cf16ca..7fbf8ed 100644
--- a/Doc/reference/import.rst
+++ b/Doc/reference/import.rst
@@ -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