16.9. rlcompleter
— Fonction de complétion pour GNU readline¶
Code source : Lib/rlcompleter.py
Le module rlcompleter
définit une fonction de complétion appropriée pour le module readline
en complétant des identifiants et mots-clés Python valides.
Quand le module est importé dans une plate-forme Unix et la méthode complete()
est configurée pour assurer la complétion de readline
, une instance de classe Completer
est automatiquement créée et la méthode est configurée au finisseur complete()
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. A user can add the following lines to his or her initialization file
(identified by the PYTHONSTARTUP
environment variable) to get
automatic Tab completion:
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
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.
16.9.1. Objets pour la complétion (Completer Objects)¶
Les objets pour la complétion (Completer objects en anglais) disposent de la méthode suivante :
-
Completer.
complete
(text, state)¶ Renvoie la state-ième complétion pour text.
If called for text that doesn’t include a period character (
'.'
), it will complete from names currently defined in__main__
,__builtin__
and keywords (as defined by thekeyword
module).Quand elle est appelée pour un nom qui comporte un point, elle ne tente d’évaluer que ce qui n’a pas d’effet secondaire (les fonctions ne sont pas évaluées, mais elle peut faire des appels à
__getattr__()
), jusqu’à la dernière partie, et trouve des équivalents pour le reste via la fonctiondir()
. Toute exception levée durant l’évaluation de l’expression est interceptée, mise sous silence, etNone
est renvoyé.