Proyecto Python activo
Vulcano
Convierte funciones Python en aplicaciones de línea de comandos interactivas con autocompletado, ayuda, historial, grupos y muy poco código repetitivo.
Interfaces de comando sin ceremonia
Convierte funciones Python en una CLI pulida.
Vulcano sirve para ese momento en el que un script empieza a convertirse en una herramienta. Mantienes tus funciones simples, las registras en la app y obtienes un REPL interactivo, modo de argumentos, autocompletado, ayuda en línea, historial, resaltado de sintaxis y grupos anidados.
Problemas que resuelve
La superficie de comandos que normalmente dejas para después.
Tengo funciones útiles.
Registra callables Python existentes sin reescribirlos dentro de un framework pesado.
Necesito que sea fácil de descubrir.
Tablas de ayuda, descripciones, inspección de argumentos y sugerencias hacen que la herramienta se explique sola.
Necesito modo interactivo.
Historial, autocompletado, temas y grupos anidados hacen cómodo el trabajo repetido con comandos.
También necesito modo shell.
Ejecuta comandos desde argumentos, encadena acciones con and y usa rutas con punto para comandos agrupados.
Conoce Vulcano
Un framework que se mantiene cerca de tu código.
Autocompletado
Los nombres de comandos y argumentos se infieren desde las funciones registradas.
Ayuda en línea
Docstrings y descripciones se convierten en pantallas de ayuda legibles.
Opciones de argumento
arg_opts sugiere valores predefinidos y cita valores con espacios.
Encadenado
Ejecuta varias acciones con and en modo REPL o modo argumentos.
Grupos
Organiza comandos en subcontextos anidados con ejecución por rutas de puntos.
Inspección de código
Añade ? a un comando para ver su fuente resaltada.
Inicio rápido
Un archivo es suficiente para empezar.
pip install vulcano
from vulcano.app import VulcanoApp
from vulcano.themes import MonokaiTheme
app = VulcanoApp()
@app.command("hi", "Greet someone by name")
def salute(name, title="Mr."):
return "Hi! {} {}.".format(title, name)
@app.command("greet", "Greet someone by role", arg_opts={"role": ["admin", "user", "guest"]})
def greet_by_role(name, role="user"):
return "Hello, {} {}!".format(role.capitalize(), name)
if __name__ == "__main__":
app.run(theme=MonokaiTheme)
python your_app.py hi name=David
python your_app.py greet name=David role=admin
Especificaciones técnicas
Superficie pequeña, valores por defecto útiles.
| Área | Capacidad |
|---|---|
| Entorno | Python 3.10, 3.11, 3.12 y 3.13 |
| Interfaz | REPL interactivo y ejecución por argumentos |
| Parsing | Inspección de argumentos de funciones y parseo de comandos |
| UX | Autocompletado, historial, sugerencias, ayuda y resaltado de sintaxis |
| Organización | Grupos anidados y ejecución con rutas de puntos |
| Empaquetado | Paquete PyPI con punto de entrada vulcano |
Vulcano está en desarrollo activo. Para producción, fija una versión mientras la API avanza hacia una versión 1.x estable.