Spec-Zone.ru › Python 3.13

Стабильность C API

Если не указано иное, на C API Python распространяется политика обратной совместимости PEP 387. Большинство изменений совместимы на уровне исходного кода (обычно за счёт добавления нового API). Изменения существующего API или его удаление допускаются только после периода устаревания или для устранения серьёзных проблем.

Двоичный интерфейс приложений (ABI) CPython совместим вперёд и назад в пределах выпуска с одним и тем же младшим номером версии (если сборка выполнена одинаковым способом; см. раздел Особенности платформ ниже). Таким образом, код, скомпилированный для Python 3.10.0, будет работать в 3.10.8, и наоборот, но для 3.9.x и 3.11.x его потребуется скомпилировать отдельно.

Существуют два уровня C API с разными ожиданиями относительно стабильности:

  • Нестабильный API может изменяться в выпусках с разным младшим номером версии без периода устаревания. В именах он обозначается префиксом PyUnstable.
  • Ограниченный API совместим в нескольких выпусках с разным младшим номером версии. Если определён Py_LIMITED_API, из Python.h предоставляется только это подмножество.

Ниже эти уровни рассматриваются подробнее.

Имена с подчёркиванием в начале, например _Py_InternalState, относятся к закрытому API, который может измениться без предупреждения даже в исправляющих выпусках. Если вам необходимо использовать этот API, обратитесь к разработчикам CPython, чтобы обсудить добавление публичного API для вашего случая.

Нестабильный C API

Любой API, имя которого начинается с префикса PyUnstable, раскрывает подробности реализации CPython и может изменяться в каждом выпуске с разным младшим номером версии (например, с 3.9 на 3.10) без каких-либо предупреждений об устаревании. Однако он не будет меняться в исправляющем выпуске (например, с 3.10.0 на 3.10.1).

Как правило, он предназначен для специализированных низкоуровневых инструментов, таких как отладчики.

Предполагается, что проекты, использующие этот API, будут следить за разработкой CPython и прикладывать дополнительные усилия для адаптации к изменениям.

Стабильный двоичный интерфейс приложений

Для простоты в этом документе говорится о расширениях, но Ограниченный API и Стабильный ABI работают одинаково для всех способов использования API — например, при встраивании Python.

Ограниченный C API

В Python 3.2 был представлен Ограниченный API — подмножество C API Python. Расширения, использующие только Ограниченный API, можно скомпилировать один раз и загружать в нескольких версиях Python. Состав Ограниченного API перечислен ниже.

Py_LIMITED_API

Определите этот макрос перед подключением Python.h, чтобы использовать только Ограниченный API и выбрать его версию.

Задайте для Py_LIMITED_API значение PY_VERSION_HEX, соответствующее самой ранней версии Python, которую поддерживает ваше расширение. Расширение будет совместимо на уровне ABI со всеми выпусками Python 3, начиная с указанного, и сможет использовать Ограниченный API, представленный вплоть до этой версии.

Вместо непосредственного использования макроса PY_VERSION_HEX укажите минимальную версию с определённым младшим номером (например, 0x030A0000 для Python 3.10), чтобы обеспечить стабильность при компиляции с будущими версиями Python.

Также можно определить Py_LIMITED_API как 3. Это работает так же, как 0x03020000 (Python 3.2 — версия, в которой был представлен Ограниченный API).

Стабильный ABI

Для этого Python предоставляет Стабильный ABI: набор символов, которые будут сохранять совместимость ABI во всех версиях Python 3.x.

Примечание

Стабильный ABI предотвращает проблемы ABI, такие как ошибки компоновщика из-за отсутствующих символов или повреждение данных из-за изменений расположения структур или сигнатур функций. Однако другие изменения в Python могут повлиять на поведение расширений. Подробности см. в политике обратной совместимости Python (PEP 387).

Стабильный ABI содержит символы, предоставляемые в Ограниченном API, а также другие символы — например, функции, необходимые для поддержки более старых версий Ограниченного API.

В Windows расширения, использующие Стабильный ABI, следует компоновать с python3.dll, а не с библиотекой для конкретной версии, такой как python39.dll.

На некоторых платформах Python ищет и загружает файлы общих библиотек с тегом abi3 в имени (например, mymodule.abi3.so). Python не проверяет, соответствуют ли такие расширения Стабильному ABI. Пользователь (или его инструменты упаковки) должен убедиться, что, например, расширения, собранные с Ограниченным API 3.10+, не устанавливаются для более старых версий Python.

Все функции Стабильного ABI присутствуют в общей библиотеке Python именно как функции, а не только как макросы. Благодаря этому их можно использовать из языков, в которых не применяется препроцессор C.

Область применения и производительность Ограниченного API

Цель Ограниченного API — предоставить всё, что возможно с полным C API, хотя, возможно, и с потерей производительности.

Например, PyList_GetItem() доступна, а её «небезопасный» вариант в виде макроса PyList_GET_ITEM() — нет. Макрос может работать быстрее, поскольку использует специфичные для версии детали реализации объекта списка.

Если Py_LIMITED_API не определён, некоторые функции C API встраиваются в код или заменяются макросами. Определение Py_LIMITED_API отключает такое встраивание, обеспечивая стабильность по мере улучшения структур данных Python, но может снизить производительность.

