A easy-to-use command-line interface generator
Project description
Groom, is an easy-to-use command-line application framework.
This module defines an even much easier way to make user-friendly command-line interfaces than any others else. Once you define a function as the entry point of your application, Groom will automatically detect how to parse sys.argv and apply it to your application. Groom also generates help and usage messages and issue errors when users set invalid arguments to your application.
introduction
Have you never wanted to create CLI tools with python more easily? Groom brings you an easier way to create CLI tools.
Here is an example:
import sys
from groom import positional, optional, Dispatcher
__version__ = '1.0'
def calculate(
num1: positional(float, "former number", required=True, var_name='N1'),
num2: positional(float, "latter number", required=True, var_name='N2'),
operator: optional(str, "operator name", short_name='op')='add'):
if operator == 'add':
print(num1 + num2)
return
if operator == 'sub':
print(num1 - num2)
return
if operator == 'mul':
print(num1 * num2)
return
if operator == 'div':
print(num1 / num2)
return
print("unknown operator:", operator, file=sys.stderr)
if __name__ == '__main__':
Dispatcher(
calculate,
"calculate one of four arithmetic operations"
).dispatch()
…and then, you can call the program like this:
$ python calc.py 1 2 -op div
Once you call this program with -h or --help, Groom displays the help messages:
$ python calc.py -h
calc.py: 1.0
calculate one of four arithmetic operations
Usage:
calc.py [-v | --version | -h | --help]
calc.py <N1> <N2>
[--operator <OPERATOR> | -op <OPERATOR>]
positional parameters:
N1:
former number
type: float
required: True
N2:
latter number
type: float
required: True
parameters:
--operator, -op:
operator name
type: str
required: False
multiple values: False
default: add
Groom can handle 6 primitive types such as str, int, float, complex and bool and list of those types. If you specify another as a parameter type, Groom will throw TypeError.
Groom is licensed under the MIT License, for further details see LICENSE.txt.
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
Built Distribution
File details
Details for the file groom-0.1.0b1.tar.gz
.
File metadata
- Download URL: groom-0.1.0b1.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5e688c00f75d7720a0431d92bbe30e9840b08f1cdaa871aa02d67857331be1c |
|
MD5 | 3dbc3bde3d89ebf3f1d48cab4da4f157 |
|
BLAKE2b-256 | 171257597aae6537c3288d82d623572c4999261314e328b7cbde3bc676119877 |
File details
Details for the file groom-0.1.0b1-py3-none-any.whl
.
File metadata
- Download URL: groom-0.1.0b1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48ec6a2b0618290509179565f9856c6faf54c592a3414b185d34e718d11f2b73 |
|
MD5 | 8970c54ea012d6b45c84f7af93d348c4 |
|
BLAKE2b-256 | 4af0d727c8a987e9e05dd74021afcfdad7970bed0fb964fe85261538a98c47d7 |