Metadata-Version: 1.1
Name: dont_argue
Version: 0.1
Summary: Dead-simple command line argument parsing
Home-page: https://github.com/ChrisPenner/dont-argue
Author: Chris Penner
Author-email: christopher.penner@gmail.com
License: MIT
Download-URL: https://github.com/ChrisPenner/dont-argue/tarball/0.1
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.
        
Keywords: command line,argument,parsing,argparse
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
