Metadata-Version: 2.0
Name: decopts
Version: 1.0.1
Summary: Use decorators for dealing with argparse
Home-page: https://github.com/Eeems/decopts
Author: Nathaniel van Diepen
Author-email: eeems13@gmail.com
License: MIT
Keywords: optparse argparse
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Terminals
Provides-Extra: dev
Requires-Dist: pypandoc; extra == 'dev'

Installation
============

::

    pip install decparse

Usage
=====

Before with argeparse

.. code:: python

    import argparse

    parser = argparse.ArgumentParser(
        prog='foo',
        description='Print bar',
        add_help=True
    )
    parser.add_argument(
        '--baz',
        action='store_true'
        help='Also print baz'
    )
    args = parser.parse_arguments()

    print('bar')
    if args.baz:
        print('baz')

Using decopts instead

.. code:: python

    from decopts import entrypoint, option

    @entrypoint(
        prog='foo',
        description='Print bar',
        add_help=True
    )
    @option(
        '--baz',
        action='store_true'
        help='Also print baz'
    )
    def main():
        print('bar')
        if main.args.baz:
            print('baz')

    main()

Adding subcommands

.. code:: python

    from decopts import entrypoint, option, action

    @entrypoint(
        prog='foo',
        description='Print something',
        add_help=True
    )
    def main():
        return

    @action(
        main,
        'foo',
        description='Print foo'
    )
    def foo():
        print('foo')

    @action(
        main,
        'baz',
        description='Print baz'
    )
    def baz():
        print('baz')

    main()



