Crate pyo3_ffi

Source
Expand description

Raw FFI declarations for Python’s C API.

PyO3 can be used to write native Python modules or run Python code and modules from Rust.

This crate just provides low level bindings to the Python interpreter. It is meant for advanced users only - regular PyO3 users shouldn’t need to interact with this crate at all.

The contents of this crate are not documented here, as it would entail basically copying the documentation from CPython. Consult the Python/C API Reference Manual for up-to-date documentation.

§Safety

The functions in this crate lack individual safety documentation, but generally the following apply:

  • Pointer arguments have to point to a valid Python object of the correct type, although null pointers are sometimes valid input.
  • The vast majority can only be used safely while the GIL is held.
  • Some functions have additional safety requirements, consult the Python/C API Reference Manual for more information.

§Feature flags

PyO3 uses feature flags to enable you to opt-in to additional functionality. For a detailed description, see the Features chapter of the guide.

§Optional feature flags

The following features customize PyO3’s behavior:

  • abi3: Restricts PyO3’s API to a subset of the full Python API which is guaranteed by PEP 384 to be forward-compatible with future Python versions.
  • extension-module: This will tell the linker to keep the Python symbols unresolved, so that your module can also be used with statically linked Python interpreters. Use this feature when building an extension module.

§rustc environment flags

PyO3 uses rustc’s --cfg flags to enable or disable code used for different Python versions. If you want to do this for your own crate, you can do so with the pyo3-build-config crate.

  • Py_3_7, Py_3_8, Py_3_9, Py_3_10, Py_3_11, Py_3_12, Py_3_13: Marks code that is only enabled when compiling for a given minimum Python version.
  • Py_LIMITED_API: Marks code enabled when the abi3 feature flag is enabled.
  • Py_GIL_DISABLED: Marks code that runs only in the free-threaded build of CPython.
  • PyPy - Marks code enabled when compiling for PyPy.
  • GraalPy - Marks code enabled when compiling for GraalPy.

Additionally, you can query for the values Py_DEBUG, Py_REF_DEBUG, Py_TRACE_REFS, and COUNT_ALLOCS from py_sys_config to query for the corresponding C build-time defines. For example, to conditionally define debug code using Py_DEBUG, you could do:

#[cfg(py_sys_config = "Py_DEBUG")]
println!("only runs if python was compiled with Py_DEBUG")

To use these attributes, add pyo3-build-config as a build dependency in your Cargo.toml:

[build-dependencies]
pyo3-build-config ="0.23.5"

And then either create a new build.rs file in the project root or modify the existing build.rs file to call use_pyo3_cfgs():

fn main() {
    pyo3_build_config::use_pyo3_cfgs();
}

§Minimum supported Rust and Python versions

pyo3-ffi supports the following Python distributions:

  • CPython 3.7 or greater
  • PyPy 7.3 (Python 3.9+)
  • GraalPy 24.0 or greater (Python 3.10+)

§Example: Building Python Native modules

PyO3 can be used to generate a native Python module. The easiest way to try this out for the first time is to use maturin. maturin is a tool for building and publishing Rust-based Python packages with minimal configuration. The following steps set up some files for an example Python module, install maturin, and then show how to build and import the Python module.

First, create a new folder (let’s call it string_sum) containing the following two files:

Cargo.toml

[lib]
name = "string_sum"
# "cdylib" is necessary to produce a shared library for Python to import from.
#
# Downstream Rust code (including code in `bin/`, `examples/`, and `tests/`) will not be able
# to `use string_sum;` unless the "rlib" or "lib" crate type is also included, e.g.:
# crate-type = ["cdylib", "rlib"]
crate-type = ["cdylib"]

[dependencies.pyo3-ffi]
version = "0.23.5"
features = ["extension-module"]

[build-dependencies]
# This is only necessary if you need to configure your build based on
# the Python version or the compile-time configuration for the interpreter.
pyo3_build_config = "0.23.5"

If you need to use conditional compilation based on Python version or how Python was compiled, you need to add pyo3-build-config as a build-dependency in your Cargo.toml as in the example above and either create a new build.rs file or modify an existing one so that pyo3_build_config::use_pyo3_cfgs() gets called at build time:

build.rs

fn main() {
    pyo3_build_config::use_pyo3_cfgs()
}

src/lib.rs

use std::os::raw::{c_char, c_long};
use std::ptr;

use pyo3_ffi::*;

static mut MODULE_DEF: PyModuleDef = PyModuleDef {
    m_base: PyModuleDef_HEAD_INIT,
    m_name: c_str!("string_sum").as_ptr(),
    m_doc: c_str!("A Python module written in Rust.").as_ptr(),
    m_size: 0,
    m_methods: unsafe { METHODS as *const [PyMethodDef] as *mut PyMethodDef },
    m_slots: std::ptr::null_mut(),
    m_traverse: None,
    m_clear: None,
    m_free: None,
};

static mut METHODS: &[PyMethodDef] = &[
    PyMethodDef {
        ml_name: c_str!("sum_as_string").as_ptr(),
        ml_meth: PyMethodDefPointer {
            PyCFunctionFast: sum_as_string,
        },
        ml_flags: METH_FASTCALL,
        ml_doc: c_str!("returns the sum of two integers as a string").as_ptr(),
    },
    // A zeroed PyMethodDef to mark the end of the array.
    PyMethodDef::zeroed(),
];

// The module initialization function, which must be named `PyInit_<your_module>`.
#[allow(non_snake_case)]
#[no_mangle]
pub unsafe extern "C" fn PyInit_string_sum() -> *mut PyObject {
    let module = PyModule_Create(ptr::addr_of_mut!(MODULE_DEF));
    if module.is_null() {
        return module;
    }
    #[cfg(Py_GIL_DISABLED)]
    {
        if PyUnstable_Module_SetGIL(module, Py_MOD_GIL_NOT_USED) < 0 {
            Py_DECREF(module);
            return std::ptr::null_mut();
        }
    }
    module
}

/// A helper to parse function arguments
/// If we used PyO3's proc macros they'd handle all of this boilerplate for us :)
unsafe fn parse_arg_as_i32(obj: *mut PyObject, n_arg: usize) -> Option<i32> {
    if PyLong_Check(obj) == 0 {
        let msg = format!(
            "sum_as_string expected an int for positional argument {}\0",
            n_arg
        );
        PyErr_SetString(PyExc_TypeError, msg.as_ptr().cast::<c_char>());
        return None;
    }

    // Let's keep the behaviour consistent on platforms where `c_long` is bigger than 32 bits.
    // In particular, it is an i32 on Windows but i64 on most Linux systems
    let mut overflow = 0;
    let i_long: c_long = PyLong_AsLongAndOverflow(obj, &mut overflow);

    #[allow(irrefutable_let_patterns)] // some platforms have c_long equal to i32
    if overflow != 0 {
        raise_overflowerror(obj);
        None
    } else if let Ok(i) = i_long.try_into() {
        Some(i)
    } else {
        raise_overflowerror(obj);
        None
    }
}

unsafe fn raise_overflowerror(obj: *mut PyObject) {
    let obj_repr = PyObject_Str(obj);
    if !obj_repr.is_null() {
        let mut size = 0;
        let p = PyUnicode_AsUTF8AndSize(obj_repr, &mut size);
        if !p.is_null() {
            let s = std::str::from_utf8_unchecked(std::slice::from_raw_parts(
                p.cast::<u8>(),
                size as usize,
            ));
            let msg = format!("cannot fit {} in 32 bits\0", s);

            PyErr_SetString(PyExc_OverflowError, msg.as_ptr().cast::<c_char>());
        }
        Py_DECREF(obj_repr);
    }
}

pub unsafe extern "C" fn sum_as_string(
    _self: *mut PyObject,
    args: *mut *mut PyObject,
    nargs: Py_ssize_t,
) -> *mut PyObject {
    if nargs != 2 {
        PyErr_SetString(
            PyExc_TypeError,
            c_str!("sum_as_string expected 2 positional arguments").as_ptr(),
        );
        return std::ptr::null_mut();
    }

    let (first, second) = (*args, *args.add(1));

    let first = match parse_arg_as_i32(first, 1) {
        Some(x) => x,
        None => return std::ptr::null_mut(),
    };
    let second = match parse_arg_as_i32(second, 2) {
        Some(x) => x,
        None => return std::ptr::null_mut(),
    };

    match first.checked_add(second) {
        Some(sum) => {
            let string = sum.to_string();
            PyUnicode_FromStringAndSize(string.as_ptr().cast::<c_char>(), string.len() as isize)
        }
        None => {
            PyErr_SetString(
                PyExc_OverflowError,
                c_str!("arguments too large to add").as_ptr(),
            );
            std::ptr::null_mut()
        }
    }
}

With those two files in place, now maturin needs to be installed. This can be done using Python’s package manager pip. First, load up a new Python virtualenv, and install maturin into it:

$ cd string_sum
$ python -m venv .env
$ source .env/bin/activate
$ pip install maturin

Now build and execute the module:

$ maturin develop
# lots of progress output as maturin runs the compilation...
$ python
>>> import string_sum
>>> string_sum.sum_as_string(5, 20)
'25'

As well as with maturin, it is possible to build using setuptools-rust or manually. Both offer more flexibility than maturin but require further configuration.

