rlcompleter — Vervollständigungsfunktion für GNU readline

Quellcode: Lib/rlcompleter.py


Das Modul rlcompleter definiert eine Vervollständigungsfunktion, die für die Übergabe an set_completer() im Modul readline geeignet ist.

Wenn dieses Modul auf einer Unix-Plattform mit dem verfügbaren Modul readline importiert wird, wird automatisch eine Instanz der Klasse Completer erstellt und ihre Methode complete() als readline-Vervollständiger gesetzt. Die Methode bietet die Vervollständigung von gültigen Python- Bezeichnern und Schlüsselwörtern.

Beispiel

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

Das Modul rlcompleter ist für die Verwendung im interaktiven Modus von Python konzipiert. Sofern Python nicht mit der Option -S ausgeführt wird, wird das Modul automatisch importiert und konfiguriert (siehe Readline-Konfiguration).

Auf Plattformen ohne readline kann die von diesem Modul definierte Klasse Completer weiterhin für benutzerdefinierte Zwecke verwendet werden.

class rlcompleter.Completer

Completer-Objekte haben die folgende Methode

complete(text, state)

Gibt die nächste mögliche Vervollständigung für text zurück.

Wenn diese Methode vom Modul readline aufgerufen wird, wird sie nacheinander mit state == 0, 1, 2, ... aufgerufen, bis die Methode None zurückgibt.

Wenn sie für text aufgerufen wird, das kein Punktzeichen ('.') enthält, werden Namen vervollständigt, die aktuell in __main__, builtins und Schlüsselwörtern (wie vom Modul keyword definiert) definiert sind.

Wenn sie für einen Punktnamen aufgerufen wird, wird versucht, alles ohne offensichtliche Nebeneffekte zu evaluieren (Funktionen werden nicht ausgewertet, aber es können Aufrufe von __getattr__() generiert werden) bis zum letzten Teil, und für den Rest werden über die Funktion dir() Übereinstimmungen gefunden. Jede Ausnahme, die während der Auswertung des Ausdrucks auftritt, wird abgefangen, unterdrückt und es wird None zurückgegeben.