Spaces:
Running on Zero
A newer version of the Gradio SDK is available: 6.20.0
Context Variables Objects {#contextvarsobjects}
::::: versionchanged 3.7.1
:::: note ::: title Note :::
In Python 3.7.1 the signatures of all context variables C APIs were changed to use PyObject{.interpreted-text role="c:type"} pointers instead of PyContext{.interpreted-text role="c:type"}, PyContextVar{.interpreted-text role="c:type"}, and PyContextToken{.interpreted-text role="c:type"}, e.g.:
// in 3.7.0:
PyContext *PyContext_New(void);
// in 3.7.1+:
PyObject *PyContext_New(void);
See 34762{.interpreted-text role="issue"} for more details.
::::
:::::
This section details the public C API for the contextvars{.interpreted-text role="mod"} module.
The C structure used to represent a
contextvars.Context{.interpreted-text role="class"} object.
The C structure used to represent a
contextvars.ContextVar{.interpreted-text role="class"} object.
The C structure used to represent a
contextvars.Token{.interpreted-text role="class"} object.
The type object representing the context type.
The type object representing the context variable type.
The type object representing the context variable token type.
Type-check macros:
Return true if o is of type
PyContext_Type{.interpreted-text role="c:data"}. o must not beNULL. This function always succeeds.
Return true if o is of type
PyContextVar_Type{.interpreted-text role="c:data"}. o must not beNULL. This function always succeeds.
Return true if o is of type
PyContextToken_Type{.interpreted-text role="c:data"}. o must not beNULL. This function always succeeds.
Context object management functions:
Create a new empty context object. Returns
NULLif an error has occurred.
Create a shallow copy of the passed ctx context object. Returns
NULLif an error has occurred.
Create a shallow copy of the current thread context. Returns
NULLif an error has occurred.
Set ctx as the current context for the current thread. Returns
0on success, and-1on error.
Deactivate the ctx context and restore the previous context as the current context for the current thread. Returns
0on success, and-1on error.
Register callback as a context object watcher for the current interpreter. Return an ID which may be passed to
PyContext_ClearWatcher{.interpreted-text role="c:func"}. In case of error (e.g. no more watcher IDs available), return-1and set an exception.::: versionadded 3.14 :::
Clear watcher identified by watcher_id previously returned from
PyContext_AddWatcher{.interpreted-text role="c:func"} for the current interpreter. Return0on success, or-1and set an exception on error (e.g. if the given watcher_id was never registered.)::: versionadded 3.14 :::
Enumeration of possible context object watcher events:
Py_CONTEXT_SWITCHED: Thecurrent context{.interpreted-text role="term"} has switched to a different context. The object passed to the watch callback is the now-currentcontextvars.Context{.interpreted-text role="class"} object, or None if no context is current.::: versionadded 3.14 :::
Context object watcher callback function. The object passed to the callback is event-specific; see
PyContextEvent{.interpreted-text role="c:type"} for details.If the callback returns with an exception set, it must return
-1; this exception will be printed as an unraisable exception usingPyErr_FormatUnraisable{.interpreted-text role="c:func"}. Otherwise it should return0.There may already be a pending exception set on entry to the callback. In this case, the callback should return
0with the same exception still set. This means the callback may not call any other API that can set an exception unless it saves and clears the exception state first, and restores it before returning.::: versionadded 3.14 :::
Context variable functions:
Create a new
ContextVarobject. The name parameter is used for introspection and debug purposes. The def parameter specifies a default value for the context variable, orNULLfor no default. If an error has occurred, this function returnsNULL.
Get the value of a context variable. Returns
-1if an error has occurred during lookup, and0if no error occurred, whether or not a value was found.If the context variable was found, value will be a pointer to it. If the context variable was not found, value will point to:
- default_value, if not
NULL;- the default value of var, if not
NULL;NULLExcept for
NULL, the function returns a new reference.
Set the value of var to value in the current context. Returns a new token object for this change, or
NULLif an error has occurred.
Reset the state of the var context variable to that it was in before
PyContextVar_Set{.interpreted-text role="c:func"} that returned the token was called. This function returns0on success and-1on error.