### Navigation

- index
- modules |
- next |
- cliapp 1.20130808 documentation »

# Welcome to cliapp

`cliapp` is a Python framework for Unix-like command line programs, which typically have the following characteristics:

- non-interactive
- the programs read input files named on the command line, or the standard input
- each line of input is processed individually
- output is to the standard output
- there are various options to modify how the program works
- certain options are common to all: `--help`, `--version`

Programs like the above are often used as filters in a pipeline. The scaffolding to set up a command line parser, open each input file, read each line of input, etc, is the same in each program. Only the logic of what to do with each line differs.

`cliapp` is not restricted to line-based filters, but is a more general framework. It provides ways for its users to override most behavior. For example:

- you can treat command line arguments as URLs, or record identfiers in a database, or whatever you like
- you can read input files in whatever chunks you like, or not at all, rather than forcing a line-based paradigm

Despite all the flexibility, writing simple line-based filters remains very straightforward. The point is to get the framework to do all the usual things, and avoid repeating code across users of the framework.

- 1. Example
- 2. Walkthrough
- 3. Logging
- 4. Subcommands
- 5. Manual pages
- 6. Profiling support
- 7. Reference manual

# Indices and tables

- Index
- Module Index
- Search Page

### Navigation

- index
- modules |
- next |
- cliapp 1.20130808 documentation »