This example stores the module definition statically and uses the PyModule_Create function in the CPython C API to register the module. This is the “old” style for registering modules and has the limitation that it cannot support subinterpreters. You can also create a module using the new multi-phase initialization API that does support subinterpreters. See the sequential project located in the examples directory at the root of the pyo3-ffi crate for a worked example of how to this using pyo3-ffi.

§Using Python from Rust

To embed Python into a Rust binary, you need to ensure that your Python installation contains a shared library. The following steps demonstrate how to ensure this (for Ubuntu).

To install the Python shared library on Ubuntu:

sudo apt install python3-dev

While most projects use the safe wrapper provided by pyo3, you can take a look at the orjson library as an example on how to use pyo3-ffi directly. For those well versed in C and Rust the tutorials from the CPython documentation can be easily converted to rust as well.

Re-exports§

pub use crate::_PyWeakReference as PyWeakReference;Non-PyPy and non-Py_LIMITED_API and non-GraalPy
pub use self::marshal::*;Non-Py_LIMITED_API

Modules§

compat
C API Compatibility Shims
marshalNon-Py_LIMITED_API
structmemberDeprecated

Macros§

c_str
This is a helper macro to create a &'static CStr.

Structs§

PyASCIIObjectNon-Py_LIMITED_API
PyAsyncMethodsNon-Py_LIMITED_API
PyBaseExceptionObjectNon-Py_LIMITED_API
PyBufferProcsNon-Py_LIMITED_API
PyByteArrayObjectNeither PyPy nor GraalPy nor Py_LIMITED_API
PyBytesObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_LIMITED_API
PyCFunctionObjectPy_3_9 and non-Py_LIMITED_API and non-GraalPy
PyCMethodObjectPy_3_9 and non-PyPy and non-Py_LIMITED_API and non-GraalPy
PyCodeObjectNeither PyPy nor GraalPy and Py_3_8 and non-Py_3_11 and non-Py_LIMITED_API
PyCompactUnicodeObjectNon-Py_LIMITED_API
PyCompilerFlagsNon-Py_LIMITED_API
PyComplexObjectNon-Py_LIMITED_API
PyConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyDateTime_CAPINon-Py_LIMITED_API
PyDateTime_DateNon-Py_LIMITED_API
Structure representing a datetime.date
PyDateTime_DateTimeNon-Py_LIMITED_API
Structure representing a datetime.datetime.
PyDateTime_DeltaNon-Py_LIMITED_API
Structure representing a datetime.timedelta.
PyDateTime_TimeNon-Py_LIMITED_API
Structure representing a datetime.time.
PyDescrObjectNon-Py_LIMITED_API
PyDictKeysObjectNon-PyPy and non-Py_LIMITED_API
PyDictObjectNon-PyPy and non-Py_LIMITED_API and non-GraalPy
PyFloatObjectNon-Py_LIMITED_API
PyFrameObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_3_11
PyFunctionObjectNeither PyPy nor GraalPy and Py_3_10 and non-Py_LIMITED_API
PyFutureFeaturesNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_3_13
PyGenObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyGetSetDef
Represents the PyGetSetDef structure.
PyGetSetDescrObjectNon-Py_LIMITED_API
PyHash_FuncDefNeither Py_LIMITED_API nor PyPy nor GraalPy
PyHeapTypeObjectNon-Py_LIMITED_API
PyImportErrorObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyInterpreterState
PyListObjectNon-Py_LIMITED_API and non-PyPy
PyLongObject
PyMappingMethodsNon-Py_LIMITED_API
PyMemAllocatorExNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyMemberDef
Represents the PyMemberDef structure.
PyMemberDescrObjectNon-Py_LIMITED_API
PyMethodDef
Represents the PyMethodDef structure.
PyMethodDescrObjectNon-Py_LIMITED_API
PyModuleDef
PyModuleDef_Base
PyModuleDef_Slot
PyNumberMethodsNon-Py_LIMITED_API
PyOSErrorObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyObject
PyObjectArenaAllocatorNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyPreConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PySequenceMethodsNon-Py_LIMITED_API
PySetObjectNeither Py_LIMITED_API nor PyPy nor GraalPy
PySliceObjectNon-Py_LIMITED_API
PyStatusPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStopIterationObjectNon-Py_LIMITED_API
PyStructSequence_Desc
PyStructSequence_Field
PySyntaxErrorObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PySystemExitObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyThreadState
PyTryBlockNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_3_11
PyTupleObjectNon-Py_LIMITED_API
PyTypeObjectNon-Py_LIMITED_API
PyType_Slot
PyType_Spec
PyUnicodeErrorObjectNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyUnicodeObjectNon-Py_LIMITED_API
PyVarObject
PyWideStringListPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyWrapperDescrObjectNon-Py_LIMITED_API
Py_bufferNon-Py_3_11 and non-Py_LIMITED_API
Py_complexNon-Py_LIMITED_API
_PyDateTime_BaseDateTimeNon-Py_LIMITED_API and neither PyPy nor GraalPy
Structure representing a datetime.datetime without a tzinfo member.
_PyDateTime_BaseTimeNon-Py_LIMITED_API and neither PyPy nor GraalPy
Structure representing a datetime.time without a tzinfo member.
_PyErr_StackItemNon-Py_LIMITED_API and non-PyPy
_PyOpcacheNon-Py_LIMITED_API
_PyWeakReferenceNon-Py_LIMITED_API and neither PyPy nor GraalPy
_frozenNon-Py_LIMITED_API and non-PyPy
_inittabNon-Py_LIMITED_API and non-PyPy
setentryNeither Py_LIMITED_API nor PyPy nor GraalPy
wrapperbaseNon-Py_LIMITED_API

Enums§

PyGILState_STATE
PyMemAllocatorDomainNon-Py_LIMITED_API
PySendResultPy_3_10
_PyStatus_TYPEPy_3_8 and non-PyPy and non-Py_LIMITED_API

Constants§