Если не определять Py_LIMITED_API, можно скомпилировать расширение для Ограниченного API с ABI, специфичным для конкретной версии. Это может повысить производительность для этой версии Python, но ограничит совместимость. В таком случае компиляция с Py_LIMITED_API позволит получить расширение, которое можно распространять там, где расширение для конкретной версии недоступно, — например, для предварительных выпусков будущей версии Python.

Ограничения Ограниченного API

Обратите внимание, что компиляция с Py_LIMITED_API не гарантирует полностью, что код соответствует Ограниченному API или Стабильному ABI. Py_LIMITED_API охватывает только определения, но API включает и другие аспекты, например ожидаемую семантику.

Одна из проблем, от которых Py_LIMITED_API не защищает, — вызов функции с аргументами, недопустимыми в более старой версии Python. Например, рассмотрим функцию, которая начинает принимать NULL в качестве аргумента. В Python 3.9 NULL теперь выбирает поведение по умолчанию, но в Python 3.8 аргумент будет использоваться напрямую, что приведёт к разыменованию NULL и аварийному завершению. Аналогичная ситуация возможна с полями структур.

Ещё одна проблема заключается в том, что некоторые поля структур в настоящее время не скрываются при определённом Py_LIMITED_API, несмотря на то что они входят в Ограниченный API.

По этим причинам мы рекомендуем тестировать расширение во всех поддерживаемых им выпусках Python с разным младшим номером версии и, по возможности, собирать его с использованием самой ранней из этих версий.

Мы также рекомендуем изучить документацию по всему используемому API и проверить, входит ли он явно в Ограниченный API. Даже при определённом Py_LIMITED_API по техническим причинам (или даже непреднамеренно, из-за ошибок) могут предоставляться некоторые закрытые объявления.

Также обратите внимание, что Ограниченный API не обязательно стабилен: если скомпилировать с Py_LIMITED_API в Python 3.8, расширение будет работать в Python 3.12, но не обязательно будет компилироваться в Python 3.12. В частности, некоторые части Ограниченного API могут быть объявлены устаревшими и удалены при условии, что Стабильный ABI останется стабильным.

Особенности платформ

Стабильность ABI зависит не только от Python, но и от используемого компилятора, низкоуровневых библиотек и параметров компилятора. Для целей Стабильного ABI эти детали определяют «платформу». Обычно они зависят от типа ОС и архитектуры процессора.

Каждый дистрибьютор Python несёт ответственность за то, чтобы все версии Python для конкретной платформы собирались способом, не нарушающим Стабильный ABI. Так обстоит дело с выпусками для Windows и macOS от python.org, а также от многих сторонних дистрибьюторов.

Состав Ограниченного API

