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 the "keyword"
   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 fonction "dir()". Toute exception
   levée durant l’évaluation de l’expression est interceptée, mise
   sous silence, et "None" est renvoyé.