CO_ASYNC_GENERATORNon-Py_LIMITED_API
CO_COROUTINENon-Py_LIMITED_API
CO_FUTURE_ABSOLUTE_IMPORTNon-Py_LIMITED_API
CO_FUTURE_BARRY_AS_BDFLNon-Py_LIMITED_API
CO_FUTURE_DIVISIONNon-Py_LIMITED_API
CO_FUTURE_GENERATOR_STOPNon-Py_LIMITED_API
CO_FUTURE_PRINT_FUNCTIONNon-Py_LIMITED_API
CO_FUTURE_UNICODE_LITERALSNon-Py_LIMITED_API
CO_FUTURE_WITH_STATEMENTNon-Py_LIMITED_API
CO_GENERATORNon-Py_LIMITED_API
CO_ITERABLE_COROUTINENon-Py_LIMITED_API
CO_MAXBLOCKSNon-Py_LIMITED_API
CO_NESTEDNon-Py_LIMITED_API
CO_NEWLOCALSNon-Py_LIMITED_API
CO_NOFREENon-Py_LIMITED_API
CO_OPTIMIZEDNon-Py_LIMITED_API
CO_VARARGSNon-Py_LIMITED_API
CO_VARKEYWORDSNon-Py_LIMITED_API
FUTURE_ABSOLUTE_IMPORTNon-Py_LIMITED_API
FUTURE_BARRY_AS_BDFLNon-Py_LIMITED_API
FUTURE_DIVISIONNon-Py_LIMITED_API
FUTURE_GENERATORSNon-Py_LIMITED_API
FUTURE_GENERATOR_STOPNon-Py_LIMITED_API
FUTURE_NESTED_SCOPESNon-Py_LIMITED_API
FUTURE_PRINT_FUNCTIONNon-Py_LIMITED_API
FUTURE_UNICODE_LITERALSNon-Py_LIMITED_API
FUTURE_WITH_STATEMENTNon-Py_LIMITED_API
MAX_CO_EXTRA_USERS
METH_CLASS
METH_COEXIST
METH_FASTCALLPy_3_10 or non-Py_LIMITED_API
METH_KEYWORDS
METH_METHODPy_3_9 and non-Py_LIMITED_API
METH_NOARGS
METH_O
METH_STATIC
METH_VARARGS
PYOS_STACK_MARGIN
PYTHON_ABI_VERSION
PYTHON_API_VERSION
PY_BIG_ENDIANLittle-endian
PY_ITERSEARCH_CONTAINSNon-Py_LIMITED_API
PY_ITERSEARCH_COUNTNon-Py_LIMITED_API
PY_ITERSEARCH_INDEXNon-Py_LIMITED_API
PY_LITTLE_ENDIANLittle-endian
PY_SSIZE_T_MAX
PY_SSIZE_T_MIN
PY_STDIOTEXTMODE
PY_VECTORCALL_ARGUMENTS_OFFSETNon-Py_LIMITED_API and Py_3_8
PyBUF_ANY_CONTIGUOUSNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_CONTIGNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_CONTIG_RONon-Py_3_11 and non-Py_LIMITED_API
PyBUF_C_CONTIGUOUSNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_FORMATNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_FULLNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_FULL_RONon-Py_3_11 and non-Py_LIMITED_API
PyBUF_F_CONTIGUOUSNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_INDIRECTNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_MAX_NDIMNon-Py_3_11 and non-Py_LIMITED_API
Maximum number of dimensions
PyBUF_NDNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_READNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_RECORDSNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_RECORDS_RONon-Py_3_11 and non-Py_LIMITED_API
PyBUF_SIMPLENon-Py_3_11 and non-Py_LIMITED_API
PyBUF_STRIDEDNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_STRIDED_RONon-Py_3_11 and non-Py_LIMITED_API
PyBUF_STRIDESNon-Py_3_11 and non-Py_LIMITED_API
PyBUF_WRITABLENon-Py_3_11 and non-Py_LIMITED_API
PyBUF_WRITENon-Py_3_11 and non-Py_LIMITED_API
PyBUF_WRITEABLENon-Py_3_11 and non-Py_LIMITED_API
PyDateTime_CAPSULE_NAMENon-Py_LIMITED_API
PyModuleDef_HEAD_INIT
PyObject_HEAD_INIT
PySet_MINSIZE
PyTrace_CALLNon-Py_LIMITED_API
PyTrace_C_CALLNon-Py_LIMITED_API
PyTrace_C_EXCEPTIONNon-Py_LIMITED_API
PyTrace_C_RETURNNon-Py_LIMITED_API
PyTrace_EXCEPTIONNon-Py_LIMITED_API
PyTrace_LINENon-Py_LIMITED_API
PyTrace_OPCODENon-Py_LIMITED_API
PyTrace_RETURNNon-Py_LIMITED_API
PyUnicode_1BYTE_KINDNon-Py_LIMITED_API
PyUnicode_2BYTE_KINDNon-Py_LIMITED_API
PyUnicode_4BYTE_KINDNon-Py_LIMITED_API
PyUnicode_WCHAR_KINDDeprecatedNon-Py_LIMITED_API and non-Py_3_12
PyWrapperFlag_KEYWORDSNon-Py_LIMITED_API
Py_AUDIT_READPy_3_10
Py_CLEANUP_SUPPORTED
Py_DTSF_ADD_DOT_0
Py_DTSF_ALT
Py_DTSF_SIGN
Py_DTST_FINITE
Py_DTST_INFINITE
Py_DTST_NAN
Py_EQ
Py_GE
Py_GT
Py_HASH_EXTERNAL
Py_HASH_FNV
Py_HASH_SIPHASH24
Py_LE
Py_LT
Py_NE
Py_PRINT_RAW
Py_READONLY
Py_RELATIVE_OFFSET
Py_TPFLAGS_BASETYPE
Set if the type allows subclassing
Py_TPFLAGS_BASE_EXC_SUBCLASS
Py_TPFLAGS_BYTES_SUBCLASS
Py_TPFLAGS_DEFAULT
Py_TPFLAGS_DICT_SUBCLASS
Py_TPFLAGS_DISALLOW_INSTANTIATIONPy_3_10
Py_TPFLAGS_HAVE_FINALIZE
Py_TPFLAGS_HAVE_GC
Objects support garbage collection (see objimp.h)
Py_TPFLAGS_HAVE_VECTORCALLPy_3_12, or Py_3_8 and non-Py_LIMITED_API
Set if the type implements the vectorcall protocol (PEP 590)
Py_TPFLAGS_HAVE_VERSION_TAG
Py_TPFLAGS_HEAPTYPE
Set if the type object is dynamically allocated
Py_TPFLAGS_IMMUTABLETYPEPy_3_10
Py_TPFLAGS_IS_ABSTRACT
Py_TPFLAGS_LIST_SUBCLASS
Py_TPFLAGS_LONG_SUBCLASS
Py_TPFLAGS_MAPPINGPy_3_10 and non-Py_LIMITED_API
Py_TPFLAGS_METHOD_DESCRIPTORPy_3_8
Py_TPFLAGS_READY
Set if the type is ‘ready’ – fully initialized
Py_TPFLAGS_READYING
Set while the type is being ‘readied’, to prevent recursive ready calls
Py_TPFLAGS_SEQUENCEPy_3_10 and non-Py_LIMITED_API
Py_TPFLAGS_TUPLE_SUBCLASS
Py_TPFLAGS_TYPE_SUBCLASS
Py_TPFLAGS_UNICODE_SUBCLASS
Py_TPFLAGS_VALID_VERSION_TAG
Py_T_BOOL
Py_T_BYTE
Py_T_CHAR
Py_T_DOUBLE
Py_T_FLOAT
Py_T_INT
Py_T_LONG
Py_T_LONGLONG
Py_T_OBJECT_EX
Py_T_PYSSIZET
Py_T_SHORT
Py_T_STRING
Py_T_STRING_INPLACE
Py_T_UBYTE
Py_T_UINT
Py_T_ULONG
Py_T_ULONGLONG
Py_T_USHORT
Py_UNICODE_REPLACEMENT_CHARACTER
Py_am_aiter
Py_am_anext
Py_am_await
Py_bf_getbuffer
Py_bf_releasebuffer
Py_eval_input
Py_file_input
Py_fstring_inputPy_3_9
Py_func_type_inputPy_3_8
Py_mod_create
Py_mod_exec
Py_mp_ass_subscript
Py_mp_length
Py_mp_subscript
Py_nb_absolute
Py_nb_add
Py_nb_and
Py_nb_bool
Py_nb_divmod
Py_nb_float
Py_nb_floor_divide
Py_nb_index
Py_nb_inplace_add
Py_nb_inplace_and
Py_nb_inplace_floor_divide
Py_nb_inplace_lshift
Py_nb_inplace_matrix_multiply
Py_nb_inplace_multiply
Py_nb_inplace_or
Py_nb_inplace_power
Py_nb_inplace_remainder
Py_nb_inplace_rshift
Py_nb_inplace_subtract
Py_nb_inplace_true_divide
Py_nb_inplace_xor
Py_nb_int
Py_nb_invert
Py_nb_lshift
Py_nb_matrix_multiply
Py_nb_multiply
Py_nb_negative
Py_nb_or
Py_nb_positive
Py_nb_power
Py_nb_remainder
Py_nb_rshift
Py_nb_subtract
Py_nb_true_divide
Py_nb_xor
Py_single_input
Py_sq_ass_item
Py_sq_concat
Py_sq_contains
Py_sq_inplace_concat
Py_sq_inplace_repeat
Py_sq_item
Py_sq_length
Py_sq_repeat
Py_tp_alloc
Py_tp_base
Py_tp_bases
Py_tp_call
Py_tp_clear
Py_tp_dealloc
Py_tp_del
Py_tp_descr_get
Py_tp_descr_set
Py_tp_doc
Py_tp_finalize
Py_tp_free
Py_tp_getattr
Py_tp_getattro
Py_tp_getset
Py_tp_hash
Py_tp_init
Py_tp_is_gc
Py_tp_iter
Py_tp_iternext
Py_tp_members
Py_tp_methods
Py_tp_new
Py_tp_repr
Py_tp_richcompare
Py_tp_setattr
Py_tp_setattro
Py_tp_str
Py_tp_traverse
SSTATE_INTERNED_IMMORTALNon-Py_LIMITED_API
SSTATE_INTERNED_MORTALNon-Py_LIMITED_API
SSTATE_NOT_INTERNEDNon-Py_LIMITED_API
_PyHASH_MULTIPLIER
_Py_T_NONEDeprecated
_Py_T_OBJECTDeprecated
_Py_WRITE_RESTRICTEDDeprecated

Statics§

