Command line based argument parse framework.
Project description
Installing
pip3 install throttle
Battleship
import flagopt
usage = '-x [spot] -y [spot]'
flags = flagopt.trace(usage)
content = '-x C -y 7'
args = flagopt.snip(flags, content)
print('hit at', args['-x'], args['-y'])
Actions
import flagopt
flags = {
'-move': {
'-x': 'distance',
'-y': 'distance'
},
'-craft': 'recipe',
'-scavenge': {
'-target': 'resource',
'-finish': {
'-time': 'hours',
'-time': 'amount'
}
},
'-rest': 'hours',
'-target': 'human | animal'
}
# show how to use this
usage = flagopt.draw(flags)
content = (
# move right linearly
'-move -x 10 '
# then move diagonally right and down;
# no need to explicitly pass the first flag (-x)
'-move 5 -y -5 '
# backslash is used as an escape character;
# -target will be ignored during the first parse scan
# and the backslash will be removed so that -target can
# be considered during the next scan for -scavenge;
# multiple backslashed can be used to achieve other
# amounts of iterations for this effect
'-scavenge \-target wood '
# arguments can be passed multiple times (-time);
# scavenge for 3 hours and 60 more wood after that
'-finish -time 3 -limit 60 '
# or until 5 hours have passed
'-finish -time 5'
# rest for 4 hours, craft a tent, rest for another 3;
# there is no space between 5 and -rest (line above);
# spaces do not matter for flags and are stripped away
# unless there is an escape character before / after
'-rest 4 '
# you can pass empty flags,
# their presence is indicated with an empty string
'--debug '
# im bad at coming up with examples
'-craft spear '
# especially when they involve games
'-target rabbit '
# time to sleep now
'-rest 3'
)
args = flagopt.snip(flags, content)
moves = args.getall('-move')
print(moves)
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
flagopt-0.1.1.tar.gz
(4.5 kB
view hashes)