Shell command dispatcher with nested subcommand support
Project description
k3shell
A python module to manage commands.
k3shell is a component of pykit3 project: a python3 toolkit set.
Name
k3shell
Status
The library is considered production ready.
Install
pip install k3shell
Synopsis
import k3shell
import sys
arguments = {
'echo_repr': (
lambda x: sys.stdout.write(repr(x)),
('x', {'nargs': '+', 'help': 'just an input message'}),
),
'foo': {
'bar': lambda: sys.stdout.write('bar'),
'bob': {
'plus': (
lambda x, y: sys.stdout.write(str(x + y)),
('x', {'type': int, help: 'an int is needed'}),
('y', {'type': int, help: 'an int is needed'}),
),
},
},
'__add_help__': {
('echo_repr',) : 'output what is input.',
('foo', 'bar',) : 'print a "bar".',
('foo', 'bob', 'plus',) : 'do addition operation with 2 numbers.',
},
'__description__': 'this is an example command.',
}
k3shell.command(**arguments)
"""
then you can execute your command as:
python demo.py echo_repr hello!
# 'hello!'
python demo.py foo bar
# 'bar'
python demo.py foo bob plus 1 2
# 3
and you can get a usage help message like:
$ python demo.py -h
---------------------------
usage: demo.py [-h] {echo_repr, foo bar, foo bob plus} ...
this is an example command.
positional arguments:
{echo_repr, foo bar, foo bob plus} commands to select ...
echo_repr output what is input.
foo bar print a "bar".
foo bob plus do addition operation with 2 numbers.
optional arguments:
-h, --help show this help message and exit
$ python demo.py foo bob plus -h
--------------------------
usage: demo.py foo bob plus [-h] x y
positional arguments:
x an int is need
y an int is need
optional arguments:
-h, --help show this help message and exit
"""
Author
Wenbo Li(李文博) wenbo.li@baishancloud.com
Copyright and License
The MIT License (MIT)
Copyright (c) 2017 Wenbo Li(李文博) wenbo.li@baishancloud.com
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file k3shell-0.1.5.tar.gz.
File metadata
- Download URL: k3shell-0.1.5.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
399f5fc930fe26da71c100680bcf68f3be454e25f51798db4865fda3ff5096cc
|
|
| MD5 |
e2a2112c63c54da3fcee66b7b4496d2b
|
|
| BLAKE2b-256 |
330dbeb2b4c5702c72f23f4d9b9f0709dd18bb25f815f2a1eb0d7087723c100c
|
File details
Details for the file k3shell-0.1.5-py3-none-any.whl.
File metadata
- Download URL: k3shell-0.1.5-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccbcb72a51a2490df225a7d34d59d2ae504cd97c4d93fec5c8f9c119666ea09b
|
|
| MD5 |
1dccb9eafb2b4d67239d838de01ca721
|
|
| BLAKE2b-256 |
1d0f6409626b34503af1ab5e98379e9920c2588db77b35a7851ca3c689236a39
|