You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Track CPython Stable ABI C-API functions that are still missing from RustPython crates/capi, organized by CPython Include/ header layout (mirroring RustPython’s capi split, including abstract_/*).
Missing Stable ABI Functions by Header
Derived from CPython Misc/stable_abi.toml and compared against exported C-API functions in RustPython crates/capi/src.
This list includes only functions that are still candidates for implementation in RustPython C-API:
starts from all [function.*] entries in Misc/stable_abi.toml
removes private functions (names starting with _)
removes functions already implemented in RustPython crates/capi/src
removes functions marked removed in CPython "What's New" C-API notes across Python 3.0 through 3.15
marks remaining deprecated or soft-deprecated functions as (deprecated)
groups remaining functions by CPython Include/*.h header, using RustPython's existing crates/capi/src file split (including abstract_/*)
Latest update: 2026-06-30
Goal
Track CPython Stable ABI C-API functions that are still missing from RustPython
crates/capi, organized by CPythonInclude/header layout (mirroring RustPython’s capi split, includingabstract_/*).Missing Stable ABI Functions by Header
Derived from CPython
Misc/stable_abi.tomland compared against exported C-API functions in RustPythoncrates/capi/src.This list includes only functions that are still candidates for implementation in RustPython C-API:
[function.*]entries inMisc/stable_abi.toml_)crates/capi/src(deprecated)Include/*.hheader, using RustPython's existingcrates/capi/srcfile split (includingabstract_/*)Total missing: 436
Include/abstract.h -> crates/capi/src/abstract_.rs(10)PyObject_CallFunctionPyObject_CallFunctionObjArgsPyObject_CallMethodPyVectorcall_NARGSInclude/abstract.h -> crates/capi/src/abstract_/iter.rs(2)PyAIter_CheckPyObject_GetAIterInclude/abstract.h -> crates/capi/src/abstract_/number.rs(2)PyNumber_AsSsize_tPyNumber_ToBaseInclude/abstract.h -> crates/capi/src/abstract_/sequence.rs(1)PySequence_FastInclude/audit.h(2)PySys_AuditPySys_AuditTupleInclude/bytearrayobject.h(1)PyByteArray_ConcatInclude/bytesobject.h(9)PyBytes_AsStringAndSizePyBytes_ConcatPyBytes_ConcatAndDelPyBytes_DecodeEscapePyBytes_FromFormatPyBytes_FromFormatVPyBytes_FromObjectPyBytes_FromStringPyBytes_ReprInclude/ceval.h(17)PyEval_EvalCodeExPyEval_EvalFramePyEval_EvalFrameExPyEval_GetFramePyEval_GetFrameBuiltinsPyEval_GetFrameGlobalsPyEval_GetFrameLocalsPyEval_GetFuncDescPyEval_GetFuncNamePyEval_GetGlobals(deprecated)PyEval_GetLocals(deprecated)PyEval_ReleaseThreadPy_AddPendingCallPy_GetRecursionLimitPy_LeaveRecursiveCallPy_MakePendingCallsPy_SetRecursionLimitInclude/codecs.h(19)PyCodec_BackslashReplaceErrorsPyCodec_DecodePyCodec_DecoderPyCodec_EncodePyCodec_EncoderPyCodec_IgnoreErrorsPyCodec_IncrementalDecoderPyCodec_IncrementalEncoderPyCodec_KnownEncodingPyCodec_LookupErrorPyCodec_NameReplaceErrorsPyCodec_RegisterPyCodec_RegisterErrorPyCodec_ReplaceErrorsPyCodec_StreamReaderPyCodec_StreamWriterPyCodec_StrictErrorsPyCodec_UnregisterPyCodec_XMLCharRefReplaceErrorsInclude/cpython/initconfig.h(1)Py_GetArgcArgvInclude/cpython/marshal.h(2)PyMarshal_ReadObjectFromStringPyMarshal_WriteObjectToStringInclude/cpython/pystate.h(1)PyThreadState_DeleteCurrentInclude/descrobject.h(7)PyDescr_NewClassMethodPyDescr_NewGetSetPyDescr_NewMemberPyDescr_NewMethodPyMember_GetOne(deprecated)PyMember_SetOne(deprecated)PyWrapper_NewInclude/dictobject.h(7)PyDict_ClearPyDict_DelItemStringPyDict_GetItemPyDict_GetItemStringPyDict_GetItemStringRefPyDict_GetItemWithErrorPyDict_SetItemStringInclude/fileobject.h(5)PyFile_FromFdPyFile_GetLinePyFile_WriteObjectPyFile_WriteStringPyObject_AsFileDescriptorInclude/fileutils.h(2)Py_DecodeLocale(deprecated)Py_EncodeLocale(deprecated)Include/floatobject.h(0)Include/import.h(17)PyImport_AddModulePyImport_AddModuleObjectPyImport_AppendInittabPyImport_ExecCodeModulePyImport_ExecCodeModuleObjectPyImport_ExecCodeModuleWithPathnamesPyImport_GetImporterPyImport_GetMagicNumberPyImport_GetMagicTagPyImport_GetModule(deprecated)PyImport_GetModuleDictPyImport_ImportFrozenModulePyImport_ImportFrozenModuleObjectPyImport_ImportModule(deprecated)PyImport_ImportModuleLevelPyImport_ImportModuleLevelObjectPyImport_ReloadModuleInclude/intrcheck.h(5)PyOS_AfterFork(deprecated)PyOS_AfterFork_Child(deprecated)PyOS_AfterFork_Parent(deprecated)PyOS_BeforeFork(deprecated)PyOS_InterruptOccurredInclude/iterobject.h(2)PyCallIter_NewPySeqIter_NewInclude/listobject.h(1)PyList_GetItemInclude/longobject.h(16)PyLongWriter_CreatePyLongWriter_DiscardPyLongWriter_FinishPyLong_AsLongAndOverflowPyLong_AsLongLongAndOverflowPyLong_AsNativeBytesPyLong_ExportPyLong_FreeExportPyLong_FromNativeBytesPyLong_FromUnsignedNativeBytesPyLong_GetInfoPyLong_GetNativeLayoutPyOS_strtolPyOS_strtoulInclude/memoryobject.h(4)PyMemoryView_FromBufferPyMemoryView_FromMemoryPyMemoryView_FromObjectPyMemoryView_GetContiguousInclude/methodobject.h(3)PyCFunction_GetFlagsPyCFunction_GetFunctionPyCFunction_GetSelfInclude/modsupport.h(21)PyABIInfo_CheckPyArg_ParsePyArg_ParseTuple(deprecated)PyArg_ParseTupleAndKeywordsPyArg_UnpackTuplePyArg_VaParsePyArg_VaParseTupleAndKeywordsPyArg_ValidateKeywordArgumentsPyModule_Add(deprecated)PyModule_AddFunctionsPyModule_AddIntConstantPyModule_AddObject(deprecated)PyModule_AddObjectRef(deprecated)PyModule_AddStringConstantPyModule_AddTypePyModule_Create2PyModule_ExecDef(deprecated)PyModule_FromDefAndSpec2(deprecated)PyModule_SetDocStringPy_BuildValuePy_VaBuildValueInclude/moduleobject.h(11)PyModuleDef_InitPyModule_GetDefPyModule_GetDictPyModule_GetFilenamePyModule_GetNamePyModule_GetStatePyModule_GetStateSizePyModule_GetState_DuringGCPyModule_GetTokenPyModule_GetToken_DuringGCPyModule_NewInclude/object.h(25)PyType_ClearCachePyType_FromMetaclass(deprecated)PyType_FromModuleAndSpec(deprecated)PyType_FromSlotsPyType_FromSpec(deprecated)PyType_FromSpecWithBases(deprecated)PyType_GenericAllocPyType_GenericNewPyType_GetBaseByTokenPyType_GetBaseByToken_DuringGCPyType_GetModulePyType_GetModuleByDefPyType_GetModuleByTokenPyType_GetModuleByToken_DuringGCPyType_GetModuleStatePyType_GetModuleState_DuringGCPyType_GetModule_DuringGCPyType_GetTypeDataSizePyType_ModifiedPyType_ReadyPy_SET_SIZEPy_SIZEInclude/objimpl.h(14)PyGC_CollectPyGC_DisablePyGC_EnablePyGC_IsEnabledPyObject_CallocPyObject_FreePyObject_GC_DelPyObject_GC_IsFinalizedPyObject_GC_IsTrackedPyObject_GC_TrackPyObject_InitPyObject_InitVarPyObject_Malloc(deprecated)PyObject_ReallocInclude/pybuffer.h(11)PyBuffer_FillContiguousStridesPyBuffer_FillInfoPyBuffer_FromContiguousPyBuffer_GetPointerPyBuffer_IsContiguousPyBuffer_ReleasePyBuffer_SizeFromFormatPyBuffer_ToContiguousPyObject_CheckBufferPyObject_CopyDataPyObject_GetBufferInclude/pycapsule.h(3)PyCapsule_GetDestructorPyCapsule_SetDestructorPyCapsule_SetNameInclude/pyerrors.h(62)PyErr_BadArgumentPyErr_BadInternalCallPyErr_CheckSignalsPyErr_ClearPyErr_ExceptionMatchesPyErr_Fetch(deprecated)PyErr_FormatPyErr_FormatVPyErr_GetExcInfoPyErr_GetHandledExceptionPyErr_NoMemoryPyErr_NormalizeExceptionPyErr_ProgramTextPyErr_Restore(deprecated)PyErr_SetExcFromWindowsErrPyErr_SetExcFromWindowsErrWithFilenamePyErr_SetExcFromWindowsErrWithFilenameObjectPyErr_SetExcFromWindowsErrWithFilenameObjectsPyErr_SetExcInfoPyErr_SetFromErrnoPyErr_SetFromErrnoWithFilenamePyErr_SetFromErrnoWithFilenameObjectPyErr_SetFromErrnoWithFilenameObjectsPyErr_SetFromWindowsErrPyErr_SetFromWindowsErrWithFilenamePyErr_SetHandledExceptionPyErr_SetImportErrorPyErr_SetImportErrorSubclassPyErr_SetInterruptPyErr_SetInterruptExPyErr_SetNonePyErr_SyntaxLocationPyErr_SyntaxLocationExPyExceptionClass_NamePyException_GetArgsPyException_SetArgsPyOS_snprintfPyOS_vsnprintfPyUnicodeDecodeError_GetEncodingPyUnicodeDecodeError_GetEndPyUnicodeDecodeError_GetObjectPyUnicodeDecodeError_GetReasonPyUnicodeDecodeError_GetStartPyUnicodeDecodeError_SetEndPyUnicodeDecodeError_SetReasonPyUnicodeDecodeError_SetStartPyUnicodeEncodeError_GetEncodingPyUnicodeEncodeError_GetEndPyUnicodeEncodeError_GetObjectPyUnicodeEncodeError_GetReasonPyUnicodeEncodeError_GetStartPyUnicodeEncodeError_SetEndPyUnicodeEncodeError_SetReasonPyUnicodeEncodeError_SetStartPyUnicodeTranslateError_GetEndPyUnicodeTranslateError_GetObjectPyUnicodeTranslateError_GetReasonPyUnicodeTranslateError_GetStartPyUnicodeTranslateError_SetEndPyUnicodeTranslateError_SetReasonPyUnicodeTranslateError_SetStartPy_FatalErrorInclude/pyframe.h(2)PyFrame_GetCodePyFrame_GetLineNumberInclude/pylifecycle.h(14)PyOS_getsigPyOS_setsigPy_AtExitPy_BytesMainPy_EndInterpreterPy_ExitPy_GetBuildInfoPy_GetCompilerPy_GetCopyrightPy_GetPlatformPy_MainPy_NewInterpreterPy_SetProgramNamePy_SetPythonHomeInclude/pymacro.h(2)Py_PACK_FULL_VERSIONPy_PACK_VERSIONInclude/pystate.h(27)PyGILState_GetThisThreadStatePyInterpreterGuard_ClosePyInterpreterGuard_FromCurrentPyInterpreterGuard_FromViewPyInterpreterState_ClearPyInterpreterState_DeletePyInterpreterState_GetDictPyInterpreterState_NewPyInterpreterView_ClosePyInterpreterView_FromCurrentPyInterpreterView_FromMainPyState_AddModulePyState_FindModulePyState_RemoveModulePyThreadState_ClearPyThreadState_DeletePyThreadState_EnsurePyThreadState_EnsureFromViewPyThreadState_GetPyThreadState_GetDictPyThreadState_GetFramePyThreadState_GetIDPyThreadState_GetInterpreterPyThreadState_NewPyThreadState_ReleasePyThreadState_SetAsyncExc(deprecated)PyThreadState_SwapInclude/pystrcmp.h(2)PyOS_mystricmpPyOS_mystrnicmpInclude/pystrtod.h(2)PyOS_double_to_stringPyOS_string_to_doubleInclude/pythonrun.h(3)PyErr_Display(deprecated)PyErr_PrintPyOS_CheckStackInclude/pythread.h(8)PyThread_GetInfoPyThread_tss_allocPyThread_tss_createPyThread_tss_deletePyThread_tss_freePyThread_tss_getPyThread_tss_is_createdPyThread_tss_setInclude/refcount.h(3)Py_DecRefPy_IncRefPy_XNewRefInclude/sliceobject.h(2)PySlice_GetIndicesPySlice_GetIndicesEx(deprecated)Include/structseq.h(4)PyStructSequence_GetItemPyStructSequence_NewPyStructSequence_NewTypePyStructSequence_SetItemInclude/sysmodule.h(13)PySys_FormatStderrPySys_FormatStdoutPySys_GetAttrPySys_GetAttrStringPySys_GetObjectPySys_GetOptionalAttrPySys_GetOptionalAttrStringPySys_GetXOptionsPySys_SetArgvPySys_SetArgvExPySys_SetObjectPySys_WriteStderrPySys_WriteStdoutInclude/traceback.h(1)PyTraceBack_HereInclude/unicodeobject.h(72)PyUnicode_AppendPyUnicode_AppendAndDelPyUnicode_AsASCIIStringPyUnicode_AsCharmapStringPyUnicode_AsLatin1StringPyUnicode_AsMBCSStringPyUnicode_AsRawUnicodeEscapeStringPyUnicode_AsUCS4PyUnicode_AsUCS4CopyPyUnicode_AsUTF16StringPyUnicode_AsUTF32StringPyUnicode_AsUnicodeEscapeStringPyUnicode_AsWideCharPyUnicode_AsWideCharString(deprecated)PyUnicode_BuildEncodingMapPyUnicode_ComparePyUnicode_CompareWithASCIIStringPyUnicode_ConcatPyUnicode_ContainsPyUnicode_CountPyUnicode_DecodePyUnicode_DecodeASCIIPyUnicode_DecodeCharmapPyUnicode_DecodeCodePageStatefulPyUnicode_DecodeLatin1PyUnicode_DecodeLocalePyUnicode_DecodeLocaleAndSize(deprecated)PyUnicode_DecodeMBCSPyUnicode_DecodeMBCSStatefulPyUnicode_DecodeRawUnicodeEscapePyUnicode_DecodeUTF16PyUnicode_DecodeUTF16StatefulPyUnicode_DecodeUTF32PyUnicode_DecodeUTF32StatefulPyUnicode_DecodeUTF7PyUnicode_DecodeUTF7StatefulPyUnicode_DecodeUTF8PyUnicode_DecodeUTF8StatefulPyUnicode_DecodeUnicodeEscapePyUnicode_EncodeCodePagePyUnicode_EncodeLocale(deprecated)PyUnicode_EqualPyUnicode_EqualToUTF8PyUnicode_FSConverterPyUnicode_FSDecoderPyUnicode_FindPyUnicode_FindChar(deprecated)PyUnicode_FormatPyUnicode_FromFormatPyUnicode_FromFormatVPyUnicode_FromObjectPyUnicode_FromOrdinalPyUnicode_FromStringPyUnicode_FromWideCharPyUnicode_GetDefaultEncodingPyUnicode_GetLengthPyUnicode_InternFromStringPyUnicode_IsIdentifierPyUnicode_Join(deprecated)PyUnicode_PartitionPyUnicode_RPartitionPyUnicode_RSplitPyUnicode_ReadCharPyUnicode_ReplacePyUnicode_ResizePyUnicode_RichComparePyUnicode_SplitPyUnicode_SplitlinesPyUnicode_SubstringPyUnicode_TailmatchPyUnicode_TranslatePyUnicode_WriteCharInclude/warnings.h(2)PyErr_ResourceWarningPyErr_WarnFormat