PyAsyncGen_TypeNon-Py_LIMITED_API
PyBaseObject_Type
built-in ‘object’
PyBool_Type
PyByteArrayIter_Type
PyByteArray_Type
PyBytesIter_Type
PyBytes_Type
PyCFunction_Type
PyCMethod_TypePy_3_9 and non-PyPy and non-Py_LIMITED_API
PyCallIter_Type
PyCapsule_Type
PyClassMethodDescr_Type
PyCode_TypeNeither PyPy nor GraalPy and non-Py_LIMITED_API
PyComplex_Type
PyContextToken_TypePy_3_8 and non-Py_LIMITED_API
PyContextVar_TypePy_3_8 and non-Py_LIMITED_API
PyContext_TypePy_3_8 and non-Py_LIMITED_API
PyCoro_TypeNon-Py_LIMITED_API
PyDictItems_Type
PyDictIterItem_Type
PyDictIterKey_Type
PyDictIterValue_Type
PyDictKeys_Type
PyDictProxy_Type
PyDictRevIterItem_TypePy_3_8
PyDictRevIterKey_TypePy_3_8
PyDictRevIterValue_TypePy_3_8
PyDictValues_Type
PyDict_Type
PyEllipsis_Type
PyEnum_Type
PyExc_ArithmeticError
PyExc_AssertionError
PyExc_AttributeError
PyExc_BaseException
PyExc_BlockingIOError
PyExc_BrokenPipeError
PyExc_BufferError
PyExc_BytesWarning
PyExc_ChildProcessError
PyExc_ConnectionAbortedError
PyExc_ConnectionError
PyExc_ConnectionRefusedError
PyExc_ConnectionResetError
PyExc_DeprecationWarning
PyExc_EOFError
PyExc_EncodingWarningPy_3_10
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_RecursionErrorInst
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_ZeroDivisionError
PyFilter_Type
PyFloat_Type
PyFrame_TypeNon-Py_LIMITED_API
PyFrozenSet_Type
PyFunction_TypeNon-Py_LIMITED_API and not (PyPy and non-Py_3_8)
PyGen_TypeNon-Py_LIMITED_API
PyGetSetDescr_Type
PyImport_FrozenModulesNon-Py_LIMITED_API and non-PyPy
PyImport_InittabNon-Py_LIMITED_API and non-PyPy
PyListIter_Type
PyListRevIter_Type
PyList_Type
PyLongRangeIter_Type
PyLong_Type
PyMap_Type
PyMemberDescr_Type
PyMemoryView_Type
PyMethodDescr_Type
PyModuleDef_Type
PyModule_Type
PyProperty_Type
PyRangeIter_Type
PyRange_Type
PyReversed_Type
PySeqIter_Type
PySetIter_Type
PySet_Type
PySlice_Type
PySuper_Type
built-in ‘super’
PyTraceBack_Type
PyTupleIter_Type
PyTuple_Type
PyType_Type
built-in ‘type’
PyUnicodeIter_Type
PyUnicode_Type
PyWrapperDescr_Type
PyZip_Type
Py_BytesWarningFlagDeprecatedNon-Py_LIMITED_API
Py_DebugFlagDeprecatedNon-Py_LIMITED_API
Py_DontWriteBytecodeFlagDeprecatedNon-Py_LIMITED_API
Py_FileSystemDefaultEncodeErrorsDeprecated
Py_FileSystemDefaultEncodingDeprecated
Py_FrozenFlagDeprecatedNon-Py_LIMITED_API
Py_HasFileSystemDefaultEncodingDeprecated
Py_HashRandomizationFlagNon-Py_LIMITED_API
Py_IgnoreEnvironmentFlagDeprecatedNon-Py_LIMITED_API
Py_InspectFlagDeprecatedNon-Py_LIMITED_API
Py_InteractiveFlagDeprecatedNon-Py_LIMITED_API
Py_IsolatedFlagDeprecatedNon-Py_LIMITED_API
Py_NoSiteFlagDeprecatedNon-Py_LIMITED_API
Py_NoUserSiteDirectoryDeprecatedNon-Py_LIMITED_API
Py_OptimizeFlagDeprecatedNon-Py_LIMITED_API
Py_QuietFlagDeprecatedNon-Py_LIMITED_API
Py_UnbufferedStdioFlagDeprecatedNon-Py_LIMITED_API
Py_UseClassExceptionsFlagDeprecatedNon-Py_LIMITED_API
Py_VerboseFlagDeprecatedNon-Py_LIMITED_API
_PyCoroWrapper_TypeNon-Py_LIMITED_API
_PyManagedBuffer_TypeNon-Py_LIMITED_API
_PyMethodWrapper_TypeNon-Py_LIMITED_API
_PySet_DummyNon-Py_LIMITED_API
_PyWeakref_CallableProxyType
_PyWeakref_ProxyType
_PyWeakref_RefType

Functions§

