Great work Milindu. It would be better to add the licenses for each library
too, in case any non-compatible or ambiguous ones might be there.

IMO using a framework from the standard library would be better, since the
pre-requisites will be minimal.
On Feb 25, 2015 9:55 AM, "Milindu Sanoj Kumarage" <[email protected]>
wrote:

> Hi,
>
> Here is the JIRA issue on this,
> https://issues.apache.org/jira/browse/STRATOS-1187
>
>
> Here I have added some of the Python CLI frameworks I checked, I have
> added a brief for each of them. I also have state a score out of 10 to
> indicate how best they matches for our need. ( But they are as of my
> understanding! I may not be very correct in some cases.  Because some of
> the ones I could write some codes and check, but for some I could not,
> manly because of errors )
>
> *Cement *(6/10)
> A complex framework, every CLI commands is bound to a separate Python
> class that acts like an controller, and each controller have several
> functions. But no 'Interactive Mode' support, just 'Single command line
> mode'. Supports having  '-' in CLI Commands ( like 'create-tenant' )
> via aliases. But no much developments in Github repo recently.
>
> http://cement.readthedocs.org/
>
> *Click *(7/10)
> Rich with features, uses Python Decorators to bind CLI commands to
> functions. But no 'Interactive Mode' support, just 'Single command line
> mode'.
>
> http://click.pocoo.org/3/
>
>
> *Plac *(4/10)
> A scaled down version of Python argparse package.  Uses set of if else
> statements to process the commands. But no 'Interactive Mode' support.
>
> http://plac.googlecode.com/hg/doc/plac.html
>
> *Cliapp *(3/10)
> No 'Interactive Mode' support.
>
> http://code.liw.fi/cliapp/docs/
>
> *pyCLI  *(3/10)
> No 'Interactive Mode' support.
>
> http://pythonhosted.org//pyCLI/
>
>
> *Cliff *(9/10)
> A framework for building command line programs by OpenStack. It uses
> plugins to define sub-commands, output formatters, and other extensions.
> Supports  'Interactive Mode'  using 'cmd2' and 'cmd'
>
> http://docs.openstack.org/developer/cliff/index.html
>
> *cmd *(8/10)
> Python in built packages for 'Interactive Mode' applications. Maps CLI
> commands to functions by function name, as def do_<whatever the command
> name> ( eg: def do_command1 is for command1 ). Support only arguments but
> no support for Unix-style flags. Have features like automatic command
> completion in 'Interactive Mode'.
>
> https://docs.python.org/2/library/cmd.html
>
> *cmd2 *(9/10)
> Extends the Python Standard Library’s cmd package.  Can handle arguments
> and flags.  Supports for Output Redirection and Piping ( As in a Unix shell
> ). Searchable command history (  bash-like history list editing ), can get
> last commands with arrow keys. Able to perform shell commands while in
> Interactive mode.  ( eg: stratos>!ls or stratos>shell ls ) output can be
> colored.
>
> https://pythonhosted.org/cmd2
>
>
>
>
>

Reply via email to