rlcompleter — Функция завершения для GNU readline

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


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

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

Объекты комплектации

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

Completer.complete(text, state)

Возвращает состояние-го завершения для текста.

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

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

Вернуться на верх