Документация Python неофициальный перевод
Содержание страницы

16.6. rlcompleter – Функция автодополнения для GNU readlinerlcompleter – Completion function for GNU readline

Модуль rlcompleter определяет функцию автодополнения, подходящую для readline модуля, дополняя корректные идентификаторы и ключевые слова Python.

Когда этот модуль импортируется на платформе Unix с доступным модулем readline, автоматически создаётся экземпляр класса Completer, и его метод complete() устанавливается как функция автодополнения readline.

Пример:

>>> 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.

Модуль rlcompleter предназначен для использования в интерактивном режиме Python. Пользователь может добавить следующие строки в свой файл инициализации (определяемый переменной окружения PYTHONSTARTUP), чтобы получить автоматическое дополнение по Tab:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

На платформах без readline класс Completer, определённый в этом модуле, всё ещё может использоваться для пользовательских целей.

16.6.1. Объекты CompleterCompleter Objects

Объекты Completer имеют следующий метод:

Completer.complete(text, state)

Возвращает state-е завершение для text.

Если вызвана для text, не содержащего точку ('.'), то будет выполнять автодополнение из имён, определённых в __main__, builtins и ключевых слов (как определено модулем keyword).

Если вызвана для имени с точкой, она попытается вычислить всё без очевидных побочных эффектов (функции не будут вычисляться, но могут генерироваться вызовы __getattr__()) до последней части и найти совпадения для остального через функцию dir(). Любое исключение, возникшее при вычислении выражения, перехватывается, подавляется и возвращается None.