Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Cliar (pronounced as "clear") helps you create command-line interfaces with minimum code.

Project description

Latest Version Downloads License

Cliar (pronounced as “clear”) helps you create command-line interfaces with minimum code:

from cliar import CLI

class Git(CLI):
    '''Git clone created with Cliar'''

    def clone(self, repo, dir='.'):
        '''Clone a git repo from REPO to DIR.'''

        print('Cloning from %s to %s' % (repo, dir))

if __name__ == '__main__':
    Git()

Run the script:

$ python git.py clone http://foo.bar -d baz
Cloning from http://foo.bar to baz

Requirements

Cliar runs with Python 2.6, 2.7, and 3.3+ on Windows, Linux, and Mac with not third party dependencies.

Install

Install Cliar from PyPI with pip:

$ pip install cliar

Why another CLI tool?

I know there’re great projects like docopt and click out there. Before creating Cliar, I tried them both.

Long story short, neither click, not docopt allow for easily extendible CLIs. Cliar lets you extend your CLI with simple subclassing.

By extendability I mean the ability to extend CLI defined in one module with commands from another module.

In docopt, this would mean overriding the entire help string or inserting a line into it, which is neither elegant, nor flexible, nor stable.

In click, commands are just functions in the global namespace, and nesting is done with the group decorator. Extending can be done with importing * from one module to another, which is bad practice. Putting the commands inside a class doesn’t work as expected, which makes it impossible to extend CLI with subclassing.

Limitations

Cliar is designed to help you create CLIs quickly and with as little code as possible. For the sake of simplicity, some features are not available:

  • You can’t add help text for arguments. You can though add help text for commands via docstrings.
  • Optional arguments are given in the form “-name, ” which is unconvential, however valid. You can abbreviate optional arguments until it’s unambiguous.
  • No third level commands.
  • Generally speaking, Cliar can’t do a lot of things argparse can, but the idea is that you probably don’t need most of these things.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cliar, version 1.0.4
Filename, size File type Python version Upload date Hashes
Filename, size cliar-1.0.4-py3-none-any.whl (6.4 kB) File type Wheel Python version 3.4 Upload date Hashes View
Filename, size cliar-1.0.4.win-amd64.exe (230.0 kB) File type Windows Installer Python version any Upload date Hashes View
Filename, size cliar-1.0.4.zip (8.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page