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
.
-
type
PyContext
¶ A estrutura C usada para representar um objeto
contextvars.Context
.
-
type
PyContextVar
¶ A estrutura C usada para representar um objeto
contextvars.ContextVar
.
-
type
PyContextToken
¶ A estrutura C usada para representar um objeto
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)¶ - Retorna valor: Nova referência.
Cria um novo objeto de contexto vazio. Retorna
NULL
se um erro ocorreu.
-
PyObject *
PyContext_Copy
(PyObject *ctx)¶ - Retorna valor: Nova referência.
Cria uma cópia rasa do objeto de contexto ctx passado. Retorna
NULL
se um erro ocorreu.
-
PyObject *
PyContext_CopyCurrent
(void)¶ - Retorna valor: Nova referência.
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.
Funções de variável de contexto:
-
PyObject *
PyContextVar_New
(const char *name, PyObject *def)¶ - Retorna valor: Nova referência.
Cria um novo objeto
ContextVar
. O parâmetro name é usado para fins de introspecção e depuração. O parâmetro def especifica um valor padrão para a variável de contexto, ouNULL
para nenhum padrão. 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
Exceto para
NULL
, a função retorna uma nova referência.
-
PyObject *
PyContextVar_Set
(PyObject *var, PyObject *value)¶ - Retorna valor: Nova referência.
Define o valor de var como value no contexto atual. Retorna um novo objeto token para esta alteração, ou
NULL
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.