diff options
author | Brett Cannon <brett@python.org> | 2021-03-23 15:25:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 15:25:39 (GMT) |
commit | 76b5d714e4e2b9f3b63847325cba51d4c4dc36bc (patch) | |
tree | 13a53bd95a833b0897e2f3f87a4d7da09b6627ea | |
parent | 9feae41c4f04ca27fd2c865807a5caeb50bf4fc4 (diff) | |
download | cpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.zip cpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.tar.gz cpython-76b5d714e4e2b9f3b63847325cba51d4c4dc36bc.tar.bz2 |
Clarify attribute docs on types.ModuleType (GH-24974)
-rw-r--r-- | Doc/library/types.rst | 32 |
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 |