René's URL Explorer Experiment


Title: Using the C API: Assorted topics — Python 3.15.0a5 documentation

Open Graph Title: Using the C API: Assorted topics

Description: The tutorial walked you through creating a C API extension module, but left many areas unexplained. This document looks at several concepts that you’ll need to learn in order to write more complex ...

Open Graph Description: The tutorial walked you through creating a C API extension module, but left many areas unexplained. This document looks at several concepts that you’ll need to learn in order to write more complex ...

Mail addresses
philbrick@hks.com

Opengraph URL: https://docs.python.org/3/extending/extending.html

direct link

Domain: docs.python.org

og:typewebsite
og:site_namePython documentation
og:image:width1146
og:image:height600
og:imagehttps://docs.python.org/3.15/_images/social_previews/summary_extending_extending_45b9907a.png
og:image:altThe tutorial walked you through creating a C API extension module, but left many areas unexplained. This document looks at several concepts that you’ll need to learn in order to write more complex ...
twitter:cardsummary_large_image
theme-color#3776ab
readthedocs-addons-api-version1

Links:

https://www.python.org/
Table of Contentshttps://docs.python.org/dev/contents.html
Using the C API: Assorted topicshttps://docs.python.org/dev/extending/extending.html
Errors and Exceptionshttps://docs.python.org/dev/extending/extending.html#errors-and-exceptions
Embedding an extensionhttps://docs.python.org/dev/extending/extending.html#embedding-an-extension
Calling Python Functions from Chttps://docs.python.org/dev/extending/extending.html#calling-python-functions-from-c
Extracting Parameters in Extension Functionshttps://docs.python.org/dev/extending/extending.html#extracting-parameters-in-extension-functions
Keyword Parameters for Extension Functionshttps://docs.python.org/dev/extending/extending.html#keyword-parameters-for-extension-functions
Building Arbitrary Valueshttps://docs.python.org/dev/extending/extending.html#building-arbitrary-values
Reference Countshttps://docs.python.org/dev/extending/extending.html#reference-counts
Reference Counting in Pythonhttps://docs.python.org/dev/extending/extending.html#reference-counting-in-python
Ownership Ruleshttps://docs.python.org/dev/extending/extending.html#ownership-rules
Thin Icehttps://docs.python.org/dev/extending/extending.html#thin-ice
NULL Pointershttps://docs.python.org/dev/extending/extending.html#null-pointers
Writing Extensions in C++https://docs.python.org/dev/extending/extending.html#writing-extensions-in-c
Providing a C API for an Extension Modulehttps://docs.python.org/dev/extending/extending.html#providing-a-c-api-for-an-extension-module
Your first C API extension modulehttps://docs.python.org/dev/extending/first-extension-module.html
Defining Extension Types: Tutorialhttps://docs.python.org/dev/extending/newtypes_tutorial.html
Report a bughttps://docs.python.org/dev/bugs.html
Show source https://github.com/python/cpython/blob/main/Doc/extending/extending.rst?plain=1
indexhttps://docs.python.org/dev/genindex.html
moduleshttps://docs.python.org/dev/py-modindex.html
nexthttps://docs.python.org/dev/extending/newtypes_tutorial.html
previoushttps://docs.python.org/dev/extending/first-extension-module.html
Pythonhttps://www.python.org/
3.15.0a5 Documentationhttps://docs.python.org/dev/index.html
Extending and Embedding the Python Interpreterhttps://docs.python.org/dev/extending/index.html
Using the C API: Assorted topicshttps://docs.python.org/dev/extending/extending.html
https://docs.python.org/dev/extending/extending.html#using-the-c-api-assorted-topics
tutorialhttps://docs.python.org/dev/extending/first-extension-module.html#first-extension-module
https://docs.python.org/dev/extending/extending.html#errors-and-exceptions
sys.exc_info()https://docs.python.org/dev/library/sys.html#sys.exc_info
PyErr_SetString()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_SetString
PyExc_ZeroDivisionErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_ZeroDivisionError
PyErr_SetFromErrno()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_SetFromErrno
PyErr_SetObject()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_SetObject
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
PyErr_Occurred()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_Occurred
PyErr_Occurred()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_Occurred
PyErr_Clear()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_Clear
PyErr_Clear()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_Clear
PyErr_NoMemory()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_NoMemory
PyLong_FromLong()https://docs.python.org/dev/c-api/long.html#c.PyLong_FromLong
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
Py_XDECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_XDECREF
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
PyExc_ZeroDivisionErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_ZeroDivisionError
PyExc_TypeErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_TypeError
PyExc_OSErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_OSError
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
PyExc_TypeErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_TypeError
PyExc_ValueErrorhttps://docs.python.org/dev/c-api/exceptions.html#c.PyExc_ValueError
PyErr_NewException()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_NewException
Py_mod_exechttps://docs.python.org/dev/c-api/module.html#c.Py_mod_exec
Py_mod_exechttps://docs.python.org/dev/c-api/module.html#c.Py_mod_exec
ImportErrorhttps://docs.python.org/dev/library/exceptions.html#ImportError
PyErr_NewException()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_NewException
Exceptionhttps://docs.python.org/dev/library/exceptions.html#Exception
Built-in Exceptionshttps://docs.python.org/dev/library/exceptions.html#bltin-exceptions
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
PyMODINIT_FUNChttps://docs.python.org/dev/c-api/extension-modules.html#c.PyMODINIT_FUNC
PyErr_SetString()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_SetString
https://docs.python.org/dev/extending/extending.html#embedding-an-extension
https://docs.python.org/dev/extending/extending.html#calling-python-functions-from-c
-chttps://docs.python.org/dev/using/cmdline.html#cmdoption-c
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
METH_VARARGShttps://docs.python.org/dev/c-api/structures.html#c.METH_VARARGS
PyMethodDef.ml_flagshttps://docs.python.org/dev/c-api/structures.html#c.PyMethodDef.ml_flags
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
Extracting Parameters in Extension Functionshttps://docs.python.org/dev/extending/extending.html#parsetuple
Py_XINCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_XINCREF
Py_XDECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_XDECREF
Reference Countshttps://docs.python.org/dev/extending/extending.html#refcounts
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
PyErr_Clear()https://docs.python.org/dev/c-api/exceptions.html#c.PyErr_Clear
PyObject_CallObject()https://docs.python.org/dev/c-api/call.html#c.PyObject_CallObject
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
PyObject_Call()https://docs.python.org/dev/c-api/call.html#c.PyObject_Call
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
https://docs.python.org/dev/extending/extending.html#extracting-parameters-in-extension-functions
tutorialhttps://docs.python.org/dev/extending/first-extension-module.html#first-extension-module
METH_Ohttps://docs.python.org/dev/c-api/structures.html#c.METH_O
METH_VARARGShttps://docs.python.org/dev/c-api/structures.html#c.METH_VARARGS
tuplehttps://docs.python.org/dev/library/stdtypes.html#tuple
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
Parsing arguments and building valueshttps://docs.python.org/dev/c-api/arg.html#arg-parsing
strhttps://docs.python.org/dev/library/stdtypes.html#str
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
https://docs.python.org/dev/extending/extending.html#keyword-parameters-for-extension-functions
keyword argumentshttps://docs.python.org/dev/glossary.html#term-keyword-argument
METH_KEYWORDShttps://docs.python.org/dev/c-api/structures.html#c.METH_KEYWORDS
METH_VARARGShttps://docs.python.org/dev/c-api/structures.html#c.METH_VARARGS
PyArg_ParseTupleAndKeywords()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTupleAndKeywords
PyArg_ParseTupleAndKeywords()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTupleAndKeywords
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
PyArg_ParseTupleAndKeywords()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTupleAndKeywords
TypeErrorhttps://docs.python.org/dev/library/exceptions.html#TypeError
https://docs.python.org/dev/extending/extending.html#building-arbitrary-values
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
PyArg_ParseTuple()https://docs.python.org/dev/c-api/arg.html#c.PyArg_ParseTuple
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
https://docs.python.org/dev/extending/extending.html#reference-counts
gchttps://docs.python.org/dev/library/gc.html#module-gc
collect()https://docs.python.org/dev/library/gc.html#gc.collect
https://docs.python.org/dev/extending/extending.html#reference-counting-in-python
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
[1]https://docs.python.org/dev/extending/extending.html#borrow
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
[2]https://docs.python.org/dev/extending/extending.html#dont-check-refcount
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
https://docs.python.org/dev/extending/extending.html#ownership-rules
PyLong_FromLong()https://docs.python.org/dev/c-api/long.html#c.PyLong_FromLong
Py_BuildValue()https://docs.python.org/dev/c-api/arg.html#c.Py_BuildValue
PyLong_FromLong()https://docs.python.org/dev/c-api/long.html#c.PyLong_FromLong
PyObject_GetAttrString()https://docs.python.org/dev/c-api/object.html#c.PyObject_GetAttrString
PyTuple_GetItem()https://docs.python.org/dev/c-api/tuple.html#c.PyTuple_GetItem
PyList_GetItem()https://docs.python.org/dev/c-api/list.html#c.PyList_GetItem
PyDict_GetItem()https://docs.python.org/dev/c-api/dict.html#c.PyDict_GetItem
PyDict_GetItemString()https://docs.python.org/dev/c-api/dict.html#c.PyDict_GetItemString
PyImport_AddModule()https://docs.python.org/dev/c-api/import.html#c.PyImport_AddModule
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
PyTuple_SetItem()https://docs.python.org/dev/c-api/tuple.html#c.PyTuple_SetItem
PyList_SetItem()https://docs.python.org/dev/c-api/list.html#c.PyList_SetItem
PyDict_SetItem()https://docs.python.org/dev/c-api/dict.html#c.PyDict_SetItem
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
https://docs.python.org/dev/extending/extending.html#thin-ice
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
PyList_SetItem()https://docs.python.org/dev/c-api/list.html#c.PyList_SetItem
PyList_SetItem()https://docs.python.org/dev/c-api/list.html#c.PyList_SetItem
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
tp_deallochttps://docs.python.org/dev/c-api/typeobj.html#c.PyTypeObject.tp_dealloc
tp_deallochttps://docs.python.org/dev/c-api/typeobj.html#c.PyTypeObject.tp_dealloc
tp_finalizehttps://docs.python.org/dev/c-api/typeobj.html#c.PyTypeObject.tp_finalize
PEP 442https://peps.python.org/pep-0442/
PyList_SetItem()https://docs.python.org/dev/c-api/list.html#c.PyList_SetItem
global lockhttps://docs.python.org/dev/glossary.html#term-global-interpreter-lock
Py_BEGIN_ALLOW_THREADShttps://docs.python.org/dev/c-api/init.html#c.Py_BEGIN_ALLOW_THREADS
Py_END_ALLOW_THREADShttps://docs.python.org/dev/c-api/init.html#c.Py_END_ALLOW_THREADS
https://docs.python.org/dev/extending/extending.html#null-pointers
Py_INCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_INCREF
Py_DECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_DECREF
Py_XINCREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_XINCREF
Py_XDECREF()https://docs.python.org/dev/c-api/refcounting.html#c.Py_XDECREF
[3]https://docs.python.org/dev/extending/extending.html#old-calling-convention
https://docs.python.org/dev/extending/extending.html#writing-extensions-in-c
https://docs.python.org/dev/extending/extending.html#providing-a-c-api-for-an-extension-module
PyCapsule_New()https://docs.python.org/dev/c-api/capsule.html#c.PyCapsule_New
PyCapsule_Import()https://docs.python.org/dev/c-api/capsule.html#c.PyCapsule_Import
tutorialhttps://docs.python.org/dev/extending/first-extension-module.html#first-extension-module
mod_exechttps://docs.python.org/dev/c-api/module.html#c.Py_mod_exec
mod_exechttps://docs.python.org/dev/c-api/module.html#c.Py_mod_exec
Capsuleshttps://docs.python.org/dev/c-api/capsule.html#capsules
1https://docs.python.org/dev/extending/extending.html#id1
2https://docs.python.org/dev/extending/extending.html#id2
3https://docs.python.org/dev/extending/extending.html#id3
Table of Contentshttps://docs.python.org/dev/contents.html
Using the C API: Assorted topicshttps://docs.python.org/dev/extending/extending.html
Errors and Exceptionshttps://docs.python.org/dev/extending/extending.html#errors-and-exceptions
Embedding an extensionhttps://docs.python.org/dev/extending/extending.html#embedding-an-extension
Calling Python Functions from Chttps://docs.python.org/dev/extending/extending.html#calling-python-functions-from-c
Extracting Parameters in Extension Functionshttps://docs.python.org/dev/extending/extending.html#extracting-parameters-in-extension-functions
Keyword Parameters for Extension Functionshttps://docs.python.org/dev/extending/extending.html#keyword-parameters-for-extension-functions
Building Arbitrary Valueshttps://docs.python.org/dev/extending/extending.html#building-arbitrary-values
Reference Countshttps://docs.python.org/dev/extending/extending.html#reference-counts
Reference Counting in Pythonhttps://docs.python.org/dev/extending/extending.html#reference-counting-in-python
Ownership Ruleshttps://docs.python.org/dev/extending/extending.html#ownership-rules
Thin Icehttps://docs.python.org/dev/extending/extending.html#thin-ice
NULL Pointershttps://docs.python.org/dev/extending/extending.html#null-pointers
Writing Extensions in C++https://docs.python.org/dev/extending/extending.html#writing-extensions-in-c
Providing a C API for an Extension Modulehttps://docs.python.org/dev/extending/extending.html#providing-a-c-api-for-an-extension-module
Your first C API extension modulehttps://docs.python.org/dev/extending/first-extension-module.html
Defining Extension Types: Tutorialhttps://docs.python.org/dev/extending/newtypes_tutorial.html
Report a bughttps://docs.python.org/dev/bugs.html
Show source https://github.com/python/cpython/blob/main/Doc/extending/extending.rst?plain=1
indexhttps://docs.python.org/dev/genindex.html
moduleshttps://docs.python.org/dev/py-modindex.html
nexthttps://docs.python.org/dev/extending/newtypes_tutorial.html
previoushttps://docs.python.org/dev/extending/first-extension-module.html
Pythonhttps://www.python.org/
3.15.0a5 Documentationhttps://docs.python.org/dev/index.html
Extending and Embedding the Python Interpreterhttps://docs.python.org/dev/extending/index.html
Using the C API: Assorted topicshttps://docs.python.org/dev/extending/extending.html
Copyrighthttps://docs.python.org/dev/copyright.html
History and Licensehttps://docs.python.org/license.html
Please donate.https://www.python.org/psf/donations/
Found a bughttps://docs.python.org/bugs.html
Sphinxhttps://www.sphinx-doc.org/

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.