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. Пользователь может добавить следующие строки в свой файл инициализации (определяемый переменной среды PYTHONSTARTUP), чтобы получить автоматическое завершение Tab:
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
На платформах без readline, класс Completer , определённый в этом модуле, всё ещё может использоваться для пользовательских целей.
1. Объекты завершителя
Объекты завершителя имеют следующий метод:
-
Completer.complete(text, state) -
Возвращает состояние-е завершение для текста.
Если вызывается для текста, не содержащего символа точки (
'.'), он будет завершать имена, текущие определены в__main__,__builtin__и ключевых словах (как определено модулемkeyword).Если вызывается для имени с точкой, он попытается оценить всё без очевидных побочных эффектов (функции не будут оценены, но могут генерировать вызовы к
__getattr__()) до последней части, и найти совпадения для остальной части через функциюdir(). Любое исключение, возникшее во время оценки выражения, перехватывается, подавляется и возвращаетсяNone.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/rlcompleter.html