Hi,

Here I have included the licences of each framework :)

*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/

Licence : http://cement.readthedocs.org/en/latest/license/
Redistribution and use in source and binary forms, with or without
modification, are permitted under given conditions.


*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/

Licence :  http://click.pocoo.org/3/license/
 three-clause BSD License


*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

Licence: http://plac.googlecode.com/hg/doc/plac.html
BSD license

*Cliapp *(3/10)
No 'Interactive Mode' support.

http://code.liw.fi/cliapp/docs/

Licence : https://github.com/rshk/CliApp/blob/master/LICENSE
Apache License


*pyCLI  *(3/10)
No 'Interactive Mode' support.

http://pythonhosted.org//pyCLI/

Licence: http://sourceforge.net/projects/pycli/
GNU General Public License version 2.0 (GPLv2)


*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

Licence: https://launchpad.net/python-cliff
Apache Licence


*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

Licence: https://docs.python.org/2/license.html
GPL compatible


*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

Licence: https://pypi.python.org/pypi/cmd2/0.6.8
MIT License

On Wed, Feb 25, 2015 at 10:29 AM, Chamila De Alwis <chami...@wso2.com>
wrote:

> 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" <agentmili...@gmail.com>
> 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