PyAnySet_Check
PyAnySet_CheckExactNon-PyPy
PyArg_Parse
PyArg_ParseTuple
PyArg_ParseTupleAndKeywords
PyArg_UnpackTuple
PyArg_ValidateKeywordArguments
PyAsyncGen_CheckExactNon-Py_LIMITED_API
PyBool_Check
PyBool_FromLong
PyBuffer_FillContiguousStridesNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_FillInfoNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_FromContiguousNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_GetPointerNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_IsContiguousNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_ReleaseNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_SizeFromFormatNon-Py_3_11 and non-Py_LIMITED_API
PyBuffer_ToContiguousNon-Py_3_11 and non-Py_LIMITED_API
PyByteArray_AsString
PyByteArray_Check
PyByteArray_CheckExact
PyByteArray_Concat
PyByteArray_FromObject
PyByteArray_FromStringAndSize
PyByteArray_Resize
PyByteArray_Size
PyBytes_AsString
PyBytes_AsStringAndSize
PyBytes_Check
PyBytes_CheckExact
PyBytes_Concat
PyBytes_ConcatAndDel
PyBytes_DecodeEscape
PyBytes_FromFormat
PyBytes_FromObject
PyBytes_FromString
PyBytes_FromStringAndSize
PyBytes_Repr
PyBytes_Size
PyCFunction_CallDeprecatedNon-Py_3_13
PyCFunction_CheckPy_3_9
PyCFunction_CheckExactPy_3_9
PyCFunction_GET_CLASSPy_3_9 and non-PyPy and non-Py_LIMITED_API and non-GraalPy
PyCFunction_GET_FLAGSPy_3_9 and non-PyPy and non-Py_LIMITED_API and non-GraalPy
PyCFunction_GET_FUNCTIONPy_3_9 and non-PyPy and non-Py_LIMITED_API and non-GraalPy
PyCFunction_GET_SELFPy_3_9 and non-PyPy and non-Py_LIMITED_API and non-GraalPy
PyCFunction_GetFlags
PyCFunction_GetFunction
PyCFunction_GetSelf
PyCFunction_NewPy_3_9
PyCFunction_NewExPy_3_9
PyCMethod_CheckPy_3_9 and non-PyPy and non-Py_LIMITED_API
PyCMethod_CheckExactPy_3_9 and non-PyPy and non-Py_LIMITED_API
PyCMethod_NewPy_3_9
PyCallIter_Check
PyCallIter_New
PyCallable_Check
PyCapsule_CheckExact
PyCapsule_GetContext
PyCapsule_GetDestructor
PyCapsule_GetName
PyCapsule_GetPointer
PyCapsule_Import
PyCapsule_IsValid
PyCapsule_New
PyCapsule_SetContext
PyCapsule_SetDestructor
PyCapsule_SetName
PyCapsule_SetPointer
PyCode_Addr2LineNon-Py_LIMITED_API and non-GraalPy
PyCode_CheckNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyCode_GetNumFreeNeither PyPy nor GraalPy and Py_3_10 and non-Py_3_11 and non-Py_LIMITED_API
PyCode_NewNon-Py_LIMITED_API and non-GraalPy
PyCode_NewEmptyNon-Py_LIMITED_API and non-GraalPy
PyCode_NewWithPosOnlyArgsNon-Py_LIMITED_API and non-GraalPy and Py_3_8
PyCode_OptimizeNon-Py_LIMITED_API
PyCodec_BackslashReplaceErrors
PyCodec_Decode
PyCodec_Decoder
PyCodec_Encode
PyCodec_Encoder
PyCodec_IgnoreErrors
PyCodec_IncrementalDecoder
PyCodec_IncrementalEncoder
PyCodec_KnownEncoding
PyCodec_LookupError
PyCodec_Register
PyCodec_RegisterError
PyCodec_ReplaceErrors
PyCodec_StreamReader
PyCodec_StreamWriter
PyCodec_StrictErrors
PyCodec_UnregisterPy_3_10 and non-PyPy
PyCodec_XMLCharRefReplaceErrors
PyCompile_OpcodeStackEffectNon-Py_LIMITED_API
PyCompile_OpcodeStackEffectWithJumpNon-Py_LIMITED_API and Py_3_8
PyComplex_AsCComplexNon-Py_LIMITED_API
PyComplex_Check
PyComplex_CheckExact
PyComplex_FromCComplexNon-Py_LIMITED_API
PyComplex_FromDoubles
PyComplex_ImagAsDouble
PyComplex_RealAsDouble
PyConfig_ClearPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_InitIsolatedConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_InitPythonConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_ReadPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_SetArgvPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_SetBytesArgvPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_SetBytesStringPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_SetStringPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyConfig_SetWideStringListPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyContextToken_CheckExactPy_3_8 and non-Py_LIMITED_API
PyContextVar_CheckExactPy_3_8 and non-Py_LIMITED_API
PyContextVar_GetPy_3_8 and non-Py_LIMITED_API
PyContextVar_NewPy_3_8 and non-Py_LIMITED_API
PyContextVar_ResetPy_3_8 and non-Py_LIMITED_API
PyContextVar_SetPy_3_8 and non-Py_LIMITED_API
PyContext_CheckExactPy_3_8 and non-Py_LIMITED_API
PyContext_CopyPy_3_8 and non-Py_LIMITED_API
PyContext_CopyCurrentPy_3_8 and non-Py_LIMITED_API
PyContext_EnterPy_3_8 and non-Py_LIMITED_API
PyContext_ExitPy_3_8 and non-Py_LIMITED_API
PyContext_NewPy_3_8 and non-Py_LIMITED_API
PyCoro_CheckExactNon-Py_LIMITED_API
PyDateTimeAPINon-Py_LIMITED_API
Returns a pointer to a PyDateTime_CAPI instance
PyDateTime_CheckNon-Py_LIMITED_API
Check if op is a PyDateTimeAPI.DateTimeType or subtype.
PyDateTime_CheckExactNon-Py_LIMITED_API
Check if op’s type is exactly PyDateTimeAPI.DateTimeType.
PyDateTime_DATE_GET_FOLDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the fold component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 1]
PyDateTime_DATE_GET_HOURNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the hour component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 23]
PyDateTime_DATE_GET_MICROSECONDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the microsecond component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 999999]
PyDateTime_DATE_GET_MINUTENon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the minute component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 59]
PyDateTime_DATE_GET_SECONDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the second component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 59]
PyDateTime_DATE_GET_TZINFONon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the tzinfo component of a PyDateTime_DateTime. Returns a pointer to a PyObject that should be either NULL or an instance of a datetime.tzinfo subclass.
PyDateTime_DELTA_GET_DAYSNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the days component of a PyDateTime_Delta.
PyDateTime_DELTA_GET_MICROSECONDSNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the seconds component of a PyDateTime_Delta.
PyDateTime_DELTA_GET_SECONDSNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the seconds component of a PyDateTime_Delta.
PyDateTime_FromTimestampNon-Py_LIMITED_API and non-PyPy
PyDateTime_GET_DAYNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the day component of a PyDateTime_Date or PyDateTime_DateTime. Returns a signed integer in the interval [1, 31].
PyDateTime_GET_MONTHNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the month component of a PyDateTime_Date or PyDateTime_DateTime. Returns a signed integer in the range [1, 12].
PyDateTime_GET_YEARNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the year component of a PyDateTime_Date or PyDateTime_DateTime. Returns a signed integer greater than 0.
PyDateTime_IMPORTNon-Py_LIMITED_API
Populates the PyDateTimeAPI object
PyDateTime_TIME_GET_FOLDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the fold component of a PyDateTime_Time. Returns a signed integer in the interval [0, 1]
PyDateTime_TIME_GET_HOURNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the hour component of a PyDateTime_Time. Returns a signed integer in the interval [0, 23]
PyDateTime_TIME_GET_MICROSECONDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the microsecond component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 999999]
PyDateTime_TIME_GET_MINUTENon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the minute component of a PyDateTime_Time. Returns a signed integer in the interval [0, 59]
PyDateTime_TIME_GET_SECONDNon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the second component of a PyDateTime_DateTime. Returns a signed integer in the interval [0, 59]
PyDateTime_TIME_GET_TZINFONon-Py_LIMITED_API and neither PyPy nor GraalPy
Retrieve the tzinfo component of a PyDateTime_Time. Returns a pointer to a PyObject that should be either NULL or an instance of a datetime.tzinfo subclass.
PyDateTime_TimeZone_UTCNon-Py_LIMITED_API
PyDate_CheckNon-Py_LIMITED_API
Type Check macros
PyDate_CheckExactNon-Py_LIMITED_API
Check if op’s type is exactly PyDateTimeAPI.DateType.
PyDate_FromTimestampNon-Py_LIMITED_API and non-PyPy
PyDelta_CheckNon-Py_LIMITED_API
Check if op is a PyDateTimeAPI.DetaType or subtype.
PyDelta_CheckExactNon-Py_LIMITED_API
Check if op’s type is exactly PyDateTimeAPI.DeltaType.
PyDescr_NewClassMethod
PyDescr_NewGetSet
PyDescr_NewMember
PyDescr_NewMethod
PyDictItems_Check
PyDictKeys_Check
PyDictProxy_New
PyDictValues_Check
PyDictViewSet_Check
PyDict_Check
PyDict_CheckExact
PyDict_Clear
PyDict_Contains
PyDict_Copy
PyDict_DelItem
PyDict_DelItemString
PyDict_GetItem
PyDict_GetItemString
PyDict_GetItemWithError
PyDict_Items
PyDict_Keys
PyDict_Merge
PyDict_MergeFromSeq2
PyDict_New
PyDict_Next
PyDict_SetItem
PyDict_SetItemString
PyDict_Size
PyDict_Update
PyDict_Values
PyErr_BadArgument
PyErr_BadInternalCall
PyErr_CheckSignals
PyErr_Clear
PyErr_Display
PyErr_ExceptionMatches
PyErr_Fetch
PyErr_Format
PyErr_GetExcInfo
PyErr_GivenExceptionMatches
PyErr_NewException
PyErr_NewExceptionWithDoc
PyErr_NoMemory
PyErr_NormalizeException
PyErr_Occurred
PyErr_Print
PyErr_PrintEx
PyErr_ProgramText
PyErr_ResourceWarning
PyErr_Restore
PyErr_SetExcInfo
PyErr_SetFromErrno
PyErr_SetFromErrnoWithFilename
PyErr_SetFromErrnoWithFilenameObject
PyErr_SetFromErrnoWithFilenameObjects
PyErr_SetImportError
PyErr_SetImportErrorSubclass
PyErr_SetInterrupt
PyErr_SetInterruptExPy_3_10
PyErr_SetNone
PyErr_SetObject
PyErr_SetString
PyErr_SyntaxLocation
PyErr_SyntaxLocationEx
PyErr_WarnEx
PyErr_WarnExplicit
PyErr_WarnFormat
PyErr_WriteUnraisable
PyEval_AcquireLock
PyEval_AcquireThread
PyEval_CallFunctionDeprecatedNon-Py_3_13
PyEval_CallMethodDeprecatedNon-Py_3_13
PyEval_CallObjectDeprecatedNon-Py_3_13
PyEval_CallObjectWithKeywordsDeprecatedNon-Py_3_13
PyEval_EvalCode
PyEval_EvalCodeEx
PyEval_EvalFrame
PyEval_EvalFrameEx
PyEval_GetBuiltins
PyEval_GetCallStats
PyEval_GetFrame
PyEval_GetFuncDesc
PyEval_GetFuncName
PyEval_GetGlobals
PyEval_GetLocals
PyEval_InitThreadsDeprecated
PyEval_ReleaseLock
PyEval_ReleaseThread
PyEval_RestoreThread
PyEval_SaveThread
PyEval_SetProfileNon-PyPy and non-Py_LIMITED_API
PyEval_SetTraceNon-PyPy and non-Py_LIMITED_API
PyEval_ThreadsInitializedDeprecatedNon-Py_3_13
PyExceptionClass_Check
PyExceptionInstance_Check
PyExceptionInstance_ClassNon-PyPy
PyException_GetCause
PyException_GetContext
PyException_GetTraceback
PyException_SetCause
PyException_SetContext
PyException_SetTraceback
PyFile_FromFd
PyFile_GetLine
PyFile_WriteObject
PyFile_WriteString
PyFloat_AS_DOUBLENon-Py_LIMITED_API
PyFloat_AsDouble
PyFloat_Check
PyFloat_CheckExact
PyFloat_FromDouble
PyFloat_FromString
PyFloat_GetInfo
PyFloat_GetMax
PyFloat_GetMin
PyFrame_BlockPopNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_3_11
PyFrame_BlockSetupNon-Py_LIMITED_API
PyFrame_CheckNon-Py_LIMITED_API
PyFrame_FastToLocalsNon-Py_LIMITED_API
PyFrame_FastToLocalsWithErrorNon-Py_LIMITED_API
PyFrame_GetCodeNon-GraalPy and (Py_3_10, or Py_3_9 and non-Py_LIMITED_API)
PyFrame_GetLineNumber
PyFrame_LocalsToFastNon-Py_LIMITED_API
PyFrame_NewNon-Py_LIMITED_API and non-GraalPy
PyFrozenSet_CheckNon-PyPy
PyFrozenSet_CheckExactNeither PyPy nor GraalPy
PyFrozenSet_New
PyFunction_CheckNon-Py_LIMITED_API and not (PyPy and non-Py_3_8)
PyFunction_GetAnnotationsNon-Py_LIMITED_API
PyFunction_GetClosureNon-Py_LIMITED_API
PyFunction_GetCodeNon-Py_LIMITED_API
PyFunction_GetDefaultsNon-Py_LIMITED_API
PyFunction_GetGlobalsNon-Py_LIMITED_API
PyFunction_GetKwDefaultsNon-Py_LIMITED_API
PyFunction_GetModuleNon-Py_LIMITED_API
PyFunction_NewNon-Py_LIMITED_API
PyFunction_NewWithQualNameNon-Py_LIMITED_API
PyFunction_SetAnnotationsNon-Py_LIMITED_API
PyFunction_SetClosureNon-Py_LIMITED_API
PyFunction_SetDefaultsNon-Py_LIMITED_API
PyFunction_SetKwDefaultsNon-Py_LIMITED_API
PyGC_Collect
PyGC_DisablePy_3_10
PyGC_EnablePy_3_10
PyGC_IsEnabledPy_3_10
PyGILState_CheckNon-Py_LIMITED_API
PyGILState_Ensure
PyGILState_GetThisThreadStateNon-PyPy
PyGILState_Release
PyGen_CheckNon-Py_LIMITED_API
PyGen_CheckExactNon-Py_LIMITED_API
PyGen_NewNon-Py_LIMITED_API
PyHash_GetFuncDefNeither Py_LIMITED_API nor PyPy nor GraalPy
PyHeapType_GET_MEMBERSNon-Py_LIMITED_API and non-Py_3_11
PyImport_AddModule
PyImport_AddModuleObject
PyImport_AppendInittab
PyImport_ExecCodeModule
PyImport_ExecCodeModuleEx
PyImport_ExecCodeModuleObject
PyImport_ExecCodeModuleWithPathnames
PyImport_ExtendInittabNon-Py_LIMITED_API and non-PyPy
PyImport_GetImporter
PyImport_GetMagicNumber
PyImport_GetMagicTag
PyImport_GetModuleDict
PyImport_Import
PyImport_ImportFrozenModule
PyImport_ImportFrozenModuleObject
PyImport_ImportModule
PyImport_ImportModuleEx
PyImport_ImportModuleLevel
PyImport_ImportModuleLevelObject
PyImport_ImportModuleNoBlock
PyImport_ReloadModule
PyIndex_CheckNeither Py_LIMITED_API nor PyPy
PyInterpreterState_ClearNon-PyPy
PyInterpreterState_DeleteNon-PyPy
PyInterpreterState_GetPy_3_9 and non-PyPy
PyInterpreterState_GetDictPy_3_8 and non-PyPy
PyInterpreterState_GetIDNon-PyPy
PyInterpreterState_HeadNon-Py_LIMITED_API
PyInterpreterState_MainNon-Py_LIMITED_API and non-PyPy
PyInterpreterState_NewNon-PyPy
PyInterpreterState_NextNon-Py_LIMITED_API
PyInterpreterState_ThreadHeadNon-Py_LIMITED_API and non-PyPy
PyIter_CheckPy_3_8 or PyPy
PyIter_Next
PyIter_SendNon-PyPy and Py_3_10
PyList_Append
PyList_AsTuple
PyList_Check
PyList_CheckExact
PyList_GET_ITEMNon-Py_LIMITED_API and neither PyPy nor GraalPy
Macro, trading safety for speed
PyList_GET_SIZENon-Py_LIMITED_API and non-PyPy
PyList_GetItem
PyList_GetSlice
PyList_Insert
PyList_New
PyList_Reverse
PyList_SET_ITEMNon-Py_LIMITED_API and neither PyPy nor GraalPy
Macro, only to be used to fill in brand new lists
PyList_SetItem
PyList_SetSlice
PyList_Size
PyList_Sort
PyLong_AsDouble
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_Check
PyLong_CheckExact
PyLong_FromDouble
PyLong_FromLong
PyLong_FromLongLong
PyLong_FromSize_t
PyLong_FromSsize_t
PyLong_FromString
PyLong_FromUnsignedLong
PyLong_FromUnsignedLongLong
PyLong_FromVoidPtr
PyLong_GetInfo
PyMapping_Check
PyMapping_DelItem
PyMapping_DelItemString
PyMapping_GetItemString
PyMapping_HasKey
PyMapping_HasKeyString
PyMapping_Items
PyMapping_Keys
PyMapping_LengthNon-PyPy
PyMapping_SetItemString
PyMapping_Size
PyMapping_Values
PyMem_Calloc
PyMem_Free
PyMem_GetAllocatorNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyMem_Malloc
PyMem_RawCallocNon-Py_LIMITED_API
PyMem_RawFreeNon-Py_LIMITED_API
PyMem_RawMallocNon-Py_LIMITED_API
PyMem_RawReallocNon-Py_LIMITED_API
PyMem_Realloc
PyMem_SetAllocatorNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyMem_SetupDebugHooksNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyMember_GetOne
PyMember_SetOne
PyMemoryView_Check
PyMemoryView_FromBufferPy_3_11 or non-Py_LIMITED_API
PyMemoryView_FromMemory
PyMemoryView_FromObject
PyMemoryView_GetContiguous
PyModuleDef_Init
PyModule_AddFunctions
PyModule_AddIntConstant
PyModule_AddObject
PyModule_AddObjectRefPy_3_10
PyModule_AddStringConstant
PyModule_AddTypePy_3_10, or Py_3_9 and non-Py_LIMITED_API
PyModule_Check
PyModule_CheckExact
PyModule_Create
PyModule_Create2Non-py_sys_config="Py_TRACE_REFS"
PyModule_ExecDef
PyModule_FromDefAndSpec
PyModule_FromDefAndSpec2Non-py_sys_config="Py_TRACE_REFS"
PyModule_GetDef
PyModule_GetDict
PyModule_GetFilenameDeprecatedNot (Windows and PyPy)
PyModule_GetFilenameObjectNon-PyPy
PyModule_GetName
PyModule_GetNameObjectNon-PyPy
PyModule_GetState
PyModule_New
PyModule_NewObject
PyModule_SetDocString
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_AfterForkDeprecated
PyOS_AfterFork_Child
PyOS_AfterFork_Parent
PyOS_BeforeFork
PyOS_FSPath
PyOS_InterruptOccurred
PyOS_double_to_string
PyOS_getsig
PyOS_setsig
PyOS_string_to_double
PyOS_strtol
PyOS_strtoul
PyObject_ASCII
PyObject_AsFileDescriptor
PyObject_Bytes
PyObject_Call
PyObject_CallFinalizerNon-Py_LIMITED_API
PyObject_CallFinalizerFromDeallocNon-Py_LIMITED_API
PyObject_CallFunction
PyObject_CallFunctionObjArgs
PyObject_CallMethod
PyObject_CallMethodNoArgsPy_3_9 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyObject_CallMethodObjArgs
PyObject_CallMethodOneArgPy_3_9 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyObject_CallNoArgsNon-PyPy and (Py_3_10, or non-Py_LIMITED_API and Py_3_9)
PyObject_CallObject
PyObject_CallOneArgPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyObject_Calloc
PyObject_CheckBufferNon-Py_LIMITED_API and non-Py_3_11 and Py_3_9 and neither PyPy nor GraalPy
PyObject_ClearWeakRefs
PyObject_CopyDataNon-Py_3_11 and non-Py_LIMITED_API
PyObject_DelAttrNon-Py_3_13 and not (PyPy and non-Py_3_11)
PyObject_DelAttrStringNon-Py_3_13 and not (PyPy and non-Py_3_11)
PyObject_DelItem
PyObject_DelItemString
PyObject_Dir
PyObject_Format
PyObject_Free
PyObject_GC_Del
PyObject_GC_IsFinalizedPy_3_9 and non-PyPy, or Py_3_10
PyObject_GC_IsTrackedPy_3_9 and non-PyPy, or Py_3_10
PyObject_GC_TrackNon-PyPy
PyObject_GC_UnTrackNon-PyPy
PyObject_GET_WEAKREFS_LISTPTRNon-Py_LIMITED_API
PyObject_GenericGetAttr
PyObject_GenericGetDictNot (Py_LIMITED_API and non-Py_3_10)
PyObject_GenericSetAttr
PyObject_GenericSetDict
PyObject_GetArenaAllocatorNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyObject_GetAttr
PyObject_GetAttrString
PyObject_GetBufferNon-Py_3_11 and non-Py_LIMITED_API
PyObject_GetItem
PyObject_GetIter
PyObject_HasAttr
PyObject_HasAttrString
PyObject_Hash
PyObject_HashNotImplemented
PyObject_IS_GCNon-Py_LIMITED_API and Py_3_9
PyObject_Init
PyObject_InitVar
PyObject_IsInstance
PyObject_IsSubclass
PyObject_IsTrue
PyObject_Length
PyObject_LengthHintNon-Py_LIMITED_API
PyObject_Malloc
PyObject_Not
PyObject_PrintNon-Py_LIMITED_API
PyObject_Realloc
PyObject_Repr
PyObject_RichCompare
PyObject_RichCompareBool
PyObject_SelfIter
PyObject_SetArenaAllocatorNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyObject_SetAttr
PyObject_SetAttrString
PyObject_SetItem
PyObject_Size
PyObject_Str
PyObject_Type
PyObject_TypeCheck
PyObject_VectorcallPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyObject_VectorcallDictNon-Py_LIMITED_API and Py_3_8
PyObject_VectorcallMethodPy_3_9 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyPreConfig_InitIsolatedConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyPreConfig_InitPythonConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyRange_Check
PyRun_AnyFileNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_AnyFileExNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_AnyFileExFlagsNon-Py_LIMITED_API
PyRun_AnyFileFlagsNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_FileNon-Py_LIMITED_API
PyRun_FileExNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_FileExFlagsNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_FileFlagsNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_InteractiveLoopNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_InteractiveLoopFlagsNon-Py_LIMITED_API
PyRun_InteractiveOneNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_InteractiveOneFlagsNon-Py_LIMITED_API
PyRun_InteractiveOneObjectNon-Py_LIMITED_API
PyRun_SimpleFileNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_SimpleFileExNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyRun_SimpleFileExFlagsNon-Py_LIMITED_API
PyRun_SimpleStringNon-Py_LIMITED_API
PyRun_SimpleStringFlagsNon-Py_LIMITED_API
PyRun_StringNon-Py_LIMITED_API
PyRun_StringFlagsNon-Py_LIMITED_API
PySeqIter_Check
PySeqIter_New
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_LengthNon-PyPy
PySequence_List
PySequence_Repeat
PySequence_SetItem
PySequence_SetSlice
PySequence_Size
PySequence_Tuple
PySet_Add
PySet_CheckNon-PyPy
PySet_CheckExactPy_3_10
PySet_Clear
PySet_Contains
PySet_Discard
PySet_GET_SIZENeither PyPy nor GraalPy and non-Py_LIMITED_API
PySet_New
PySet_Pop
PySet_Size
PySlice_AdjustIndices
PySlice_Check
PySlice_GetIndices
PySlice_GetIndicesEx
PySlice_New
PySlice_Unpack
PyState_AddModule
PyState_FindModule
PyState_RemoveModule
PyStatus_ErrorPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_ExceptionPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_ExitPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_IsErrorPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_IsExitPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_NoMemoryPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStatus_OkPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyStructSequence_GET_ITEMNeither Py_LIMITED_API nor PyPy nor GraalPy
PyStructSequence_GetItemNon-PyPy
PyStructSequence_InitTypeNon-Py_LIMITED_API
PyStructSequence_InitType2Non-Py_LIMITED_API
PyStructSequence_New
PyStructSequence_NewTypeNon-PyPy
PyStructSequence_SET_ITEMNeither Py_LIMITED_API nor PyPy nor GraalPy
PyStructSequence_SetItemNon-PyPy
PySys_AddWarnOption
PySys_AddWarnOptionUnicode
PySys_AddXOption
PySys_FormatStderr
PySys_FormatStdout
PySys_GetObject
PySys_GetXOptions
PySys_HasWarnOptions
PySys_ResetWarnOptions
PySys_SetArgv
PySys_SetArgvEx
PySys_SetObject
PySys_SetPath
PySys_WriteStderr
PySys_WriteStdout
PyTZInfo_CheckNon-Py_LIMITED_API
Check if op is a PyDateTimeAPI.TZInfoType or subtype.
PyTZInfo_CheckExactNon-Py_LIMITED_API
Check if op’s type is exactly PyDateTimeAPI.TZInfoType.
PyThreadState_Clear
PyThreadState_Delete
PyThreadState_DeleteCurrentNon-Py_LIMITED_API
PyThreadState_GET
PyThreadState_Get
PyThreadState_GetDict
PyThreadState_New
PyThreadState_NextNon-Py_LIMITED_API and non-PyPy
PyThreadState_SetAsyncExcNon-PyPy
PyThreadState_Swap
PyTimeZone_FromOffsetNon-Py_LIMITED_API
PyTimeZone_FromOffsetAndNameNon-Py_LIMITED_API
PyTime_CheckNon-Py_LIMITED_API
Check if op is a PyDateTimeAPI.TimeType or subtype.
PyTime_CheckExactNon-Py_LIMITED_API
Check if op’s type is exactly PyDateTimeAPI.TimeType.
PyTraceBack_CheckNon-PyPy
PyTraceBack_Here
PyTraceBack_Print
PyTuple_Check
PyTuple_CheckExact
PyTuple_GET_ITEMNon-Py_LIMITED_API and neither PyPy nor GraalPy
PyTuple_GET_SIZENon-Py_LIMITED_API and non-PyPy
Macro, trading safety for speed
PyTuple_GetItem
PyTuple_GetSlice
PyTuple_New
PyTuple_Pack
PyTuple_SET_ITEMNon-Py_LIMITED_API and neither PyPy nor GraalPy
Macro, only to be used to fill in brand new tuples
PyTuple_SetItem
PyTuple_Size
PyType_Check
PyType_CheckExact
PyType_ClearCache
PyType_FastSubclass
PyType_FromModuleAndSpecPy_3_10, or Py_3_9 and non-Py_LIMITED_API
PyType_FromSpec
PyType_FromSpecWithBases
PyType_GenericAlloc
PyType_GenericNew
PyType_GetFlags
PyType_GetModulePy_3_10, or Py_3_9 and non-Py_LIMITED_API
PyType_GetModuleStatePy_3_10, or Py_3_9 and non-Py_LIMITED_API
PyType_GetSlot
PyType_HasFeature
PyType_IS_GC
PyType_IsSubtype
PyType_Modified
PyType_Ready
PyType_SUPPORTS_WEAKREFSNon-Py_LIMITED_API
PyUnicodeDecodeError_CreateNon-PyPy
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
PyUnicodeTranslateError_GetEnd
PyUnicodeTranslateError_GetObject
PyUnicodeTranslateError_GetReason
PyUnicodeTranslateError_GetStart
PyUnicodeTranslateError_SetEnd
PyUnicodeTranslateError_SetReason
PyUnicodeTranslateError_SetStart
PyUnicode_1BYTE_DATANon-Py_LIMITED_API and neither GraalPy nor PyPy
PyUnicode_2BYTE_DATANon-Py_LIMITED_API and neither GraalPy nor PyPy
PyUnicode_4BYTE_DATANon-Py_LIMITED_API and neither GraalPy nor PyPy
PyUnicode_Append
PyUnicode_AppendAndDel
PyUnicode_AsASCIIString
PyUnicode_AsCharmapString
PyUnicode_AsDecodedObject
PyUnicode_AsDecodedUnicode
PyUnicode_AsEncodedObject
PyUnicode_AsEncodedString
PyUnicode_AsEncodedUnicode
PyUnicode_AsLatin1String
PyUnicode_AsRawUnicodeEscapeString
PyUnicode_AsUCS4
PyUnicode_AsUCS4Copy
PyUnicode_AsUTF8Non-Py_LIMITED_API
PyUnicode_AsUTF8AndSizePy_3_10 or non-Py_LIMITED_API
PyUnicode_AsUTF8String
PyUnicode_AsUTF16String
PyUnicode_AsUTF32String
PyUnicode_AsUnicodeDeprecatedNon-Py_LIMITED_API and non-Py_3_12
PyUnicode_AsUnicodeAndSizeDeprecatedNon-Py_LIMITED_API and non-Py_3_12
PyUnicode_AsUnicodeEscapeString
PyUnicode_AsWideChar
PyUnicode_AsWideCharString
PyUnicode_BuildEncodingMap
PyUnicode_CheckNon-PyPy
PyUnicode_CheckExactNon-PyPy
PyUnicode_ClearFreeList
PyUnicode_Compare
PyUnicode_CompareWithASCIIString
PyUnicode_Concat
PyUnicode_Contains
PyUnicode_CopyCharactersNon-Py_LIMITED_API and non-PyPy
PyUnicode_Count
PyUnicode_DATANon-Py_LIMITED_API and neither GraalPy nor PyPy
PyUnicode_Decode
PyUnicode_DecodeASCII
PyUnicode_DecodeCharmap
PyUnicode_DecodeFSDefault
PyUnicode_DecodeFSDefaultAndSize
PyUnicode_DecodeLatin1
PyUnicode_DecodeLocale
PyUnicode_DecodeLocaleAndSize
PyUnicode_DecodeRawUnicodeEscape
PyUnicode_DecodeUTF7
PyUnicode_DecodeUTF8
PyUnicode_DecodeUTF7Stateful
PyUnicode_DecodeUTF8Stateful
PyUnicode_DecodeUTF16
PyUnicode_DecodeUTF32
PyUnicode_DecodeUTF16Stateful
PyUnicode_DecodeUTF32Stateful
PyUnicode_DecodeUnicodeEscape
PyUnicode_EncodeNon-Py_LIMITED_API
PyUnicode_EncodeASCIINon-Py_LIMITED_API
PyUnicode_EncodeCharmapNon-Py_LIMITED_API
PyUnicode_EncodeDecimalNon-Py_LIMITED_API
PyUnicode_EncodeFSDefault
PyUnicode_EncodeLatin1Non-Py_LIMITED_API
PyUnicode_EncodeLocale
PyUnicode_EncodeRawUnicodeEscapeNon-Py_LIMITED_API
PyUnicode_EncodeUTF7Non-Py_LIMITED_API
PyUnicode_EncodeUTF8Non-Py_LIMITED_API
PyUnicode_EncodeUTF16Non-Py_LIMITED_API
PyUnicode_EncodeUTF32Non-Py_LIMITED_API
PyUnicode_EncodeUnicodeEscapeNon-Py_LIMITED_API
PyUnicode_FSConverter
PyUnicode_FSDecoder
PyUnicode_FillNon-Py_LIMITED_API and non-PyPy
PyUnicode_Find
PyUnicode_FindChar
PyUnicode_Format
PyUnicode_FromEncodedObject
PyUnicode_FromFormat
PyUnicode_FromKindAndDataNon-Py_LIMITED_API
PyUnicode_FromObject
PyUnicode_FromOrdinal
PyUnicode_FromString
PyUnicode_FromStringAndSize
PyUnicode_FromUnicodeDeprecatedNon-Py_LIMITED_API and non-Py_3_12
PyUnicode_FromWideChar
PyUnicode_GET_LENGTHNon-Py_LIMITED_API and non-GraalPy
PyUnicode_GetDefaultEncoding
PyUnicode_GetLength
PyUnicode_GetSizeDeprecatedNon-Py_3_12
PyUnicode_IS_ASCIINon-Py_LIMITED_API and non-GraalPy
PyUnicode_IS_COMPACTNon-Py_LIMITED_API and non-GraalPy
PyUnicode_IS_COMPACT_ASCIINon-Py_LIMITED_API and non-GraalPy
PyUnicode_IS_READYNon-Py_LIMITED_API and neither GraalPy nor Py_3_12
PyUnicode_InternFromString
PyUnicode_InternImmortalDeprecatedNon-Py_3_12
PyUnicode_InternInPlace
PyUnicode_IsIdentifier
PyUnicode_Join
PyUnicode_KINDNon-Py_LIMITED_API and non-GraalPy
PyUnicode_NewNon-Py_LIMITED_API
PyUnicode_Partition
PyUnicode_READYNon-Py_LIMITED_API and neither Py_3_12 nor GraalPy
PyUnicode_RPartition
PyUnicode_RSplit
PyUnicode_ReadChar
PyUnicode_Replace
PyUnicode_Resize
PyUnicode_RichCompare
PyUnicode_Split
PyUnicode_Splitlines
PyUnicode_Substring
PyUnicode_Tailmatch
PyUnicode_TransformDecimalToASCIINon-Py_LIMITED_API
PyUnicode_Translate
PyUnicode_TranslateCharmapNon-Py_LIMITED_API
PyUnicode_WriteChar
PyVectorcall_CallNon-Py_LIMITED_API and Py_3_8
PyVectorcall_FunctionPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
PyVectorcall_NARGSNon-Py_LIMITED_API and Py_3_8
PyWeakref_Check
PyWeakref_CheckProxyNon-PyPy
PyWeakref_CheckRefNon-PyPy
PyWeakref_CheckRefExactNon-PyPy
PyWeakref_GetObject
PyWeakref_NewProxy
PyWeakref_NewRef
PyWideStringList_AppendPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyWideStringList_InsertPy_3_8 and non-PyPy and non-Py_LIMITED_API
PyWrapper_New
Py_AddPendingCall
Py_AtExit
Py_BuildValue
Py_BytesMain
Py_CLEAR
Py_CompileStringNon-Py_LIMITED_API and neither PyPy nor GraalPy
Py_CompileStringExFlagsNon-Py_LIMITED_API and neither PyPy nor GraalPy
Py_CompileStringFlagsNon-Py_LIMITED_API and neither PyPy nor GraalPy
Py_CompileStringObjectNon-Py_LIMITED_API
Py_DECREF
Py_DecRef
Py_DecodeLocale
Py_Ellipsis
Py_EncodeLocale
Py_EndInterpreter
Py_EnterRecursiveCallPy_3_9
Py_Exit
Py_ExitStatusExceptionPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_False
Py_FatalError
Py_Finalize
Py_FinalizeEx
Py_GETENVNon-Py_LIMITED_API and non-Py_3_11
Py_GetArgcArgvPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_GetBuildInfo
Py_GetCompiler
Py_GetCopyright
Py_GetExecPrefix
Py_GetPath
Py_GetPlatform
Py_GetPrefix
Py_GetProgramFullPath
Py_GetProgramName
Py_GetPythonHome
Py_GetRecursionLimit
Py_GetVersion
Py_INCREF
Py_IS_TYPE
Py_IncRef
Py_Initialize
Py_InitializeEx
Py_InitializeFromConfigPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_Is
Py_IsFalse
Py_IsInitialized
Py_IsNone
Py_IsTrue
Py_LeaveRecursiveCallPy_3_9
Py_Main
Py_MakePendingCalls
Py_NewInterpreter
Py_NewRefPy_3_10
Py_None
Py_NotImplemented
Py_PreInitializePy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_PreInitializeFromArgsPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_PreInitializeFromBytesArgsPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_REFCNT
Py_ReprEnter
Py_ReprLeave
Py_RunMainPy_3_8 and non-PyPy and non-Py_LIMITED_API
Py_SIZE
Py_SetPathNon-Py_3_13
Py_SetProgramName
Py_SetPythonHome
Py_SetRecursionLimit
Py_TYPE
Py_True
Py_XDECREF
Py_XINCREF
Py_XNewRefPy_3_10
_PyBytes_ResizeNon-Py_LIMITED_API
_PyCode_GetExtraNon-Py_LIMITED_API
_PyCode_SetExtraNon-Py_LIMITED_API
_PyDict_Contains_KnownHashNon-PyPy and non-Py_LIMITED_API and Py_3_10
_PyDict_NewPresizedNon-PyPy and non-Py_LIMITED_API
_PyDict_NextNon-PyPy and non-Py_LIMITED_API
_PyDict_SetItem_KnownHashNon-PyPy and non-Py_LIMITED_API
_PyErr_BadInternalCall
_PyEval_EvalFrameDefaultNon-PyPy and non-Py_LIMITED_API and non-Py_3_11
_PyEval_RequestCodeExtraIndexNon-PyPy and non-Py_LIMITED_API
_PyFloat_CASTNon-Py_LIMITED_API
_PyImport_AcquireLockNon-Py_LIMITED_API
_PyImport_FindExtensionObjectNon-Py_LIMITED_API and non-Py_3_11
_PyImport_FixupBuiltinNon-Py_LIMITED_API
_PyImport_FixupExtensionObjectNon-Py_LIMITED_API
_PyImport_IsInitializedNon-Py_LIMITED_API
_PyImport_ReleaseLockNon-Py_LIMITED_API
_PyImport_SetModuleNon-Py_LIMITED_API
_PyImport_SetModuleStringNon-Py_LIMITED_API
_PyInterpreterState_GetEvalFrameFuncPy_3_9 and non-PyPy and non-Py_LIMITED_API
Get the frame evaluation function.
_PyInterpreterState_SetEvalFrameFuncPy_3_9 and non-PyPy and non-Py_LIMITED_API
Set the frame evaluation function.
_PyLong_AsByteArrayNon-Py_LIMITED_API
_PyLong_FromByteArrayNon-Py_LIMITED_API
_PyLong_NumBitsNon-Py_LIMITED_API
_PyObject_CallFunction_SizeTNon-Py_3_13
_PyObject_CallMethod_SizeTNon-Py_3_13
_PyObject_CallNoArgPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyObject_FastCallPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyObject_FastCallTstatePy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyObject_GC_CallocNon-Py_3_11 and non-Py_LIMITED_API
_PyObject_GC_MallocNon-Py_3_11 and non-Py_LIMITED_API
_PyObject_GC_New
_PyObject_GC_NewVar
_PyObject_GC_Resize
_PyObject_MakeTpCallPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyObject_New
_PyObject_NewVar
_PyObject_VectorcallTstatePy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyRun_AnyFileObjectNon-Py_LIMITED_API
_PyRun_InteractiveLoopObjectNon-Py_LIMITED_API
_PyRun_SimpleFileObjectNon-Py_LIMITED_API
_PySequence_IterSearchNon-Py_LIMITED_API and neither PyPy nor GraalPy
_PySet_NextEntryNon-Py_LIMITED_API
_PyStack_AsDictPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_PyUnicode_COMPACT_DATANon-Py_LIMITED_API and non-GraalPy
_PyUnicode_CheckConsistencyNon-Py_LIMITED_API and neither PyPy nor GraalPy
_PyUnicode_NONCOMPACT_DATANon-Py_LIMITED_API and neither GraalPy nor PyPy
_PyUnicode_ReadyNon-Py_LIMITED_API
_Py_CheckFunctionResultPy_3_8 and neither PyPy nor GraalPy and non-Py_LIMITED_API
_Py_GetAllocatedBlocksNon-Py_3_11 and non-Py_LIMITED_API
_Py_HashBytesNeither Py_LIMITED_API nor PyPy
_Py_InitializeMainPy_3_8 and non-PyPy and non-Py_LIMITED_API
_Py_IsCoreInitializedPy_3_8 and non-PyPy and non-Py_LIMITED_API

