Librerías maravillosas de Python, nº 1: Prompt Toolkit
Empiezo una serie de artículos sobre mis librerías favoritas de Python. Las que uso una y otra vez, las que creo que merece la pena conocer.
La primera es Prompt Toolkit.
Si escribes tus herramientas para la terminal, esta te va a gustar.
https://python-prompt-toolkit.readthedocs.io/en/master/index.html
La librería, en pocas palabras
Con Prompt Toolkit puedes montar una interfaz de consola bastante completa. Algo de lo que trae:
- Autocompletado y autosugerencia integrados.
- Resaltado de sintaxis integrado.
- Historial de sesión integrado.
- Atajos de teclado.
- Una abstracción de ncurses en Python.
- Barras de progreso en tiempo real sobre ncurses.
- Aplicaciones de consola a pantalla completa.
- Hooks.
- Soporte de asyncio.
- Soporte de deadlines.
- Y más.
Algunos ejemplos
Un REPL con esteroides
Montar un REPL decente cuesta casi nada. Y puedes tener resaltado de sintaxis en el prompt, mientras escribes. Me encanta.
from pygments.lexers.html import HtmlLexer
from prompt_toolkit.shortcuts import prompt
from prompt_toolkit.lexers import PygmentsLexer
text = prompt('Hi Medium! Enter HTML: ', lexer=PygmentsLexer(HtmlLexer))
print('You wrote: %s' % text)
Diálogos ncurses y más
Con Prompt Toolkit consigues buenas interfaces de línea de comandos sin tocar código ncurses. Trae atajos para diálogos, checkboxes, radio boxes y alguna cosa más.
Un ejemplo sencillo:
from prompt_toolkit.shortcuts import radiolist_dialog
result = radiolist_dialog(
title="Hi Medium!",
text="What's your favorite IDE?",
values=[
("pycharm", "PyCharm"),
("vscode", "Vistual Studio Code"),
("wingide", "WingIDE")
]
).run()
Un clon de VIM
Échale un ojo a la sección Gallery de su web:
Hay demos muy buenas. Hasta un clon de VIM.
Hasta aquí la primera. Si montas algo con ella, la documentación del enlace de arriba es por donde yo empezaría.