-
Notifications
You must be signed in to change notification settings - Fork 5
/
basic.py
44 lines (28 loc) · 1.17 KB
/
basic.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'''So you want a quick and dirty command line app without screwing around
with argparse or getopt, but also without a complicated if-else on the length
of sys.argv. You don't really need a comprehensive help file, because it's just
you running the script and knowing what options are available is enough.
How many boilerplate lines of code is it gonna take?'''
from opterator import opterate # 1
@opterate # 2
def main(filename, color='red', verbose=False): # 3
print(filename, color, verbose)
main() # 4
''' Answer: 4 lines.
You get a program that you can call on the command line like so:
$ python examples/basic.py this_file
this_file red False
or so:
python examples/basic.py this_file --color=blue
this_file blue False
or even so:
$ python examples/basic.py --color=purple another_file --verbose
another_file purple True
And you get a not too useless help description:
$ python examples/basic.py -h
Usage: basic.py [options] filename
Options:
-h, --help show this help message and exit
-c COLOR, --color=COLOR
-v, --verbose
'''