Skip to content

Commit

Permalink
Docs: Normalize Argument Clinic How-To section capitalization (python…
Browse files Browse the repository at this point in the history
  • Loading branch information
erlend-aasland authored Jul 15, 2023
1 parent d46a42f commit 8c17729
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions Doc/howto/clinic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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``.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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
---------

Expand All @@ -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
-------------------

Expand Down Expand Up @@ -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
---------------------------------------

Expand Down Expand Up @@ -1032,7 +1036,6 @@ you're not permitted to use:
* Tuple/list/set/dict literals.



Using a return converter
------------------------

Expand Down Expand Up @@ -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
-------------------

Expand Down Expand Up @@ -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
---------------------------------

Expand All @@ -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
Expand All @@ -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:
Expand All @@ -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
----------------------------------------

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
-------------------------------------

Expand Down

0 comments on commit 8c17729

Please sign in to comment.