rlcompleter — Completion function for GNU readline

소스 코드: Lib/rlcompleter.py


The rlcompleter module defines a completion function suitable to be passed to set_completer() in the readline module.

When this module is imported on a Unix platform with the readline module available, an instance of the Completer class is automatically created and its complete() method is set as the readline completer. The method provides completion of valid Python identifiers and keywords.

예제:

>>> 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.

The rlcompleter module is designed for use with Python’s interactive mode. Unless Python is run with the -S option, the module is automatically imported and configured (see Readline 구성).

readline이 없는 플랫폼에서, 이 모듈이 정의하는 Completer 클래스는 여전히 사용자 정의 목적에 사용될 수 있습니다.

class rlcompleter.Completer

Completer 객체는 다음과 같은 메서드를 가집니다:

complete(text, state)

Return the next possible completion for text.

When called by the readline module, this method is called successively with state == 0, 1, 2, ... until the method returns None.

마침표('.')가 포함되지 않은 text로 호출되면, __main__, builtins 및 키워드(keyword 모듈에서 정의한 대로)에 현재 정의된 이름으로 완성됩니다.

If called for a dotted name, it will try to evaluate anything without obvious side-effects (functions will not be evaluated, but it can generate calls to __getattr__()) up to the last part, and find matches for the rest via the dir() function. Any exception raised during the evaluation of the expression is caught, silenced and None is returned.