Objetos de variables de contexto¶
Nota
Distinto en la versión 3.7.1:En Python 3.7.1, las firmas de todas las variables de contexto C APIs fueron cambiadas para usar punteros PyObject
en lugar de PyContext
, PyContextVar
, y PyContextToken
, por ejemplo:
// in 3.7.0:
PyContext *PyContext_New(void);
// in 3.7.1+:
PyObject *PyContext_New(void);
Ver bpo-34762 para más detalles.
Nuevo en la versión 3.7.
Esta sección detalla la API pública de C para el módulo contextvars
.
-
type
PyContext
¶ La estructura C utilizada para representar un objeto
contextvars.Context
.
-
type
PyContextVar
¶ La estructura C utilizada para representar un objeto
contextvars.ContextVar
.
-
type
PyContextToken
¶ La estructura C solía representar un objeto
contextvars.Token
.
-
PyTypeObject
PyContext_Type
¶ El objeto de tipo que representa el tipo context.
-
PyTypeObject
PyContextVar_Type
¶ El objeto tipo que representa el tipo variable de contexto.
-
PyTypeObject
PyContextToken_Type
¶ El tipo objeto que representa el tipo token de variable de contexto.
Macros de verificación de tipo:
-
int
PyContext_CheckExact
(PyObject *o)¶ Retorna verdadero si o es de tipo
PyContext_Type
. o no debe serNULL
. Esta función siempre finaliza con éxito.
-
int
PyContextVar_CheckExact
(PyObject *o)¶ Retorna verdadero si o es de tipo
PyContextVar_Type
. o no debe serNULL
. Esta función siempre finaliza con éxito.
-
int
PyContextToken_CheckExact
(PyObject *o)¶ Retorna verdadero si o es de tipo
PyContextToken_Type
. o no debe serNULL
. Esta función siempre finaliza con éxito.
Funciones de gestión de objetos de contexto:
-
PyObject *
PyContext_New
(void)¶ - Return value: New reference.
Crea un nuevo objeto de contexto vacío. Retorna
NULL
si se ha producido un error.
-
PyObject *
PyContext_Copy
(PyObject *ctx)¶ - Return value: New reference.
Crea una copia superficial del objeto de contexto ctx pasado. Retorna
NULL
si se ha producido un error.
-
PyObject *
PyContext_CopyCurrent
(void)¶ - Return value: New reference.
Crea una copia superficial del contexto actual del hilo. Retorna
NULL
si se ha producido un error.
-
int
PyContext_Enter
(PyObject *ctx)¶ Establece ctx como el contexto actual para el hilo actual. Retorna
0
en caso de éxito y-1
en caso de error.
-
int
PyContext_Exit
(PyObject *ctx)¶ Desactiva el contexto ctx y restaura el contexto anterior como el contexto actual para el hilo actual. Retorna
0
en caso de éxito y-1
en caso de error.
Funciones variables de contexto:
-
PyObject *
PyContextVar_New
(const char *name, PyObject *def)¶ - Return value: New reference.
Crea un nuevo objeto
ContextVar
. El parámetro name se usa para propósitos de introspección y depuración. El parámetro def especifica el valor predeterminado para la variable de contexto, oNULL
para no especificar un valor predeterminado. Si se ha producido un error, esta función retornaNULL
.
-
int
PyContextVar_Get
(PyObject *var, PyObject *default_value, PyObject **value)¶ Obtiene el valor de una variable de contexto. Retorna
-1
si se produjo un error durante la búsqueda y0
si no se produjo ningún error, se haya encontrado o no un valor.Si se encontró la variable de contexto, value será un puntero a ella. Si la variable de contexto not se encontró, value apuntará a:
default_value, si no es
NULL
;el valor predeterminado de var, si no es
NULL
;NULL
A excepción de
NULL
, la función retorna una nueva referencia.
-
PyObject *
PyContextVar_Set
(PyObject *var, PyObject *value)¶ - Return value: New reference.
Establece el valor de var en value en el contexto actual. Retorna un nuevo objeto token para este cambio, o
NULL
si se ha producido un error.
-
int
PyContextVar_Reset
(PyObject *var, PyObject *token)¶ Restablece el estado de la variable de contexto var a la que estaba antes
PyContextVar_Set()
que retornó el token fue llamado. Esta función retorna0
en caso de éxito y-1
en caso de error.