mirror of https://github.com/python/cpython
gh-86457: Add docs for Argument Clinic @text_signature directive (#107747)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
parent
0db043dd5a
commit
a9aeb99579
|
@ -1900,6 +1900,40 @@ blocks embedded in Python files look slightly different. They look like this:
|
||||||
#/*[python checksum:...]*/
|
#/*[python checksum:...]*/
|
||||||
|
|
||||||
|
|
||||||
|
.. _clinic-howto-override-signature:
|
||||||
|
|
||||||
|
How to override the generated signature
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
You can use the ``@text_signature`` directive to override the default generated
|
||||||
|
signature in the docstring.
|
||||||
|
This can be useful for complex signatures that Argument Clinic cannot handle.
|
||||||
|
The ``@text_signature`` directive takes one argument:
|
||||||
|
the custom signature as a string.
|
||||||
|
The provided signature is copied verbatim to the generated docstring.
|
||||||
|
|
||||||
|
Example from :source:`Objects/codeobject.c`::
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
@text_signature "($self, /, **changes)"
|
||||||
|
code.replace
|
||||||
|
*
|
||||||
|
co_argcount: int(c_default="self->co_argcount") = unchanged
|
||||||
|
co_posonlyargcount: int(c_default="self->co_posonlyargcount") = unchanged
|
||||||
|
# etc ...
|
||||||
|
|
||||||
|
Return a copy of the code object with new values for the specified fields.
|
||||||
|
[clinic start generated output]*/
|
||||||
|
|
||||||
|
The generated docstring ends up looking like this::
|
||||||
|
|
||||||
|
Doc_STRVAR(code_replace__doc__,
|
||||||
|
"replace($self, /, **changes)\n"
|
||||||
|
"--\n"
|
||||||
|
"\n"
|
||||||
|
"Return a copy of the code object with new values for the specified fields.");
|
||||||
|
|
||||||
|
|
||||||
.. _clinic-howto-deprecate-positional:
|
.. _clinic-howto-deprecate-positional:
|
||||||
|
|
||||||
How to deprecate passing parameters positionally
|
How to deprecate passing parameters positionally
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Argument Clinic now supports overriding automatically generated signature by
|
Argument Clinic now supports overriding automatically generated signature by
|
||||||
using directive `@text_signature`.
|
using directive `@text_signature`. See :ref:`clinic-howto-override-signature`.
|
||||||
|
|
Loading…
Reference in New Issue