Skip to content

Commit

Permalink
[3.11] gh-101100: Fix most Sphinx nitpicks in inspect.rst (GH-112662)…
Browse files Browse the repository at this point in the history
… (#112667)

gh-101100: Fix most Sphinx nitpicks in `inspect.rst` (GH-112662)
(cherry picked from commit 45650d1)

Co-authored-by: Alex Waygood <[email protected]>
  • Loading branch information
miss-islington and AlexWaygood authored Dec 3, 2023
1 parent 36ad8e6 commit 05ea7e5
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 9 deletions.
3 changes: 3 additions & 0 deletions Doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,9 @@
('envvar', 'USER'),
('envvar', 'USERNAME'),
('envvar', 'USERPROFILE'),
# Deprecated function that was never documented:
('py:func', 'getargspec'),
('py:func', 'inspect.getargspec'),
]

# Temporary undocumented names.
Expand Down
15 changes: 9 additions & 6 deletions Doc/library/inspect.rst
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ attributes (see :ref:`import-mod-attrs` for module attributes):

:func:`getmembers` will only return class attributes defined in the
metaclass when the argument is a class and those attributes have been
listed in the metaclass' custom :meth:`__dir__`.
listed in the metaclass' custom :meth:`~object.__dir__`.


.. function:: getmembers_static(object[, predicate])
Expand Down Expand Up @@ -466,12 +466,13 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
has a :meth:`~object.__get__` method but not a :meth:`~object.__set__`
method, but beyond that the set of attributes varies. A
:attr:`~definition.__name__` attribute is usually
sensible, and :attr:`__doc__` often is.
sensible, and :attr:`!__doc__` often is.

Methods implemented via descriptors that also pass one of the other tests
return ``False`` from the :func:`ismethoddescriptor` test, simply because the
other tests promise more -- you can, e.g., count on having the
:attr:`__func__` attribute (etc) when an object passes :func:`ismethod`.
:ref:`__func__ <instance-methods>` attribute (etc) when an object passes
:func:`ismethod`.


.. function:: isdatadescriptor(object)
Expand All @@ -482,7 +483,7 @@ attributes (see :ref:`import-mod-attrs` for module attributes):
Examples are properties (defined in Python), getsets, and members. The
latter two are defined in C and there are more specific tests available for
those types, which is robust across Python implementations. Typically, data
descriptors will also have :attr:`~definition.__name__` and :attr:`__doc__` attributes
descriptors will also have :attr:`~definition.__name__` and :attr:`!__doc__` attributes
(properties, getsets, and members have both of these attributes), but this is
not guaranteed.

Expand Down Expand Up @@ -1401,7 +1402,8 @@ Fetching attributes statically

Both :func:`getattr` and :func:`hasattr` can trigger code execution when
fetching or checking for the existence of attributes. Descriptors, like
properties, will be invoked and :meth:`__getattr__` and :meth:`__getattribute__`
properties, will be invoked and :meth:`~object.__getattr__` and
:meth:`~object.__getattribute__`
may be called.

For cases where you want passive introspection, like documentation tools, this
Expand All @@ -1411,7 +1413,8 @@ but avoids executing code when it fetches attributes.
.. function:: getattr_static(obj, attr, default=None)

Retrieve attributes without triggering dynamic lookup via the
descriptor protocol, :meth:`__getattr__` or :meth:`__getattribute__`.
descriptor protocol, :meth:`~object.__getattr__`
or :meth:`~object.__getattribute__`.

Note: this function may not be able to retrieve all attributes
that getattr can fetch (like dynamically created attributes)
Expand Down
2 changes: 2 additions & 0 deletions Doc/reference/datamodel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -627,6 +627,8 @@ code object; see the description of internal types below. The
module.


.. _instance-methods:

Instance methods
^^^^^^^^^^^^^^^^

Expand Down
5 changes: 3 additions & 2 deletions Doc/whatsnew/2.6.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1677,8 +1677,9 @@ Some smaller changes made to the core Python language are:
(:issue:`1591665`)

* Instance method objects have new attributes for the object and function
comprising the method; the new synonym for :attr:`im_self` is
:attr:`__self__`, and :attr:`im_func` is also available as :attr:`__func__`.
comprising the method; the new synonym for :attr:`!im_self` is
:ref:`__self__ <instance-methods>`, and :attr:`!im_func` is also available as
:ref:`__func__ <instance-methods>`.
The old names are still supported in Python 2.6, but are gone in 3.0.

* An obscure change: when you use the :func:`locals` function inside a
Expand Down
3 changes: 2 additions & 1 deletion Doc/whatsnew/2.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -860,7 +860,8 @@ Some smaller changes made to the core Python language are:
* When using ``@classmethod`` and ``@staticmethod`` to wrap
methods as class or static methods, the wrapper object now
exposes the wrapped function as their :attr:`__func__` attribute.
exposes the wrapped function as their :ref:`__func__ <instance-methods>`
attribute.
(Contributed by Amaury Forgeot d'Arc, after a suggestion by
George Sakkis; :issue:`5982`.)

Expand Down

0 comments on commit 05ea7e5

Please sign in to comment.