rlcompleter --- Completion function for GNU readline¶
Code source : 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.
Exemple :
>>> 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 configuration).
Sur les plate-formes sans readline, la classe Completer définie par ce module peut quand même être utilisée pour des fins personnalisées.
- class rlcompleter.Completer¶
Les objets pour la complétion (Completer objects en anglais) disposent de la méthode suivante :
- complete(text, state)¶
Return the next possible completion for text.
When called by the
readlinemodule, this method is called successively withstate == 0, 1, 2, ...until the method returnsNone.Si text ne contient pas un caractère point (
'.'), il puise dans les noms actuellement définis dans__main__,builtinsainsi que les mots-clés (ainsi que définis par le modulekeyword)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 thedir()function. Any exception raised during the evaluation of the expression is caught, silenced andNoneis returned.