From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 18 May 2018 13:53:42 +0000 (-0700) Subject: Fix C API docs: PyCapsule_Import always set an exception on failure. (GH-6967) X-Git-Tag: v3.6.6rc1~123 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e6e440ad5cf327c663224094f3efee1cedc39d89;p=python Fix C API docs: PyCapsule_Import always set an exception on failure. (GH-6967) (cherry picked from commit bde3e0bf096219234321ca9898fc3d3aed598453) Co-authored-by: Serhiy Storchaka --- diff --git a/Doc/c-api/capsule.rst b/Doc/c-api/capsule.rst index b8642d0aba..8eb6695e22 100644 --- a/Doc/c-api/capsule.rst +++ b/Doc/c-api/capsule.rst @@ -9,6 +9,8 @@ Capsules Refer to :ref:`using-capsules` for more information on using these objects. +.. versionadded:: 3.1 + .. c:type:: PyCapsule @@ -19,6 +21,7 @@ Refer to :ref:`using-capsules` for more information on using these objects. regular import mechanism can be used to access C APIs defined in dynamically loaded modules. + .. c:type:: PyCapsule_Destructor The type of a destructor callback for a capsule. Defined as:: @@ -104,8 +107,8 @@ Refer to :ref:`using-capsules` for more information on using these objects. import the module conventionally (using :c:func:`PyImport_ImportModule`). Return the capsule's internal *pointer* on success. On failure, set an - exception and return *NULL*. However, if :c:func:`PyCapsule_Import` failed to - import the module, and *no_block* was true, no exception is set. + exception and return *NULL*. + .. c:function:: int PyCapsule_IsValid(PyObject *capsule, const char *name) @@ -122,18 +125,21 @@ Refer to :ref:`using-capsules` for more information on using these objects. Return a nonzero value if the object is valid and matches the name passed in. Return ``0`` otherwise. This function will not fail. + .. c:function:: int PyCapsule_SetContext(PyObject *capsule, void *context) Set the context pointer inside *capsule* to *context*. Return ``0`` on success. Return nonzero and set an exception on failure. + .. c:function:: int PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor) Set the destructor inside *capsule* to *destructor*. Return ``0`` on success. Return nonzero and set an exception on failure. + .. c:function:: int PyCapsule_SetName(PyObject *capsule, const char *name) Set the name inside *capsule* to *name*. If non-*NULL*, the name must @@ -142,6 +148,7 @@ Refer to :ref:`using-capsules` for more information on using these objects. Return ``0`` on success. Return nonzero and set an exception on failure. + .. c:function:: int PyCapsule_SetPointer(PyObject *capsule, void *pointer) Set the void pointer inside *capsule* to *pointer*. The pointer may not be