rlcompleter — Función de completado para GNU readline

Código fuente: Lib/rlcompleter.py


El módulo rlcompleter define una función de completado adecuada para el módulo readline completando los identificadores y las palabras clave de Python válidas.

Cuando este módulo es importado en una plataforma Unix con el módulo readline disponible, una instancia de la clase Completer es automáticamente creada y su método complete() es fijado como el método de completado de readline.

Ejemplo:

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

El módulo rlcompleter está diseñado para usarse con el modo interactivo de Python. A menos que Python sea ejecutado con la opción -S, el módulo es automáticamente importado y configurado (ver Configuración de Readline).

En plataformas sin readline, la clase Completer definida por este módulo puede ser usada igualmente para fines personalizados.

Objetos de Completado

Los objetos de completado tienen el siguiente método:

Completer.complete(text, state)

Retorna el completado nº state para text.

Si es invocado para text que no incluye un caracter de punto ('.'), este completará con nombres actualmente definidos en __main__, builtins y las palabras clave (tal y como están definidas en el módulo keyword).

Si es invocado para un nombre con punto, este tratará de evaluar cualquier cosa sin efectos secundarios obvios (las funciones no serán evaluadas, pero puede generar invocaciones a __getattr__()) hasta la última parte, y encontrar coincidencias para el resto mediante la función dir(), Cualquier excepción ocurrida durante la evaluación de la expresión es cazada, silenciada y se retorna None.