From 72823f5517c94ec924440c4df24b677fd125444c Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Thu, 29 Feb 2024 00:33:04 +0100 Subject: [PATCH] gh-115937: Remove implementation details from inspect.signature() docs Co-authored-by: Carol Willing Co-authored-by: Gregory P. Smith Co-authored-by: Jelle Zijlstra --- Doc/library/inspect.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 8a74cadb98a0db..e75871ede16789 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -665,9 +665,6 @@ function. Accepts a wide range of Python callables, from plain functions and classes to :func:`functools.partial` objects. - If the passed object has a ``__signature__`` attribute, this function - returns it without further computations. - For objects defined in modules using stringized annotations (``from __future__ import annotations``), :func:`signature` will attempt to automatically un-stringize the annotations using @@ -702,6 +699,12 @@ function. Python. For example, in CPython, some built-in functions defined in C provide no metadata about their arguments. + .. note:: + + We may use the :attr:`!__signature__` attribute to create the signature. + The exact semantics are an implementation detail and are subject to + unannounced changes. Consult the source code for current semantics. + .. class:: Signature(parameters=None, *, return_annotation=Signature.empty)