summaryrefslogtreecommitdiffstats
path: root/Doc/howto
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend@python.org>2023-07-15 22:42:58 (GMT)
committerGitHub <noreply@github.com>2023-07-15 22:42:58 (GMT)
commit8c177294899b621fe04ae755abd41b4d319dd4b5 (patch)
treecc83a7802d8908b3f39154e4b379c2272d1a51ed /Doc/howto
parentd46a42fd8e8915e03cc211ab9163058b6365ab0f (diff)
downloadcpython-8c177294899b621fe04ae755abd41b4d319dd4b5.zip
cpython-8c177294899b621fe04ae755abd41b4d319dd4b5.tar.gz
cpython-8c177294899b621fe04ae755abd41b4d319dd4b5.tar.bz2
Docs: Normalize Argument Clinic How-To section capitalization (#106788)
Diffstat (limited to 'Doc/howto')
-rw-r--r--Doc/howto/clinic.rst29
1 files changed, 18 insertions, 11 deletions
diff --git a/Doc/howto/clinic.rst b/Doc/howto/clinic.rst
index 4620b46..0f99cb6 100644
--- a/Doc/howto/clinic.rst
+++ b/Doc/howto/clinic.rst
@@ -27,7 +27,8 @@ Argument Clinic How-To
version of Argument Clinic that ships with the next version
of CPython *could* be totally incompatible and break all your code.
-The Goals Of Argument Clinic
+
+The goals of Argument Clinic
============================
Argument Clinic's primary goal
@@ -78,7 +79,7 @@ and it should be able to do many interesting and smart
things with all the information you give it.
-Basic Concepts And Usage
+Basic concepts and usage
========================
Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/clinic.py``.
@@ -141,7 +142,7 @@ For the sake of clarity, here's the terminology we'll use with Argument Clinic:
a block.)
-Converting Your First Function
+Converting your first function
==============================
The best way to get a sense of how Argument Clinic works is to
@@ -558,7 +559,8 @@ Let's dive in!
Congratulations, you've ported your first function to work with Argument Clinic!
-Advanced Topics
+
+Advanced topics
===============
Now that you've had some experience working with Argument Clinic, it's time
@@ -636,7 +638,8 @@ after the last argument).
Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this
will change soon.
-Optional Groups
+
+Optional groups
---------------
Some legacy functions have a tricky approach to parsing their arguments:
@@ -899,6 +902,7 @@ available. For each converter it'll show you all the parameters
it accepts, along with the default value for each parameter.
Just run ``Tools/clinic/clinic.py --converters`` to see the full list.
+
Py_buffer
---------
@@ -908,7 +912,6 @@ you *must* not call :c:func:`PyBuffer_Release` on the provided buffer.
Argument Clinic generates code that does it for you (in the parsing function).
-
Advanced converters
-------------------
@@ -975,6 +978,7 @@ value called ``NULL`` for just this reason: from Python's perspective it
behaves like a default value of ``None``, but the C variable is initialized
with ``NULL``.
+
Expressions specified as default values
---------------------------------------
@@ -1032,7 +1036,6 @@ you're not permitted to use:
* Tuple/list/set/dict literals.
-
Using a return converter
------------------------
@@ -1146,6 +1149,7 @@ then modifying it. Cloning is an all-or nothing proposition.
Also, the function you are cloning from must have been previously defined
in the current file.
+
Calling Python code
-------------------
@@ -1380,6 +1384,7 @@ handle initialization and cleanup.
You can see more examples of custom converters in the CPython
source tree; grep the C files for the string ``CConverter``.
+
Writing a custom return converter
---------------------------------
@@ -1394,8 +1399,9 @@ write your own return converter, please read ``Tools/clinic/clinic.py``,
specifically the implementation of ``CReturnConverter`` and
all its subclasses.
+
METH_O and METH_NOARGS
-----------------------------------------------
+----------------------
To convert a function using ``METH_O``, make sure the function's
single argument is using the ``object`` converter, and mark the
@@ -1415,8 +1421,9 @@ any arguments.
You can still use a self converter, a return converter, and specify
a ``type`` argument to the object converter for ``METH_O``.
+
tp_new and tp_init functions
-----------------------------------------------
+----------------------------
You can convert ``tp_new`` and ``tp_init`` functions. Just name
them ``__new__`` or ``__init__`` as appropriate. Notes:
@@ -1437,6 +1444,7 @@ them ``__new__`` or ``__init__`` as appropriate. Notes:
(If your function doesn't support keywords, the parsing function
generated will throw an exception if it receives any.)
+
Changing and redirecting Clinic's output
----------------------------------------
@@ -1721,7 +1729,7 @@ the file was not modified by hand before it gets overwritten.
The #ifdef trick
-----------------------------------------------
+----------------
If you're converting a function that isn't available on all platforms,
there's a trick you can use to make life a little easier. The existing
@@ -1801,7 +1809,6 @@ Argument Clinic added to your file (it'll be at the very bottom), then
move it above the ``PyMethodDef`` structure where that macro is used.
-
Using Argument Clinic in Python files
-------------------------------------