Vulcano
Project description
Vulcano
What is Vulcano?
Vulcano is a framework for creating command line utils.
Here's a simple example:
from __future__ import print_function
from vulcano.app.classes import VulcanoApp
app = VulcanoApp()
@app.command("hi", "Salute people given form parameter")
def salute_method_here(name, title="Mr."):
print("Hi! {} {} :) Glad to see you.".format(title, name))
@app.command
def i_am(name):
app.context['name'] = name
@app.command
def whoami():
print(app.context['name'])
@app.command
def bye(name="User"):
""" Say goodbye to someone """
print("Bye {}!".format(name))
if __name__ == '__main__':
app.run()
This will create two commands:
- hi: Registered by wrapping the salute_method_here
- bye: Just registered directly with the bye function
And this will generate something like this:
Nice, right?
Key features
- Autocomplete: Vulcano will inspect all the functions you register, and will create a list of autocomplete with your command name and it's arguments.
- Help: It will create help based on your functions docstrings or the help provided during the registration process.
- History: Use up & down arrows to select a command from your history.
- Register modules: It can register all the functions inside a module just by calling the register module function. It will help you to prevent modifying the source module.
- Lexer: Of course, we use lexer with pygments to colorize your command line ;)
- Nested commands: You want to execute more than one command at once from the command line arguments? Just use the "and".
python your_script.py my_func arg=\"something\˝ and my_func_2 arg=\"another thing here\"
, such hacker! - Context: If you want to communicate different functions between them, you can use the VulcanoApp.context (it's just a dictionary where you store and read data).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
vulcano-0.1.3.tar.gz
(11.0 kB
view hashes)