README
author Alexander Solovyov <piranha@piranha.org.ua>
Mon, 13 Jul 2009 18:42:46 +0300 (2009-07-13)
changeset 35 dc7f13ea0f09
parent 34 e4588c625dcb
child 36 0cb832d5f1a9
permissions -rw-r--r--
link to song text, just for fun
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
     1
.. -*- mode: rst -*-
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
     2
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     3
=============
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     4
 Finaloption
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     5
=============
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
     6
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     7
Finaloption is a command line parser, indented to make writing command line
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     8
applications easy and painless. It uses built-in Python types (lists,
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     9
dictionaries, etc) to define options, which makes configuration clear and
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    10
concise. Additionally it contains possibility to handle subcommands (i.e.
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    11
``hg commit`` or ``svn update``).
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    12
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    13
JFYI: name is derived from Die Krupps' song Final Option, featured in epigraph.
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    14
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    15
Quick example
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    16
-------------
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    17
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    18
That's simple example to show you example of an option definition::
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    19
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    20
  import sys
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    21
  from finaloption import command
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    22
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    23
  @command(usage='%name [-n] MESSAGE')
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    24
  def main(message,
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    25
           nonewline=('n', False, 'don\'t print a newline')):
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    26
      'Simple echo program'
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    27
      sys.stdout.write(message)
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    28
      if not nonewline:
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    29
          sys.stdout.write('\n')
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    30
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    31
  if __name__ == '__main__':
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    32
      main()
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    33
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    34
Running this program will print the help::
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    35
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    36
  echo.py [-n] MESSAGE
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    37
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    38
  Simple echo program
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    39
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    40
  options:
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    41
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    42
   -n --nonewline  don't print a newline
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    43
   -h --help       show help
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    44
34
e4588c625dcb readme: link to documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 33
diff changeset
    45
I think this mostly describes what's going to. To learn more, read
e4588c625dcb readme: link to documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 33
diff changeset
    46
`documentation`_.
e4588c625dcb readme: link to documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 33
diff changeset
    47
e4588c625dcb readme: link to documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 33
diff changeset
    48
.. _documentation: http://hg.piranha.org.ua/finaloption/docs/