summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2021-03-23 15:25:39 (GMT)
committerGitHub <noreply@github.com>2021-03-23 15:25:39 (GMT)
commit76b5d714e4e2b9f3b63847325cba51d4c4dc36bc (patch)
tree13a53bd95a833b0897e2f3f87a4d7da09b6627ea
parent9feae41c4f04ca27fd2c865807a5caeb50bf4fc4 (diff)
downloadcpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.zip
cpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.tar.gz
cpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.tar.bz2
Clarify attribute docs on types.ModuleType (GH-24974)
-rw-r--r--Doc/library/types.rst32
1 files changed, 30 insertions, 2 deletions
diff --git a/Doc/library/types.rst b/Doc/library/types.rst
index 8e05f84..956b9e8 100644
--- a/Doc/library/types.rst
+++ b/Doc/library/types.rst
@@ -223,7 +223,7 @@ Standard names are defined for the following types:
.. class:: ModuleType(name, doc=None)
- The type of :term:`modules <module>`. Constructor takes the name of the
+ The type of :term:`modules <module>`. The constructor takes the name of the
module to be created and optionally its :term:`docstring`.
.. note::
@@ -238,12 +238,23 @@ Standard names are defined for the following types:
The :term:`loader` which loaded the module. Defaults to ``None``.
+ This attribute is to match :attr:`importlib.machinery.ModuleSpec.loader`
+ as stored in the attr:`__spec__` object.
+
+ .. note::
+ A future version of Python may stop setting this attribute by default.
+ To guard against this potential change, preferrably read from the
+ :attr:`__spec__` attribute instead or use
+ ``getattr(module, "__loader__", None)`` if you explicitly need to use
+ this attribute.
+
.. versionchanged:: 3.4
Defaults to ``None``. Previously the attribute was optional.
.. attribute:: __name__
- The name of the module.
+ The name of the module. Expected to match
+ :attr:`importlib.machinery.ModuleSpec.name`.
.. attribute:: __package__
@@ -252,9 +263,26 @@ Standard names are defined for the following types:
to ``''``, else it should be set to the name of the package (which can be
:attr:`__name__` if the module is a package itself). Defaults to ``None``.
+ This attribute is to match :attr:`importlib.machinery.ModuleSpec.parent`
+ as stored in the attr:`__spec__` object.
+
+ .. note::
+ A future version of Python may stop setting this attribute by default.
+ To guard against this potential change, preferrably read from the
+ :attr:`__spec__` attribute instead or use
+ ``getattr(module, "__package__", None)`` if you explicitly need to use
+ this attribute.
+
.. versionchanged:: 3.4
Defaults to ``None``. Previously the attribute was optional.
+ .. attribute:: __spec__
+
+ A record of the the module's import-system-related state. Expected to be
+ an instance of :class:`importlib.machinery.ModuleSpec`.
+
+ .. versionadded:: 3.4
+
.. data:: EllipsisType