Spec-Zone.ru › Python 3.11

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–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/rlcompleter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API