Objetos de variables de contexto¶
Added in version 3.7.
Distinto en la versión 3.7.1:
Nota
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.
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.