API C de curses¶
curses expõe uma pequena interface C para módulos de extensão. Os usuários devem incluir o arquivo de cabeçalho py_curses.h (que não é incluído por padrão em Python.h) e import_curses() deve ser invocada, geralmente como parte da função de inicialização do módulo, para popular PyCurses_API.
Aviso
Nem a API C nem o módulo curses do Python puro são compatíveis com subinterpretadores.
-
import_curses()¶
Importa a API C do curses. A macro não precisa de ponto e vírgula para ser chamada.
Em caso de sucesso, popula o ponteiro
PyCurses_API.Em caso de falha, define
PyCurses_APIcomo NULL e levanta uma exceção. O chamador deve verificar se ocorreu um erro através dePyErr_Occurred():import_curses(); // O ponto e vírgula é opcional, mas recomendado. if (PyErr_Occurred()) { /* cleanup */ }
-
void **PyCurses_API¶
Objeto alocado dinamicamente contendo a API C do curses. Esta variável só estará disponível após a execução bem-sucedida da macro
import_curses.PyCurses_API[0]corresponde aPyCursesWindow_Type.PyCurses_API[1],PyCurses_API[2]ePyCurses_API[3]são ponteiros para funções predicativas do tipoint (*)(void).Quando chamados, esses predicados retornam se
curses.setupterm(),curses.initscr()ecurses.start_color()foram chamados, respectivamente.Veja também as macros de conveniência
PyCursesSetupTermCalled,PyCursesInitialisedePyCursesInitialisedColor.Nota
O número de entradas nesta estrutura está sujeito a alterações. Considere usar
PyCurses_API_pointerspara verificar se novos campos estão disponíveis.
-
PyCurses_API_pointers¶
O número de campos acessíveis (
4) emPyCurses_API. Esse número é incrementado sempre que novos campos são adicionados.
-
PyTypeObject PyCursesWindow_Type¶
O tipo de heap correspondente a
curses.window.
-
int PyCursesWindow_Check(PyObject *op)¶
Retorna verdadeiro se op for uma instância de
curses.window, falso caso contrário.
As macros a seguir são macros de conveniência que se expandem em instruções C. Em particular, elas só podem ser usadas como macro; ou macro, mas não como macro() ou macro();.
-
PyCursesSetupTermCalled¶
Macro que verifica se
curses.setupterm()foi chamada.A expansão de macro é aproximadamente equivalente a:
{ typedef int (*predicate_t)(void); predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1]; if (!was_setupterm_called()) { return NULL; } }
-
PyCursesInitialised¶
Macro que verifica se
curses.initscr()foi chamada.A expansão de macro é aproximadamente equivalente a:
{ typedef int (*predicate_t)(void); predicate_t was_initscr_called = (predicate_t)PyCurses_API[2]; if (!was_initscr_called()) { return NULL; } }
-
PyCursesInitialisedColor¶
Macro que verifica se
curses.start_color()foi chamada.A expansão de macro é aproximadamente equivalente a:
{ typedef int (*predicate_t)(void); predicate_t was_start_color_called = (predicate_t)PyCurses_API[3]; if (!was_start_color_called()) { return NULL; } }
Dados internos¶
Os seguintes objetos são expostos pela API C, mas devem ser considerados apenas para uso interno.
-
PyCurses_CAPSULE_NAME¶
Nome da cápsula do curses a ser passada para
PyCapsule_Import().Uso interno apenas. Use
import_cursesem vez disso.