Files
python-guide/docs/scenarios/cli.rst
T
2014-05-12 10:40:25 -04:00

47 lines
1.9 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Command-line Applications
=========================
.. todo:: Explain "Command-line Applications"
Clint
-----
`clint <https://pypi.python.org/pypi/clint/>`_ is a python module which is
filled with very useful tools for developing command-line applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
Click
-----
`click <http://click.pocoo.org/>`_ is an upcoming Python package for creating
command-line interfaces in a composable way with as little amount of code as
necessary. Its the “Command-line Interface Creation Kit”. Its highly
configurable but comes with good defaults out of the box.
docopt
------
`docopt <http://docopt.org/>`_ is a lightweight, highly Pythonic package that
allows creating command-line interfaces easily and intuitively, by parsing
POSIX-style usage instructions.
Plac
------
`Plac <https://pypi.python.org/pypi/plac>`_ is a python module that allows developing command-line applications. In fact
plac is a simple wrapper over the python standard library `argparse <http://docs.python.org/2/library/argparse.html>`_, it hides most of its
complexity by using a declarative interface: the argument parser is inferred
rather than written down by imperatively. It is targetting especially unsophisticated
users, programmers, sys-admins, scientists and in general people writing throw-away
scripts for themselves, choosing the command-line interface because it is quick
and simple.
Cliff
------
`Cliff <https://cliff.readthedocs.org/en/latest>`_ is a framework for building command-line programs.
It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
is meant to be used to create multi-level commands such as subversion and git, where the main program handles
some basic argument parsing and then invokes a sub-command to do the work.