Objetos de variáveis de contexto¶
Nota
Alterado na versão 3.7.1:No Python 3.7.1, as assinaturas de todas as APIs C de variáveis de contexto foram alteradas para usar ponteiros PyObject
em vez de PyContext
, PyContextVar
e PyContextToken
. Por exemplo:
// in 3.7.0:
PyContext *PyContext_New(void);
// in 3.7.1+:
PyObject *PyContext_New(void);
Veja bpo-34762 para mais detalhes.
Novo na versão 3.7.
Esta seção detalha a API C pública para o módulo contextvars
.
-
PyContext
¶ A estrutura C usada para representar um objeto
contextvars.Context
.
-
PyContextVar
¶ A estrutura C usada para representar um objeto
contextvars.ContextVar
.
-
PyContextToken
¶ A estrutura C usada para representar um objeto :class: contextvars.Token
-
PyTypeObject
PyContext_Type
¶ O objeto de tipo que representa o tipo de contexto.
-
PyTypeObject
PyContextVar_Type
¶ O objeto de tipo que representa o tipo de variável de contexto.
-
PyTypeObject
PyContextToken_Type
¶ O objeto de tipo que representa o tipo de token de variável de contexto.
Macros de verificação de tipo:
-
int
PyContext_CheckExact
(PyObject *o)¶ Retorna verdadeiro se o for do tipo
PyContext_Type
. o não deve serNULL
. Esta função sempre tem sucesso.
-
int
PyContextVar_CheckExact
(PyObject *o)¶ Retorna verdadeiro se o for do tipo
PyContextVar_Type
. o não deve serNULL
. Esta função sempre tem sucesso.
-
int
PyContextToken_CheckExact
(PyObject *o)¶ Retorna verdadeiro se o for do tipo
PyContextToken_Type
. o não deve serNULL
. Esta função sempre tem sucesso.
Funções de gerenciamento de objetos de contexto:
-
PyObject *
PyContext_New
(void)¶ - Return value: New reference.
Cria um novo objeto de contexto vazio. Retorna
NULL
se um erro ocorreu.
-
PyObject *
PyContext_Copy
(PyObject *ctx)¶ - Return value: New reference.
Cria uma copia raza do objeto de contexto ctx passado. Retorna
NULL
se um erro ocorreu.
-
PyObject *
PyContext_CopyCurrent
(void)¶ - Return value: New reference.
Cria uma cópia rasa do contexto da thread atual. Retorna
NULL
se um erro ocorreu.
-
int
PyContext_Enter
(PyObject *ctx)¶ Defina ctx como o contexto atual para o thread atual. Retorna
0
em caso de sucesso e-1
em caso de erro.
-
int
PyContext_Exit
(PyObject *ctx)¶ Desativa o contexto ctx e restaura o contexto anterior como o contexto atual para a thread atual. Retorna
0
em caso de sucesso e-1
em caso de erro.
-
int
PyContext_ClearFreeList
()¶ Clear the context variable free list. Return the total number of freed items. This function always succeeds.
Funções de variável de contexto:
-
PyObject *
PyContextVar_New
(const char *name, PyObject *def)¶ - Return value: New reference.
Cria um novo objeto
ContextVar
. O parâmetro name é usado para fins de introspecção e depuração. O parâmetro def pode opcionalmente especificar o valor padrão para a variável de contexto. Se ocorrer um erro, esta função retornaNULL
.
-
int
PyContextVar_Get
(PyObject *var, PyObject *default_value, PyObject **value)¶ Obtém o valor de uma variável de contexto. Retorna
-1
se um erro ocorreu durante a pesquisa, e0
se nenhum erro ocorreu, se um valor foi encontrado ou não.Se a variável de contexto foi encontrada, value será um ponteiro para ela. Se a variável de contexto não foi encontrada, value apontará para:
default_value, se não for
NULL
;o valor padrão de var, se não for
NULL
;NULL
Se o valor for encontrado, a função criará uma nova referência para ele.
-
PyObject *
PyContextVar_Set
(PyObject *var, PyObject *value)¶ - Return value: New reference.
Define o valor de var como value no contexto atual. Retorna um ponteiro para um objeto
PyObject
, ouNULL
se um erro ocorreu.
-
int
PyContextVar_Reset
(PyObject *var, PyObject *token)¶ Redefine o estado da variável de contexto var para o estado que anterior a
PyContextVar_Set()
que retornou o token foi chamado. Esta função retorna0
em caso de sucesso e-1
em caso de erro.