Type Aliases§

PY_INT32_T
PY_INT64_T
PY_UINT32_T
PY_UINT64_T
PyCFunction
PyCFunctionFastPy_3_10 or non-Py_LIMITED_API
PyCFunctionFastWithKeywordsPy_3_10 or non-Py_LIMITED_API
PyCFunctionWithKeywords
PyCMethodPy_3_9 and non-Py_LIMITED_API
PyCapsule_Destructor
PyFrameStateNon-Py_LIMITED_API and neither PyPy nor GraalPy nor Py_3_11
PyObjectObRefcntNon-Py_3_12 and non-Py_GIL_DISABLED
PyStructSequenceNon-Py_LIMITED_API
Py_UCS1
Py_UCS2
Py_UCS4
Py_UNICODENon-Py_LIMITED_API
Py_hash_t
Py_intptr_t
Py_ssize_t
Py_tracefuncNon-Py_LIMITED_API
Py_uhash_t
Py_uintptr_t
_PyCFunctionFastDeprecatedPy_3_10 or non-Py_LIMITED_API
_PyCFunctionFastWithKeywordsDeprecatedPy_3_10 or non-Py_LIMITED_API
_PyFrameEvalFunctionPy_3_9 and neither Py_3_11 nor PyPy and non-Py_LIMITED_API
allocfunc
binaryfunc
descrgetfunc
descrsetfunc
destructor
freefunc
getattrfunc
getattrofunc
getbufferprocNon-Py_3_11 and non-Py_LIMITED_API
getiterfunc
getter
hashfunc
initproc
inquiry
iternextfunc
lenfunc
newfunc
objobjargproc
objobjproc
printfuncNon-Py_LIMITED_API
releasebufferprocNon-Py_3_11 and non-Py_LIMITED_API
reprfunc
richcmpfunc
sendfuncNon-Py_LIMITED_API and Py_3_10
setattrfunc
setattrofunc
setter
ssizeargfunc
ssizeobjargproc
ssizessizeargfunc
ssizessizeobjargproc
ternaryfunc
traverseproc
unaryfunc
vectorcallfuncPy_3_8
visitproc
wrapperfuncNon-Py_LIMITED_API
wrapperfunc_kwdsNon-Py_LIMITED_API

Unions§

PyMethodDefPointer
Function types used to implement Python callables.
PyUnicodeObjectDataNon-Py_LIMITED_API