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

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

Исходный код: Lib/rlcompleter.py


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

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

Пример:

>>> 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. Если Python не запущен с опцией -S, модуль автоматически импортируется и настраивается (см. конфигурацию Readline).

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

class rlcompleter.Completer

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

complete(text, state)

Возвращает следующее возможное автодополнение для text.

При вызове модулем readline этот метод вызывается последовательно с state == 0, 1, 2, ... до тех пор, пока метод не вернёт None.

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

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