rlcompleter — Функция автодополнения для 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.
-
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/rlcompleter.html