Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Command line parsing speedster

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 docs
Octocat-spinner-32 .hgignore
Octocat-spinner-32 .hgtags
Octocat-spinner-32 README
Octocat-spinner-32 finaloption.py
Octocat-spinner-32 setup.py
Octocat-spinner-32 test.py
Octocat-spinner-32 test_cmd.py
Octocat-spinner-32 test_opts.py
README
.. -*- mode: rst -*-

=============
 Finaloption
=============

Finaloption is a command line parser, intended to make writing command line
applications easy and painless. It uses built-in Python types (lists,
dictionaries, etc) to define options, which makes configuration clear and
concise. Additionally it contains possibility to handle subcommands (i.e.
``hg commit`` or ``svn update``).

JFYI: name is derived from Die Krupps' song Final Option.

Quick example
-------------

That's an example of an option definition::

  import sys
  from finaloption import command

  @command(usage='%name [-n] MESSAGE')
  def main(message,
           nonewline=('n', False, 'don\'t print a newline')):
      'Simple echo program'
      sys.stdout.write(message)
      if not nonewline:
          sys.stdout.write('\n')

  if __name__ == '__main__':
      main()

Running this program will print the help::

  echo.py [-n] MESSAGE

  Simple echo program

  options:

   -n --nonewline  don't print a newline
   -h --help       show help

I think this mostly describes what's going on, except that I'd like to mention
one interesting feature - if you are using long name for option, you can use
only partial name, for example ``./echo.py --nonew`` a is valid command
line. This is also true for subcommands: read about that and everything else
you'd like to know in `documentation`_.

.. _documentation: http://hg.piranha.org.ua/finaloption/docs/
Something went wrong with that request. Please try again.