Skip to main content

A simple argparse wrapper.

Project description

Agrh, argparse!
===============

Did you ever say "argh" trying to remember the details of optparse or argparse
API? If yes, this package may be useful for you. It provides a very simple
wrapper for argparse with support for hierarchical commands that can be bound
to modules or classes. Argparse can do it; argh makes it easy.

In a nutshell
-------------

Here's a list of features that `argh` adds to `argparse`:

* mark a function as a CLI command and specify its arguments before the parser
is instantiated;
* nesed commands made easy: no messing with subparsers (though they are of
course used under the hood);
* infer agrument type from the default value;
* infer command name from function name;
* add an alias root command ``help`` for the ``--help`` argument;
* enable passing unwrapped arguments to certain functions instead of a
`argparse.Namespace` object.

`Argh` is fully compatible with `argparse`. You can mix `argh`-agnostic and
`argh`-aware code. Just keep in mind that `argh.dispatch` does some extra
work that a custom dispatcher may not do.

Installation
------------

$ pip install argh

Example
-------

A very simple application with one command::

@command
def echo(text='hello'):
print text

parser = ArghParser()
parser.add_commands([echo])

if __name__ == '__main__':
parser.dispatch()

The powerful API of `argparse` is also available::

@arg('text', default='hello world', nargs='+', help='The message')
def echo(args):
print args.text

The approaches can be safely combined.

Documentation
-------------

See the `complete documentation`_ for details. If it's not complete enough,
feel free to ask your questions or submit bugs.

.. _complete documentation: http://packages.python.org/argh

Author
------

Originally written by Andrey Mikhaylenko in 2010.

See file `AUTHORS` for a complete authors list of this application.

Please feel free to submit patches, report bugs or request features:

http://bitbucket.org/neithere/argh/issues/

Here's the discussion group:

http://groups.google.com/group/argh-users

Real-life usage
---------------

Among applications that use `argh` are Tool_, OrgTool_, Watchdog_, Poni_ and
more. Well, there's probably no need to keep a complete and up-to-date list.
Still, please let me know anyway if you use `argh`_ in your project. I'll be
glad to know. :-)

.. _Tool: http://pypi.python.org/pypi/tool
.. _OrgTool: http://pypi.python.org/pypi/orgtool
.. _Watchdog: https://github.com/gorakhargosh/watchdog/blob/master/watchdog/watchmedo.py
.. _Poni: https://github.com/melor/poni/commit/14e8ccbb50e9e17b95a2f2a0d2cd0af5d90ca22b

Licensing
---------

Argh is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Argh is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with Argh. If not, see <http://gnu.org/licenses/>.

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

argh-0.10.2.tar.gz (10.9 kB view details)

Uploaded Source

File details

Details for the file argh-0.10.2.tar.gz.

File metadata

  • Download URL: argh-0.10.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for argh-0.10.2.tar.gz
Algorithm Hash digest
SHA256 292936fae4c11abee73a4d329c80d5d94ead6fd049f426930cbc108372da4ab8
MD5 e0099a29fedd34b4b99863434e7f4b01
BLAKE2b-256 8ca55701c445b4242373636a7f7487d8a6fbcf8f00cdeb5eeb93ce53b9227aa4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page