Make CMD arg-parser easy and simple.
Project description
autoargparse
Make CMD arg-parser easy and simple.
dependency
- python can import argparse
How to use
-
pip install autoargparse
-
import autoargparse
-
Initialize :
cmd = autoargparse.cmd() -
Use functon decorator :
@cmd.args(short_name, long_name, nargs, help, action, type)
set function argument as args type@cmd.kwargs(arg_name=short_name, nargs, help, action, type)
set function argument as kwargs type@cmd.mark(run_order=None)
set function run order(integer, bigger first run) -
Run: cmd.run()
example
#!coding:utf-8
import autoargparse
cmd = autoargparse.cmd('simple calculator for example.')
@cmd.mark(1)
@cmd.kwargs(ne='--negative', action='store_true')
@cmd.kwargs(ma='--max', action='store_true')
@cmd.args('-s', '--sum', '*', type=int)
def add(*args, ma, ne):
if args or ma or ne:
d = 0
if ma:
d = max(args)
else:
d = sum(args)
if ne:
d = -d
print(d)
@cmd.mark(2)
@cmd.args('-v', action='count')
@cmd.args('-m', '--mul', 2, help='MUL!!!', type=int)
def mul(a,b,v=None):
if not v:
print(a*b)
elif v==1:
print('a * b =', a*b)
elif v==2:
print('func =', mul.__name__, 'args =', a, b, v)
print('a * b =', a*b)
@cmd.mark(3)
@cmd.args('g', type=int, help='print great')
def great(a):
if a==1:
print('!!!')
else:
print('Great !!!')
if __name__ == "__main__":
cmd.run()
OUTPUT
python .\example.py -h
usage: test.py [-h] [-s [SUM [SUM ...]]] [--max] [--negative] [-m MUL MUL]
[-v]
g
simple calculator for test.
positional arguments:
g print great
optional arguments:
-h, --help show this help message and exit
-s [SUM [SUM ...]], --sum [SUM [SUM ...]]
--max
--negative
-m MUL MUL, --mul MUL MUL
MUL!!!
-v
python .\example.py 1
!!!
python .\example.py 2
Great !!!
python .\example.py 1 -m 2 3
!!!
6
python .\example.py 1 -m 2 3 -v
!!!
a * b = 6
python .\example.py 1 -m 2 3 -vv
!!!
func = mul args = 2 3 2
a * b = 6
python .\example.py 1 -s 1 2 3 4
!!!
10
python .\example.py 1 -s 1 2 3 4 --max
!!!
4
python .\example.py 1 -s 1 2 3 4 --negative
!!!
-10
TODO
- add GUI
- more easy to use
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
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 autoargparse-0.1.0.tar.gz.
File metadata
- Download URL: autoargparse-0.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c872d447f522cc7aa1897527def364439fec583b13d5b74ee8a295ad7944e7e
|
|
| MD5 |
90955837d08c748b2458f8a58312ed05
|
|
| BLAKE2b-256 |
9d3c95efdd61bcb899bef52728f798defc7928a7e0426153a19033e1f6931a52
|
File details
Details for the file autoargparse-0.1.0-py2.py3-none-any.whl.
File metadata
- Download URL: autoargparse-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be3832f51d48b9d9ff32da0baeab5c6b8136974abfd68ffd5117315fabed2fe0
|
|
| MD5 |
0a4bd2ba37bef3abe308768a0418f427
|
|
| BLAKE2b-256 |
a7d077169aca1c9af273c40da65d7c6951de195771a9571a32e59c805af80415
|