Undocumented 3.13 C API
Open
Nobody has claimed this yet.
docs
topic-C-API
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
The following public C API is new in 3.13 (beta 1, relative to 3.12), and as of this writing it looks either
- undocumented, or
- documented incorrectly. See the docs search page for what Sphinx thinks the type and fully-quilfied name of the symbol are; it should be a C entry without extraneous namespaces. (The details tend to matter for search, URLs, and Intersphinx links.)
See also: 3.14
-
PY_MACCONFIG_HinInclude/pymacconfig.h(header guards don't need docs) -
PY_MONITORING_EVENT_BRANCHinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_CALLinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_C_RAISEinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_C_RETURNinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_EXCEPTION_HANDLEDinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_INSTRUCTIONinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_JUMPinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_LINEinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_RESUMEinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_RETURNinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_STARTinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_THROWinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_UNWINDinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_PY_YIELDinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_RAISEinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_RERAISEinInclude/cpython/monitoring.h -
PY_MONITORING_EVENT_STOP_ITERATIONinInclude/cpython/monitoring.h -
PY_MONITORING_IS_INSTRUMENTED_EVENTinInclude/cpython/monitoring.h -
PyCF_OPTIMIZED_ASTinInclude/cpython/compile.h -
PyEval_GetFrameBuiltinsinInclude/ceval.h:25 -
PyEval_GetFrameGlobalsinInclude/ceval.h:26 -
PyEval_GetFrameLocalsinInclude/ceval.h:27 -
PyExc_IncompleteInputErrorinInclude/pyerrors.h:111 -
PyExc_PythonFinalizationErrorinInclude/cpython/pyerrors.h:129 -
PyFrameLocalsProxy_CheckinInclude/cpython/pyframe.h -
PyFrameLocalsProxy_TypeinInclude/cpython/pyframe.h:6 -
PyMonitoring_EnterScopeinInclude/cpython/monitoring.h:44 -
PyMonitoring_ExitScopeinInclude/cpython/monitoring.h:48 -
PyRefTracerEventinInclude/cpython/object.h:516,Include/cpython/object.h:519 -
PyUnstable_AtExitinInclude/cpython/pylifecycle.h:91 -
PyUnstable_CopyPerfMapFileinInclude/cpython/sysmodule.h:20 -
PyUnstable_EXECUTABLE_KINDSinInclude/cpython/pyframe.h -
PyUnstable_EXECUTABLE_KIND_BUILTIN_FUNCTIONinInclude/cpython/pyframe.h -
PyUnstable_EXECUTABLE_KIND_METHOD_DESCRIPTORinInclude/cpython/pyframe.h -
PyUnstable_EXECUTABLE_KIND_PY_FUNCTIONinInclude/cpython/pyframe.h -
PyUnstable_EXECUTABLE_KIND_SKIPinInclude/cpython/pyframe.h -
PyUnstable_ExecutableKindsinInclude/cpython/pyframe.h:45 -
PyUnstable_GetExecutorinInclude/cpython/optimizer.h:137(now removed) -
PyUnstable_GetOptimizerinInclude/cpython/optimizer.h:135(now removed) -
PyUnstable_InterpreterState_GetMainModuleinInclude/cpython/pystate.h:11 -
PyUnstable_Optimizer_NewCounterinInclude/cpython/optimizer.h:145(now removed) -
PyUnstable_Optimizer_NewUOpOptimizerinInclude/cpython/optimizer.h:146(now removed) -
PyUnstable_PerfTrampoline_CompileCodeinInclude/cpython/sysmodule.h:21 -
PyUnstable_PerfTrampoline_SetPersistAfterForkinInclude/cpython/sysmodule.h:22 -
PyUnstable_Replace_ExecutorinInclude/cpython/optimizer.h:129(now removed) -
PyUnstable_SetOptimizerinInclude/cpython/optimizer.h:133(now removed) -
Py_ASNATIVEBYTES_BIG_ENDIANinInclude/cpython/longobject.h -
Py_ASNATIVEBYTES_DEFAULTSinInclude/cpython/longobject.h -
Py_ASNATIVEBYTES_LITTLE_ENDIANinInclude/cpython/longobject.h -
Py_ASNATIVEBYTES_NATIVE_ENDIANinInclude/cpython/longobject.h -
Py_ASNATIVEBYTES_REJECT_NEGATIVEinInclude/cpython/longobject.h -
Py_ASNATIVEBYTES_UNSIGNED_BUFFERinInclude/cpython/longobject.h -
Py_ATOMIC_HinInclude/pyatomic.h(header guards don't need docs) -
Py_CAN_START_THREADSinInclude/pyport.h:463 -
(removed in 3.14)Py_C_RECURSION_LIMITinInclude/cpython/pystate.h:215 -
Py_MOD_GIL_NOT_USEDinInclude/moduleobject.h:69 -
Py_MOD_GIL_USEDinInclude/moduleobject.h:69 -
Py_MONITORING_HinInclude/monitoring.h(header guards don't need docs) -
Py_OPTIMIZER_HinInclude/cpython/optimizer.h(header guards don't need docs) -
Py_TPFLAGS_INLINE_VALUESinInclude/object.h:632 -
(removed in gh-132280)Py_TRASHCAN_HEADROOMinInclude/cpython/object.h:463 -
CO_NO_MONITORING_EVENTSinInclude/cpython/code.h:192
Some more are generated by configure, I guess that's low priority:
-
HAVE_CLOCK_Tin./pyconfig.h:138 -
HAVE_CLOSEFROMin./pyconfig.h:138 -
HAVE_GETGRENTin./pyconfig.h:138 -
HAVE_GRANTPTin./pyconfig.h:515 -
HAVE_POSIX_OPENPTin./pyconfig.h:849 -
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NPin./pyconfig.h:849 -
HAVE_PROCESS_VM_READVin./pyconfig.h:849 -
HAVE_PTSNAMEin./pyconfig.h:957 -
HAVE_PTSNAME_Rin./pyconfig.h:957 -
HAVE_SOCKLEN_Tin./pyconfig.h:957 -
HAVE_SYS_TIMERFD_Hin./pyconfig.h:1406 -
HAVE_TIMERFD_CREATEin./pyconfig.h:1406 -
HAVE_UNLOCKPTin./pyconfig.h:1406 -
HAVE___UINT128_Tin./pyconfig.h:1582 -
WITH_MIMALLOCin./pyconfig.h:1867
Linked PRs
- gh-124134
- gh-124244
- gh-127720
- gh-127831
- gh-128026
- gh-128483
- gh-128677
- gh-129028
- gh-129086
- gh-129691
- gh-129723
- gh-131424
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the remaining unchecked symbols in Include/cpython/object.h, Include/cpython/code.h, and the generated pyconfig.h entries, using the docs search page to verify how each symbol is classified and named. Check the linked PRs before starting; done means the remaining public C API entries are documented correctly or their low-priority status is resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- api, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100