Development tools¶
Important
This is part of a Draft of the Python Contributor’s Guide. Text in square brackets are notes about content to fill in. Currently, the devguide and this new Contributor’s Guide co-exist in the repo. We are using Sphinx include directives to demonstrate the re-organization. The final Contributor’s Guide will replace the devguide with content in only one place. We welcome help with this!
The [Plan for the Contributor’s Guide] page has more details about the current state of this draft and how you can help. See more info about the Contributor Guide in the discussion forum: Refactoring the DevGuide.
[This is the existing Development tools page from the devguide.]
- Argument Clinic
- Background
- Reference
- Tutorial
- How-to guides
- How to rename C functions and variables generated by Argument Clinic
- How to convert functions using
PyArg_UnpackTuple
- How to use optional groups
- How to use real Argument Clinic converters, instead of “legacy converters”
- How to use the
Py_buffer
converter - How to use advanced converters
- How to assign default values to parameter
- How to use return converters
- How to clone existing functions
- How to call Python code
- How to use the “self converter”
- How to use the “defining class” converter
- How to write a custom converter
- How to write a custom return converter
- How to convert
METH_O
andMETH_NOARGS
functions - How to convert
tp_new
andtp_init
functions - How to change and redirect Clinic’s output
- How to use the
#ifdef
trick - How to use Argument Clinic in Python files
- How to use the Limited C API
- How to override the generated signature
- How to use critical sections with Argument Clinic
- How to declare
PyGetSetDef
(“getter/setter”) functions - How to deprecate passing parameters positionally or by keyword
- GDB support
- Dynamic analysis with Clang
- Tools for tracking compiler warnings