rlcompleter – функция автодополнения для GNU readline¶rlcompleter – 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.