Dead-simple command line argument parsing
Project description
# dont-argue
Dead-simple command line arguments for python scripts.
I got sick of re-learning the argparse module every time I just needed to pass
in a few simple command line arguments for a python script. `dont_argue` skips
the boring stuff and lets you get started in a flash.
## Usage
**dont\_argue** provides the decorator **supply\_args**, use it on a function
and that function's arguments will be provided from the command line.
Check it out:
```python
#!/usr/bin/python
from dont_argue import supply_args
@supply_args
def main(name, location, *friends):
friends = ', '.join(friends)
print 'Hello {} from {} and your friends {}'.format(name, location, friends)
# Now to kick things off we just call the function, the arguments come from the
# command line, so we don't give any here.
main()
```
Try it out:
```
$ ./example.py Joe Alabama Jake Drake
Hello Joe from Alabama and your friends Jake, Drake
```
If that's all you need, then you're done! Also notice how all the extra
arguments get packed up into `*friends` as expected.
You can also work with command line options by specifying keyword arguments for
your function. They can be specified on the command line using the
`--option=value` or `--option value` syntax.
```python
@supply_args
def main(name, mood='FRIENDLY'):
if mood == 'FRIENDLY':
print 'Hello {}! Welcome here!'.format(name)
elif mood == 'ANGRY':
print 'Hey {}! Get out of my house!'.format(name)
main()
```
Now we can specify `mood` or not. Also note that providing too few arguments or
using the -h flag will display usage information.
```
$ ./test.py Joe
Hello Joe! Welcome here!
$ ./example.py Joe --mood ANGRY
Hey Joe! Get out of my house!
$ ./example.py -h
usage: example.py [-h] [--mood MOOD] name
positional arguments:
name
optional arguments:
-h, --help show this help message and exit
--mood MOOD
```
Arbitrary keyword arguments don't make a ton of sense on the command line, so
you must explicitly declare your keyword arguments, `**kwargs` won't work with
command line options.
Dead-simple command line arguments for python scripts.
I got sick of re-learning the argparse module every time I just needed to pass
in a few simple command line arguments for a python script. `dont_argue` skips
the boring stuff and lets you get started in a flash.
## Usage
**dont\_argue** provides the decorator **supply\_args**, use it on a function
and that function's arguments will be provided from the command line.
Check it out:
```python
#!/usr/bin/python
from dont_argue import supply_args
@supply_args
def main(name, location, *friends):
friends = ', '.join(friends)
print 'Hello {} from {} and your friends {}'.format(name, location, friends)
# Now to kick things off we just call the function, the arguments come from the
# command line, so we don't give any here.
main()
```
Try it out:
```
$ ./example.py Joe Alabama Jake Drake
Hello Joe from Alabama and your friends Jake, Drake
```
If that's all you need, then you're done! Also notice how all the extra
arguments get packed up into `*friends` as expected.
You can also work with command line options by specifying keyword arguments for
your function. They can be specified on the command line using the
`--option=value` or `--option value` syntax.
```python
@supply_args
def main(name, mood='FRIENDLY'):
if mood == 'FRIENDLY':
print 'Hello {}! Welcome here!'.format(name)
elif mood == 'ANGRY':
print 'Hey {}! Get out of my house!'.format(name)
main()
```
Now we can specify `mood` or not. Also note that providing too few arguments or
using the -h flag will display usage information.
```
$ ./test.py Joe
Hello Joe! Welcome here!
$ ./example.py Joe --mood ANGRY
Hey Joe! Get out of my house!
$ ./example.py -h
usage: example.py [-h] [--mood MOOD] name
positional arguments:
name
optional arguments:
-h, --help show this help message and exit
--mood MOOD
```
Arbitrary keyword arguments don't make a ton of sense on the command line, so
you must explicitly declare your keyword arguments, `**kwargs` won't work with
command line options.
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
dont_argue-0.1.3.tar.gz
(3.1 kB
view hashes)