Spaces:
Running on Zero
A newer version of the Gradio SDK is available: 6.20.0
Capsules
::: index pair: object; Capsule :::
Refer to using-capsules{.interpreted-text role="ref"} for more information on using these objects.
::: versionadded 3.1 :::
This subtype of
PyObject{.interpreted-text role="c:type"} represents an opaque value, useful for C extension modules which need to pass an opaque value (as avoid*{.interpreted-text role="c:expr"} 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.
The type object corresponding to capsule objects. This is the same object as
types.CapsuleType{.interpreted-text role="class"} in the Python layer.
The type of a destructor callback for a capsule. Defined as:
typedef void (*PyCapsule_Destructor)(PyObject *);See
PyCapsule_New{.interpreted-text role="c:func"} for the semantics of PyCapsule_Destructor callbacks.
Return true if its argument is a
PyCapsule{.interpreted-text role="c:type"}. This function always succeeds.
Create a
PyCapsule{.interpreted-text role="c:type"} encapsulating the pointer. The pointer argument may not beNULL.On failure, set an exception and return
NULL.The name string may either be
NULLor a pointer to a valid C string. If non-NULL, this string must outlive the capsule. (Though it is permitted to free it inside the destructor.)If the destructor argument is not
NULL, it will be called with the capsule as its argument when it is destroyed.If this capsule will be stored as an attribute of a module, the name should be specified as
modulename.attributename. This will enable other modules to import the capsule usingPyCapsule_Import{.interpreted-text role="c:func"}.
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 beNULL. Python uses the C function!strcmp{.interpreted-text role="c:func"} to compare capsule names.
Return the current destructor stored in the capsule. On failure, set an exception and return
NULL.It is legal for a capsule to have a
NULLdestructor. This makes aNULLreturn code somewhat ambiguous; usePyCapsule_IsValid{.interpreted-text role="c:func"} orPyErr_Occurred{.interpreted-text role="c:func"} to disambiguate.
Return the current context stored in the capsule. On failure, set an exception and return
NULL.It is legal for a capsule to have a
NULLcontext. This makes aNULLreturn code somewhat ambiguous; usePyCapsule_IsValid{.interpreted-text role="c:func"} orPyErr_Occurred{.interpreted-text role="c:func"} to disambiguate.
Return the current name stored in the capsule. On failure, set an exception and return
NULL.It is legal for a capsule to have a
NULLname. This makes aNULLreturn code somewhat ambiguous; usePyCapsule_IsValid{.interpreted-text role="c:func"} orPyErr_Occurred{.interpreted-text role="c:func"} to disambiguate.
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.This function splits name on the
.character, and imports the first element. It then processes further elements using attribute lookups.Return the capsule's internal pointer on success. On failure, set an exception and return
NULL.:::: note ::: title Note :::
If name points to an attribute of some submodule or subpackage, this submodule or subpackage must be previously imported using other means (for example, by using
PyImport_ImportModule{.interpreted-text role="c:func"}) for the attribute lookups to succeed. ::::::: versionchanged 3.3 no_block has no effect anymore. :::
Determines whether or not capsule is a valid capsule. A valid capsule is non-
NULL, passesPyCapsule_CheckExact{.interpreted-text role="c:func"}, has a non-NULLpointer stored in it, and its internal name matches the name parameter. (SeePyCapsule_GetPointer{.interpreted-text role="c:func"} for information on how capsule names are compared.)In other words, if
PyCapsule_IsValid{.interpreted-text role="c:func"} returns a true value, calls to any of the accessors (any function starting withPyCapsule_Get) are guaranteed to succeed.Return a nonzero value if the object is valid and matches the name passed in. Return
0otherwise. This function will not fail.
Set the context pointer inside capsule to context.
Return
0on success. Return nonzero and set an exception on failure.
Set the destructor inside capsule to destructor.
Return
0on success. Return nonzero and set an exception on failure.
Set the name inside capsule to name. If non-
NULL, the name must outlive the capsule. If the previous name stored in the capsule was notNULL, no attempt is made to free it.Return
0on success. Return nonzero and set an exception on failure.
Set the void pointer inside capsule to pointer. The pointer may not be
NULL.Return
0on success. Return nonzero and set an exception on failure.