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.12/library/rlcompleter.html