README
author Alexander Solovyov <piranha@piranha.org.ua>
Mon, 13 Jul 2009 18:23:42 +0300 (2009-07-13)
changeset 33 e82b3f5c36d9
parent 28 1a90a706e10d
child 34 e4588c625dcb
permissions -rw-r--r--
documentation
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
::
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
     8
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
     9
  If that's the Final Option,
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    10
  I'm gonna choose it.
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    11
                   Die Krupps
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
Finaloption is a command line parser, indented to make writing command line
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    14
applications easy and painless. It uses built-in Python types (lists,
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    15
dictionaries, etc) to define options, which makes configuration clear and
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    16
concise. Additionally it contains possibility to handle subcommands (i.e.
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    17
``hg commit`` or ``svn update``).
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    18
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    19
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
    20
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    21
Quick example
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    22
-------------
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    23
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    24
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
    25
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    26
  import sys
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    27
  from finaloption import command
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    28
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    29
  @command(usage='%name [-n] MESSAGE')
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    30
  def main(message,
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    31
           nonewline=('n', False, 'don\'t print a newline')):
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    32
      'Simple echo program'
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    33
      sys.stdout.write(message)
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    34
      if not nonewline:
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    35
          sys.stdout.write('\n')
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    36
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    37
  if __name__ == '__main__':
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    38
      main()
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    39
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    40
Running this program will print the help::
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
  echo.py [-n] MESSAGE
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    43
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    44
  Simple echo program
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    45
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    46
  options:
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    47
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    48
   -n --nonewline  don't print a newline
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    49
   -h --help       show help
22
8e56f2a8b90a initial version of readme
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    50
33
e82b3f5c36d9 documentation
Alexander Solovyov <piranha@piranha.org.ua>
parents: 28
diff changeset
    51
I think this mostly describes what's going to. To learn more, read documentation.