6.8. rlcompleter — Função de completamento 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.

6.8.1. Objetos Completer

Os objetos Completer têm o seguinte método:

Completer.complete(text, state)

Retorna o state-ésim 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ódulo keyword).

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ção dir(). Qualquer exceção levantada durante a avaliação da expressão é capturada, silenciada e None é retornado.