Skip to main content
# 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.

Release files for dont-argue 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dont-argue 0.1.3
File Size Uploaded
dont_argue-0.1.3.tar.gz 3.1 kB Details

Release files / dont_argue-0.1.3.tar.gz

Download URL dont_argue-0.1.3.tar.gz
Size 3.1 kB
Tags Source
SHA-256 checksum
How to use checksums
212e09a0cb89ffb5338dca5ec09f71e3ad501c9b676b1e5b4d7e032d5254a8ff
BLAKE2b-256 checksum
How to use checksums
3001d4ae855b46a2be3f1daaf82be47e97e79b36b17fe6c72a35d5fbf01e9f5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.3 This release

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page