rlcompleter
— Função de autocomplemento para GNU readline¶
Código-fonte: Lib/rlcompleter.py
O módulo rlcompleter
define uma função de completamento adequada para o módulo readline
completando identificadores Python válidos e palavras reservadas.
Quando este módulo é importado em uma plataforma Unix com o módulo readline
disponível, uma instância da classe Completer
é criada automaticamente e seu método complete()
é definido como o completador de readline
.
Exemplo:
>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")
>>> readline. <TAB PRESSED>
readline.__doc__ readline.get_line_buffer( readline.read_init_file(
readline.__file__ readline.insert_text( readline.set_completer(
readline.__name__ readline.parse_and_bind(
>>> readline.
O módulo rlcompleter
é projetado para uso com o modo interativo do Python. A menos que Python seja executado com a opção -S
, o módulo é automaticamente importado e configurado (veja Configuração Readline).
Em plataformas sem readline
, a classe Completer
definida por este módulo ainda pode ser usada para propósitos personalizados.
Objetos Completer¶
Os objetos Completer têm o seguinte método:
-
Completer.
complete
(text, state)¶ Retorna o state-ésimo completamento para text.
Se chamado para text que não inclui um caractere de ponto (
'.'
), ele será completado a partir dos nomes atualmente definidos em__main__
,builtins
e palavras reservadas (conforme definido pelo módulokeyword
).Se chamado por um nome pontilhado, vai tentar avaliar qualquer coisa sem efeitos colaterais óbvios (as funções não serão avaliadas, mas pode levantar chamadas para
__getattr__()
) até a última parte e encontrar correspondências para o resto por meio da funçãodir()
. Qualquer exceção levantada durante a avaliação da expressão é capturada, silenciada eNone
é retornado.