Command-line Applications

https://farm5.staticflickr.com/4272/34435690330_11930b5987_k_d.jpg

Command-line applications, also referred to asConsole Applications,are computer programs designed to be used from a text interface, such as ashell. Command-lineapplications usually accept various inputs as arguments, often referred to asparameters or sub-commands, as well as options, often referred to as flags orswitches.

Some popular command-line applications include:

  • Grep - A plain-text data search utility
  • curl - A tool for data transfer with URL syntax
  • httpie - A command line HTTPclient, a user-friendly cURL replacement
  • git - A distributed version control system
  • mercurial - A distributed version controlsystem primarily written in Python

Clint

clint is a Python module which isfilled with very useful tools for developing command-line applications.It supports features such as; CLI colors and indents, simple and powerfulcolumn printer, iterator based progress bars and implicit argument handling.

Click

click is a Python package for creatingcommand-line interfaces in a composable way with as little code aspossible. This “Command-line Interface Creation Kit” is highlyconfigurable but comes with good defaults out of the box.

docopt

docopt is a lightweight, highly Pythonic package thatallows creating command-line interfaces easily and intuitively, by parsingPOSIX-style usage instructions.

Plac

Plac is a simple wrapperover the Python standard libraryargparse,which hides most of its complexity by using a declarative interface: theargument parser is inferred rather than written down by imperatively. Thismodule targets especially unsophisticated users, programmers, sys-admins,scientists and in general people writing throw-away scripts for themselves,who choose to create a command-line interface because it is quick and simple.

Cliff

Cliff is a framework forbuilding command-line programs. It uses setuptools entry points to providesubcommands, output formatters, and other extensions. The framework is meantto be used to create multi-level commands such as subversion and git, wherethe main program handles some basic argument parsing and then invokes asub-command to do the work.

Cement

Cement is an advanced CLI Application Framework.Its goal is to introduce a standard, and feature-full platformfor both simple and complex command line applications as wellas support rapid development needs without sacrificing quality.Cement is flexible, and it’s use cases span from the simplicity of a micro-frameworkto the complexity of a meg-framework.