This subtype of PyObject represents an opaque value, useful for C
extension modules who need to pass an opaque value (as a void*
pointer) through Python code to other C code. It is often used to make a C
function pointer defined in one module available to other modules, so the
regular import mechanism can be used to access C APIs defined in dynamically
loaded modules.

Retrieve the pointer stored in the capsule. On failure, set an exception
and return NULL.

The name parameter must compare exactly to the name stored in the capsule.
If the name stored in the capsule is NULL, the name passed in must also
be NULL. Python uses the C function strcmp() to compare capsule
names.

Import a pointer to a C object from a capsule attribute in a module. The
name parameter should specify the full name to the attribute, as in
module.attribute. The name stored in the capsule must match this
string exactly. If no_block is true, import the module without blocking
(using PyImport_ImportModuleNoBlock()). If no_block is false,
import the module conventionally (using PyImport_ImportModule()).

Return the capsule’s internal pointer on success. On failure, set an
exception and return NULL.

Determines whether or not capsule is a valid capsule. A valid capsule is
non-NULL, passes PyCapsule_CheckExact(), has a non-NULL pointer
stored in it, and its internal name matches the name parameter. (See
PyCapsule_GetPointer() for information on how capsule names are
compared.)

In other words, if PyCapsule_IsValid() returns a true value, calls to
any of the accessors (any function starting with PyCapsule_Get()) are
guaranteed to succeed.

Return a nonzero value if the object is valid and matches the name passed in.
Return 0 otherwise. This function will not fail.