В настоящее время Ограниченный API включает следующие элементы:

  • PY_VECTORCALL_ARGUMENTS_OFFSET
  • PyAIter_Check()
  • PyArg_Parse()
  • PyArg_ParseTuple()
  • PyArg_ParseTupleAndKeywords()
  • PyArg_UnpackTuple()
  • PyArg_VaParse()
  • PyArg_VaParseTupleAndKeywords()
  • PyArg_ValidateKeywordArguments()
  • PyBaseObject_Type
  • PyBool_FromLong()
  • PyBool_Type
  • PyBuffer_FillContiguousStrides()
  • PyBuffer_FillInfo()
  • PyBuffer_FromContiguous()
  • PyBuffer_GetPointer()
  • PyBuffer_IsContiguous()
  • PyBuffer_Release()
  • PyBuffer_SizeFromFormat()
  • PyBuffer_ToContiguous()
  • PyByteArrayIter_Type
  • PyByteArray_AsString()
  • PyByteArray_Concat()
  • PyByteArray_FromObject()
  • PyByteArray_FromStringAndSize()
  • PyByteArray_Resize()
  • PyByteArray_Size()
  • PyByteArray_Type
  • PyBytesIter_Type
  • PyBytes_AsString()
  • PyBytes_AsStringAndSize()
  • PyBytes_Concat()
  • PyBytes_ConcatAndDel()
  • PyBytes_DecodeEscape()
  • PyBytes_FromFormat()
  • PyBytes_FromFormatV()
  • PyBytes_FromObject()
  • PyBytes_FromString()
  • PyBytes_FromStringAndSize()
  • PyBytes_Repr()
  • PyBytes_Size()
  • PyBytes_Type
  • PyCFunction
  • PyCFunctionFast
  • PyCFunctionFastWithKeywords
  • PyCFunctionWithKeywords
  • PyCFunction_GetFlags()
  • PyCFunction_GetFunction()
  • PyCFunction_GetSelf()
  • PyCFunction_New()
  • PyCFunction_NewEx()
  • PyCFunction_Type
  • PyCMethod_New()
  • PyCallIter_New()
  • PyCallIter_Type
  • PyCallable_Check()
  • PyCapsule_Destructor
  • PyCapsule_GetContext()
  • PyCapsule_GetDestructor()
  • PyCapsule_GetName()
  • PyCapsule_GetPointer()
  • PyCapsule_Import()
  • PyCapsule_IsValid()
  • PyCapsule_New()
  • PyCapsule_SetContext()
  • PyCapsule_SetDestructor()
  • PyCapsule_SetName()
  • PyCapsule_SetPointer()
  • PyCapsule_Type
  • PyClassMethodDescr_Type
  • PyCodec_BackslashReplaceErrors()
  • PyCodec_Decode()
  • PyCodec_Decoder()
  • PyCodec_Encode()
  • PyCodec_Encoder()
  • PyCodec_IgnoreErrors()
  • PyCodec_IncrementalDecoder()
  • PyCodec_IncrementalEncoder()
  • PyCodec_KnownEncoding()
  • PyCodec_LookupError()
  • PyCodec_NameReplaceErrors()
  • PyCodec_Register()
  • PyCodec_RegisterError()
  • PyCodec_ReplaceErrors()
  • PyCodec_StreamReader()
  • PyCodec_StreamWriter()
  • PyCodec_StrictErrors()
  • PyCodec_Unregister()
  • PyCodec_XMLCharRefReplaceErrors()
  • PyComplex_FromDoubles()
  • PyComplex_ImagAsDouble()
  • PyComplex_RealAsDouble()
  • PyComplex_Type
  • PyDescr_NewClassMethod()
  • PyDescr_NewGetSet()
  • PyDescr_NewMember()
  • PyDescr_NewMethod()
  • PyDictItems_Type
  • PyDictIterItem_Type
  • PyDictIterKey_Type
  • PyDictIterValue_Type
  • PyDictKeys_Type
  • PyDictProxy_New()
  • PyDictProxy_Type
  • PyDictRevIterItem_Type
  • PyDictRevIterKey_Type
  • PyDictRevIterValue_Type
  • PyDictValues_Type
  • PyDict_Clear()
  • PyDict_Contains()
  • PyDict_Copy()
  • PyDict_DelItem()
  • PyDict_DelItemString()
  • PyDict_GetItem()
  • PyDict_GetItemRef()
  • PyDict_GetItemString()
  • PyDict_GetItemStringRef()
  • PyDict_GetItemWithError()
  • PyDict_Items()
  • PyDict_Keys()
  • PyDict_Merge()
  • PyDict_MergeFromSeq2()
  • PyDict_New()
  • PyDict_Next()
  • PyDict_SetItem()
  • PyDict_SetItemString()
  • PyDict_Size()
  • PyDict_Type
  • PyDict_Update()
  • PyDict_Values()
  • PyEllipsis_Type
  • PyEnum_Type
  • PyErr_BadArgument()
  • PyErr_BadInternalCall()
  • PyErr_CheckSignals()
  • PyErr_Clear()
  • PyErr_Display()
  • PyErr_DisplayException()
  • PyErr_ExceptionMatches()
  • PyErr_Fetch()
  • PyErr_Format()
  • PyErr_FormatV()
  • PyErr_GetExcInfo()
  • PyErr_GetHandledException()
  • PyErr_GetRaisedException()
  • PyErr_GivenExceptionMatches()
  • PyErr_NewException()
  • PyErr_NewExceptionWithDoc()
  • PyErr_NoMemory()
  • PyErr_NormalizeException()
  • PyErr_Occurred()
  • PyErr_Print()
  • PyErr_PrintEx()
  • PyErr_ProgramText()
  • PyErr_ResourceWarning()
  • PyErr_Restore()
  • PyErr_SetExcFromWindowsErr()
  • PyErr_SetExcFromWindowsErrWithFilename()
  • PyErr_SetExcFromWindowsErrWithFilenameObject()
  • PyErr_SetExcFromWindowsErrWithFilenameObjects()
  • PyErr_SetExcInfo()
  • PyErr_SetFromErrno()
  • PyErr_SetFromErrnoWithFilename()
  • PyErr_SetFromErrnoWithFilenameObject()
  • PyErr_SetFromErrnoWithFilenameObjects()
  • PyErr_SetFromWindowsErr()
  • PyErr_SetFromWindowsErrWithFilename()
  • PyErr_SetHandledException()
  • PyErr_SetImportError()
  • PyErr_SetImportErrorSubclass()
  • PyErr_SetInterrupt()
  • PyErr_SetInterruptEx()
  • PyErr_SetNone()
  • PyErr_SetObject()
  • PyErr_SetRaisedException()
  • PyErr_SetString()
  • PyErr_SyntaxLocation()
  • PyErr_SyntaxLocationEx()
  • PyErr_WarnEx()
  • PyErr_WarnExplicit()
  • PyErr_WarnFormat()
  • PyErr_WriteUnraisable()
  • PyEval_AcquireThread()
  • PyEval_EvalCode()
  • PyEval_EvalCodeEx()
  • PyEval_EvalFrame()
  • PyEval_EvalFrameEx()
  • PyEval_GetBuiltins()
  • PyEval_GetFrame()
  • PyEval_GetFrameBuiltins()
  • PyEval_GetFrameGlobals()
  • PyEval_GetFrameLocals()
  • PyEval_GetFuncDesc()
  • PyEval_GetFuncName()
  • PyEval_GetGlobals()
  • PyEval_GetLocals()
  • PyEval_InitThreads()
  • PyEval_ReleaseThread()
  • PyEval_RestoreThread()
  • PyEval_SaveThread()
  • PyExc_ArithmeticError
  • PyExc_AssertionError
  • PyExc_AttributeError
  • PyExc_BaseException
  • PyExc_BaseExceptionGroup
  • PyExc_BlockingIOError
  • PyExc_BrokenPipeError
  • PyExc_BufferError
  • PyExc_BytesWarning
  • PyExc_ChildProcessError
  • PyExc_ConnectionAbortedError
  • PyExc_ConnectionError
  • PyExc_ConnectionRefusedError
  • PyExc_ConnectionResetError
  • PyExc_DeprecationWarning
  • PyExc_EOFError
  • PyExc_EncodingWarning
  • PyExc_EnvironmentError
  • PyExc_Exception
  • PyExc_FileExistsError
  • PyExc_FileNotFoundError
  • PyExc_FloatingPointError
  • PyExc_FutureWarning
  • PyExc_GeneratorExit
  • PyExc_IOError
  • PyExc_ImportError
  • PyExc_ImportWarning
  • PyExc_IndentationError
  • PyExc_IndexError
  • PyExc_InterruptedError
  • PyExc_IsADirectoryError
  • PyExc_KeyError
  • PyExc_KeyboardInterrupt
  • PyExc_LookupError
  • PyExc_MemoryError
  • PyExc_ModuleNotFoundError
  • PyExc_NameError
  • PyExc_NotADirectoryError
  • PyExc_NotImplementedError
  • PyExc_OSError
  • PyExc_OverflowError
  • PyExc_PendingDeprecationWarning
  • PyExc_PermissionError
  • PyExc_ProcessLookupError
  • PyExc_RecursionError
  • PyExc_ReferenceError
  • PyExc_ResourceWarning
  • PyExc_RuntimeError
  • PyExc_RuntimeWarning
  • PyExc_StopAsyncIteration
  • PyExc_StopIteration
  • PyExc_SyntaxError
  • PyExc_SyntaxWarning
  • PyExc_SystemError
  • PyExc_SystemExit
  • PyExc_TabError
  • PyExc_TimeoutError
  • PyExc_TypeError
  • PyExc_UnboundLocalError
  • PyExc_UnicodeDecodeError
  • PyExc_UnicodeEncodeError
  • PyExc_UnicodeError
  • PyExc_UnicodeTranslateError
  • PyExc_UnicodeWarning
  • PyExc_UserWarning
  • PyExc_ValueError
  • PyExc_Warning
  • PyExc_WindowsError
  • PyExc_ZeroDivisionError
  • PyExceptionClass_Name()
  • PyException_GetArgs()
  • PyException_GetCause()
  • PyException_GetContext()
  • PyException_GetTraceback()
  • PyException_SetArgs()
  • PyException_SetCause()
  • PyException_SetContext()
  • PyException_SetTraceback()
  • PyFile_FromFd()
  • PyFile_GetLine()
  • PyFile_WriteObject()
  • PyFile_WriteString()
  • PyFilter_Type
  • PyFloat_AsDouble()
  • PyFloat_FromDouble()
  • PyFloat_FromString()
  • PyFloat_GetInfo()
  • PyFloat_GetMax()
  • PyFloat_GetMin()
  • PyFloat_Type
  • PyFrameObject
  • PyFrame_GetCode()
  • PyFrame_GetLineNumber()
  • PyFrozenSet_New()
  • PyFrozenSet_Type
  • PyGC_Collect()
  • PyGC_Disable()
  • PyGC_Enable()
  • PyGC_IsEnabled()
  • PyGILState_Ensure()
  • PyGILState_GetThisThreadState()
  • PyGILState_Release()
  • PyGILState_STATE
  • PyGetSetDef
  • PyGetSetDescr_Type
  • PyImport_AddModule()
  • PyImport_AddModuleObject()
  • PyImport_AddModuleRef()
  • PyImport_AppendInittab()
  • PyImport_ExecCodeModule()
  • PyImport_ExecCodeModuleEx()
  • PyImport_ExecCodeModuleObject()
  • PyImport_ExecCodeModuleWithPathnames()
  • PyImport_GetImporter()
  • PyImport_GetMagicNumber()
  • PyImport_GetMagicTag()
  • PyImport_GetModule()
  • PyImport_GetModuleDict()
  • PyImport_Import()
  • PyImport_ImportFrozenModule()
  • PyImport_ImportFrozenModuleObject()
  • PyImport_ImportModule()
  • PyImport_ImportModuleLevel()
  • PyImport_ImportModuleLevelObject()
  • PyImport_ImportModuleNoBlock()
  • PyImport_ReloadModule()
  • PyIndex_Check()
  • PyInterpreterState
  • PyInterpreterState_Clear()
  • PyInterpreterState_Delete()
  • PyInterpreterState_Get()
  • PyInterpreterState_GetDict()
  • PyInterpreterState_GetID()
  • PyInterpreterState_New()
  • PyIter_Check()
  • PyIter_Next()
  • PyIter_Send()
  • PyListIter_Type
  • PyListRevIter_Type
  • PyList_Append()
  • PyList_AsTuple()
  • PyList_GetItem()
  • PyList_GetItemRef()
  • PyList_GetSlice()
  • PyList_Insert()
  • PyList_New()
  • PyList_Reverse()
  • PyList_SetItem()
  • PyList_SetSlice()
  • PyList_Size()
  • PyList_Sort()
  • PyList_Type
  • PyLongObject
  • PyLongRangeIter_Type
  • PyLong_AsDouble()
  • PyLong_AsInt()
  • PyLong_AsLong()
  • PyLong_AsLongAndOverflow()
  • PyLong_AsLongLong()
  • PyLong_AsLongLongAndOverflow()
  • PyLong_AsSize_t()
  • PyLong_AsSsize_t()
  • PyLong_AsUnsignedLong()
  • PyLong_AsUnsignedLongLong()
  • PyLong_AsUnsignedLongLongMask()
  • PyLong_AsUnsignedLongMask()
  • PyLong_AsVoidPtr()
  • PyLong_FromDouble()
  • PyLong_FromLong()
  • PyLong_FromLongLong()
  • PyLong_FromSize_t()
  • PyLong_FromSsize_t()
  • PyLong_FromString()
  • PyLong_FromUnsignedLong()
  • PyLong_FromUnsignedLongLong()
  • PyLong_FromVoidPtr()
  • PyLong_GetInfo()
  • PyLong_Type
  • PyMap_Type
  • PyMapping_Check()
  • PyMapping_GetItemString()
  • PyMapping_GetOptionalItem()
  • PyMapping_GetOptionalItemString()
  • PyMapping_HasKey()
  • PyMapping_HasKeyString()
  • PyMapping_HasKeyStringWithError()
  • PyMapping_HasKeyWithError()
  • PyMapping_Items()
  • PyMapping_Keys()
  • PyMapping_Length()
  • PyMapping_SetItemString()
  • PyMapping_Size()
  • PyMapping_Values()
  • PyMem_Calloc()
  • PyMem_Free()
  • PyMem_Malloc()
  • PyMem_RawCalloc()
  • PyMem_RawFree()
  • PyMem_RawMalloc()
  • PyMem_RawRealloc()
  • PyMem_Realloc()
  • PyMemberDef
  • PyMemberDescr_Type
  • PyMember_GetOne()
  • PyMember_SetOne()
  • PyMemoryView_FromBuffer()
  • PyMemoryView_FromMemory()
  • PyMemoryView_FromObject()
  • PyMemoryView_GetContiguous()
  • PyMemoryView_Type
  • PyMethodDef
  • PyMethodDescr_Type
  • PyModuleDef
  • PyModuleDef_Base
  • PyModuleDef_Init()
  • PyModuleDef_Type
  • PyModule_Add()
  • PyModule_AddFunctions()
  • PyModule_AddIntConstant()
  • PyModule_AddObject()
  • PyModule_AddObjectRef()
  • PyModule_AddStringConstant()
  • PyModule_AddType()
  • PyModule_Create2()
  • PyModule_ExecDef()
  • PyModule_FromDefAndSpec2()
  • PyModule_GetDef()
  • PyModule_GetDict()
  • PyModule_GetFilename()
  • PyModule_GetFilenameObject()
  • PyModule_GetName()
  • PyModule_GetNameObject()
  • PyModule_GetState()
  • PyModule_New()
  • PyModule_NewObject()
  • PyModule_SetDocString()
  • PyModule_Type
  • PyNumber_Absolute()
  • PyNumber_Add()
  • PyNumber_And()
  • PyNumber_AsSsize_t()
  • PyNumber_Check()
  • PyNumber_Divmod()
  • PyNumber_Float()
  • PyNumber_FloorDivide()
  • PyNumber_InPlaceAdd()
  • PyNumber_InPlaceAnd()
  • PyNumber_InPlaceFloorDivide()
  • PyNumber_InPlaceLshift()
  • PyNumber_InPlaceMatrixMultiply()
  • PyNumber_InPlaceMultiply()
  • PyNumber_InPlaceOr()
  • PyNumber_InPlacePower()
  • PyNumber_InPlaceRemainder()
  • PyNumber_InPlaceRshift()
  • PyNumber_InPlaceSubtract()
  • PyNumber_InPlaceTrueDivide()
  • PyNumber_InPlaceXor()
  • PyNumber_Index()
  • PyNumber_Invert()
  • PyNumber_Long()
  • PyNumber_Lshift()
  • PyNumber_MatrixMultiply()
  • PyNumber_Multiply()
  • PyNumber_Negative()
  • PyNumber_Or()
  • PyNumber_Positive()
  • PyNumber_Power()
  • PyNumber_Remainder()
  • PyNumber_Rshift()
  • PyNumber_Subtract()
  • PyNumber_ToBase()
  • PyNumber_TrueDivide()
  • PyNumber_Xor()
  • PyOS_AfterFork()
  • PyOS_AfterFork_Child()
  • PyOS_AfterFork_Parent()
  • PyOS_BeforeFork()
  • PyOS_CheckStack()
  • PyOS_FSPath()
  • PyOS_InputHook
  • PyOS_InterruptOccurred()
  • PyOS_double_to_string()
  • PyOS_getsig()
  • PyOS_mystricmp()
  • PyOS_mystrnicmp()
  • PyOS_setsig()
  • PyOS_sighandler_t
  • PyOS_snprintf()
  • PyOS_string_to_double()
  • PyOS_strtol()
  • PyOS_strtoul()
  • PyOS_vsnprintf()
  • PyObject
  • PyObject.ob_refcnt
  • PyObject.ob_type
  • PyObject_ASCII()
  • PyObject_AsFileDescriptor()
  • PyObject_Bytes()
  • PyObject_Call()
  • PyObject_CallFunction()
  • PyObject_CallFunctionObjArgs()
  • PyObject_CallMethod()
  • PyObject_CallMethodObjArgs()
  • PyObject_CallNoArgs()
  • PyObject_CallObject()
  • PyObject_Calloc()
  • PyObject_CheckBuffer()
  • PyObject_ClearWeakRefs()
  • PyObject_CopyData()
  • PyObject_DelAttr()
  • PyObject_DelAttrString()
  • PyObject_DelItem()
  • PyObject_DelItemString()
  • PyObject_Dir()
  • PyObject_Format()
  • PyObject_Free()
  • PyObject_GC_Del()
  • PyObject_GC_IsFinalized()
  • PyObject_GC_IsTracked()
  • PyObject_GC_Track()
  • PyObject_GC_UnTrack()
  • PyObject_GenericGetAttr()
  • PyObject_GenericGetDict()
  • PyObject_GenericSetAttr()
  • PyObject_GenericSetDict()
  • PyObject_GetAIter()
  • PyObject_GetAttr()
  • PyObject_GetAttrString()
  • PyObject_GetBuffer()
  • PyObject_GetItem()
  • PyObject_GetIter()
  • PyObject_GetOptionalAttr()
  • PyObject_GetOptionalAttrString()
  • PyObject_GetTypeData()
  • PyObject_HasAttr()
  • PyObject_HasAttrString()
  • PyObject_HasAttrStringWithError()
  • PyObject_HasAttrWithError()
  • PyObject_Hash()
  • PyObject_HashNotImplemented()
  • PyObject_Init()
  • PyObject_InitVar()
  • PyObject_IsInstance()
  • PyObject_IsSubclass()
  • PyObject_IsTrue()
  • PyObject_Length()
  • PyObject_Malloc()
  • PyObject_Not()
  • PyObject_Realloc()
  • PyObject_Repr()
  • PyObject_RichCompare()
  • PyObject_RichCompareBool()
  • PyObject_SelfIter()
  • PyObject_SetAttr()
  • PyObject_SetAttrString()
  • PyObject_SetItem()
  • PyObject_Size()
  • PyObject_Str()
  • PyObject_Type()
  • PyObject_Vectorcall()
  • PyObject_VectorcallMethod()
  • PyProperty_Type
  • PyRangeIter_Type
  • PyRange_Type
  • PyReversed_Type
  • PySeqIter_New()
  • PySeqIter_Type
  • PySequence_Check()
  • PySequence_Concat()
  • PySequence_Contains()
  • PySequence_Count()
  • PySequence_DelItem()
  • PySequence_DelSlice()
  • PySequence_Fast()
  • PySequence_GetItem()
  • PySequence_GetSlice()
  • PySequence_In()
  • PySequence_InPlaceConcat()
  • PySequence_InPlaceRepeat()
  • PySequence_Index()
  • PySequence_Length()
  • PySequence_List()
  • PySequence_Repeat()
  • PySequence_SetItem()
  • PySequence_SetSlice()
  • PySequence_Size()
  • PySequence_Tuple()
  • PySetIter_Type
  • PySet_Add()
  • PySet_Clear()
  • PySet_Contains()
  • PySet_Discard()
  • PySet_New()
  • PySet_Pop()
  • PySet_Size()
  • PySet_Type
  • PySlice_AdjustIndices()
  • PySlice_GetIndices()
  • PySlice_GetIndicesEx()
  • PySlice_New()
  • PySlice_Type
  • PySlice_Unpack()
  • PyState_AddModule()
  • PyState_FindModule()
  • PyState_RemoveModule()
  • PyStructSequence_Desc
  • PyStructSequence_Field
  • PyStructSequence_GetItem()
  • PyStructSequence_New()
  • PyStructSequence_NewType()
  • PyStructSequence_SetItem()
  • PyStructSequence_UnnamedField
  • PySuper_Type
  • PySys_Audit()
  • PySys_AuditTuple()
  • PySys_FormatStderr()
  • PySys_FormatStdout()
  • PySys_GetObject()
  • PySys_GetXOptions()
  • PySys_ResetWarnOptions()
  • PySys_SetArgv()
  • PySys_SetArgvEx()
  • PySys_SetObject()
  • PySys_WriteStderr()
  • PySys_WriteStdout()
  • PyThreadState
  • PyThreadState_Clear()
  • PyThreadState_Delete()
  • PyThreadState_Get()
  • PyThreadState_GetDict()
  • PyThreadState_GetFrame()
  • PyThreadState_GetID()
  • PyThreadState_GetInterpreter()
  • PyThreadState_New()
  • PyThreadState_SetAsyncExc()
  • PyThreadState_Swap()
  • PyThread_GetInfo()
  • PyThread_ReInitTLS()
  • PyThread_acquire_lock()
  • PyThread_acquire_lock_timed()
  • PyThread_allocate_lock()
  • PyThread_create_key()
  • PyThread_delete_key()
  • PyThread_delete_key_value()
  • PyThread_exit_thread()
  • PyThread_free_lock()
  • PyThread_get_key_value()
  • PyThread_get_stacksize()
  • PyThread_get_thread_ident()
  • PyThread_get_thread_native_id()
  • PyThread_init_thread()
  • PyThread_release_lock()
  • PyThread_set_key_value()
  • PyThread_set_stacksize()
  • PyThread_start_new_thread()
  • PyThread_tss_alloc()
  • PyThread_tss_create()
  • PyThread_tss_delete()
  • PyThread_tss_free()
  • PyThread_tss_get()
  • PyThread_tss_is_created()
  • PyThread_tss_set()
  • PyTraceBack_Here()
  • PyTraceBack_Print()
  • PyTraceBack_Type
  • PyTupleIter_Type
  • PyTuple_GetItem()
  • PyTuple_GetSlice()
  • PyTuple_New()
  • PyTuple_Pack()
  • PyTuple_SetItem()
  • PyTuple_Size()
  • PyTuple_Type
  • PyTypeObject
  • PyType_ClearCache()
  • PyType_FromMetaclass()
  • PyType_FromModuleAndSpec()
  • PyType_FromSpec()
  • PyType_FromSpecWithBases()
  • PyType_GenericAlloc()
  • PyType_GenericNew()
  • PyType_GetFlags()
  • PyType_GetFullyQualifiedName()
  • PyType_GetModule()
  • PyType_GetModuleByDef()
  • PyType_GetModuleName()
  • PyType_GetModuleState()
  • PyType_GetName()
  • PyType_GetQualName()
  • PyType_GetSlot()
  • PyType_GetTypeDataSize()
  • PyType_IsSubtype()
  • PyType_Modified()
  • PyType_Ready()
  • PyType_Slot
  • PyType_Spec
  • PyType_Type
  • PyUnicodeDecodeError_Create()
  • PyUnicodeDecodeError_GetEncoding()
  • PyUnicodeDecodeError_GetEnd()
  • PyUnicodeDecodeError_GetObject()
  • PyUnicodeDecodeError_GetReason()
  • PyUnicodeDecodeError_GetStart()
  • PyUnicodeDecodeError_SetEnd()
  • PyUnicodeDecodeError_SetReason()
  • PyUnicodeDecodeError_SetStart()
  • PyUnicodeEncodeError_GetEncoding()
  • PyUnicodeEncodeError_GetEnd()
  • PyUnicodeEncodeError_GetObject()
  • PyUnicodeEncodeError_GetReason()
  • PyUnicodeEncodeError_GetStart()
  • PyUnicodeEncodeError_SetEnd()
  • PyUnicodeEncodeError_SetReason()
  • PyUnicodeEncodeError_SetStart()
  • PyUnicodeIter_Type
  • PyUnicodeTranslateError_GetEnd()
  • PyUnicodeTranslateError_GetObject()
  • PyUnicodeTranslateError_GetReason()
  • PyUnicodeTranslateError_GetStart()
  • PyUnicodeTranslateError_SetEnd()
  • PyUnicodeTranslateError_SetReason()
  • PyUnicodeTranslateError_SetStart()
  • PyUnicode_Append()
  • PyUnicode_AppendAndDel()
  • PyUnicode_AsASCIIString()
  • PyUnicode_AsCharmapString()
  • PyUnicode_AsDecodedObject()
  • PyUnicode_AsDecodedUnicode()
  • PyUnicode_AsEncodedObject()
  • PyUnicode_AsEncodedString()
  • PyUnicode_AsEncodedUnicode()
  • PyUnicode_AsLatin1String()
  • PyUnicode_AsMBCSString()
  • PyUnicode_AsRawUnicodeEscapeString()
  • PyUnicode_AsUCS4()
  • PyUnicode_AsUCS4Copy()
  • PyUnicode_AsUTF16String()
  • PyUnicode_AsUTF32String()
  • PyUnicode_AsUTF8AndSize()
  • PyUnicode_AsUTF8String()
  • PyUnicode_AsUnicodeEscapeString()
  • PyUnicode_AsWideChar()
  • PyUnicode_AsWideCharString()
  • PyUnicode_BuildEncodingMap()
  • PyUnicode_Compare()
  • PyUnicode_CompareWithASCIIString()
  • PyUnicode_Concat()
  • PyUnicode_Contains()
  • PyUnicode_Count()
  • PyUnicode_Decode()
  • PyUnicode_DecodeASCII()
  • PyUnicode_DecodeCharmap()
  • PyUnicode_DecodeCodePageStateful()
  • PyUnicode_DecodeFSDefault()
  • PyUnicode_DecodeFSDefaultAndSize()
  • PyUnicode_DecodeLatin1()
  • PyUnicode_DecodeLocale()
  • PyUnicode_DecodeLocaleAndSize()
  • PyUnicode_DecodeMBCS()
  • PyUnicode_DecodeMBCSStateful()
  • PyUnicode_DecodeRawUnicodeEscape()
  • PyUnicode_DecodeUTF16()
  • PyUnicode_DecodeUTF16Stateful()
  • PyUnicode_DecodeUTF32()
  • PyUnicode_DecodeUTF32Stateful()
  • PyUnicode_DecodeUTF7()
  • PyUnicode_DecodeUTF7Stateful()
  • PyUnicode_DecodeUTF8()
  • PyUnicode_DecodeUTF8Stateful()
  • PyUnicode_DecodeUnicodeEscape()
  • PyUnicode_EncodeCodePage()
  • PyUnicode_EncodeFSDefault()
  • PyUnicode_EncodeLocale()
  • PyUnicode_EqualToUTF8()
  • PyUnicode_EqualToUTF8AndSize()
  • PyUnicode_FSConverter()
  • PyUnicode_FSDecoder()
  • PyUnicode_Find()
  • PyUnicode_FindChar()
  • PyUnicode_Format()
  • PyUnicode_FromEncodedObject()
  • PyUnicode_FromFormat()
  • PyUnicode_FromFormatV()
  • PyUnicode_FromObject()
  • PyUnicode_FromOrdinal()
  • PyUnicode_FromString()
  • PyUnicode_FromStringAndSize()
  • PyUnicode_FromWideChar()
  • PyUnicode_GetDefaultEncoding()
  • PyUnicode_GetLength()
  • PyUnicode_InternFromString()
  • PyUnicode_InternInPlace()
  • PyUnicode_IsIdentifier()
  • PyUnicode_Join()
  • PyUnicode_Partition()
  • PyUnicode_RPartition()
  • PyUnicode_RSplit()
  • PyUnicode_ReadChar()
  • PyUnicode_Replace()
  • PyUnicode_Resize()
  • PyUnicode_RichCompare()
  • PyUnicode_Split()
  • PyUnicode_Splitlines()
  • PyUnicode_Substring()
  • PyUnicode_Tailmatch()
  • PyUnicode_Translate()
  • PyUnicode_Type
  • PyUnicode_WriteChar()
  • PyVarObject
  • PyVarObject.ob_base
  • PyVarObject.ob_size
  • PyVectorcall_Call()
  • PyVectorcall_NARGS()
  • PyWeakReference
  • PyWeakref_GetObject()
  • PyWeakref_GetRef()
  • PyWeakref_NewProxy()
  • PyWeakref_NewRef()
  • PyWrapperDescr_Type
  • PyWrapper_New()
  • PyZip_Type
  • Py_AddPendingCall()
  • Py_AtExit()
  • Py_BEGIN_ALLOW_THREADS
  • Py_BLOCK_THREADS
  • Py_BuildValue()
  • Py_BytesMain()
  • Py_CompileString()
  • Py_DecRef()
  • Py_DecodeLocale()
  • Py_END_ALLOW_THREADS
  • Py_EncodeLocale()
  • Py_EndInterpreter()
  • Py_EnterRecursiveCall()
  • Py_Exit()
  • Py_FatalError()
  • Py_FileSystemDefaultEncodeErrors
  • Py_FileSystemDefaultEncoding
  • Py_Finalize()
  • Py_FinalizeEx()
  • Py_GenericAlias()
  • Py_GenericAliasType
  • Py_GetBuildInfo()
  • Py_GetCompiler()
  • Py_GetConstant()
  • Py_GetConstantBorrowed()
  • Py_GetCopyright()
  • Py_GetExecPrefix()
  • Py_GetPath()
  • Py_GetPlatform()
  • Py_GetPrefix()
  • Py_GetProgramFullPath()
  • Py_GetProgramName()
  • Py_GetPythonHome()
  • Py_GetRecursionLimit()
  • Py_GetVersion()
  • Py_HasFileSystemDefaultEncoding
  • Py_IncRef()
  • Py_Initialize()
  • Py_InitializeEx()
  • Py_Is()
  • Py_IsFalse()
  • Py_IsFinalizing()
  • Py_IsInitialized()
  • Py_IsNone()
  • Py_IsTrue()
  • Py_LeaveRecursiveCall()
  • Py_Main()
  • Py_MakePendingCalls()
  • Py_NewInterpreter()
  • Py_NewRef()
  • Py_ReprEnter()
  • Py_ReprLeave()
  • Py_SetProgramName()
  • Py_SetPythonHome()
  • Py_SetRecursionLimit()
  • Py_UCS4
  • Py_UNBLOCK_THREADS
  • Py_UTF8Mode
  • Py_VaBuildValue()
  • Py_Version
  • Py_XNewRef()
  • Py_buffer
  • Py_intptr_t
  • Py_ssize_t
  • Py_uintptr_t
  • allocfunc
  • binaryfunc
  • descrgetfunc
  • descrsetfunc
  • destructor
  • getattrfunc
  • getattrofunc
  • getbufferproc
  • getiterfunc
  • getter
  • hashfunc
  • initproc
  • inquiry
  • iternextfunc
  • lenfunc
  • newfunc
  • objobjargproc
  • objobjproc
  • releasebufferproc
  • reprfunc
  • richcmpfunc
  • setattrfunc
  • setattrofunc
  • setter
  • ssizeargfunc
  • ssizeobjargproc
  • ssizessizeargfunc
  • ssizessizeobjargproc
  • symtable
  • ternaryfunc
  • traverseproc
  • unaryfunc
  • vectorcallfunc
  • visitproc

© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/stable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API