Build command-line interfaces quickly and clearly
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
Cliar runs with Python 3.3+ on Windows, Linux, and Mac with not third party dependencies.
Install Cliar from PyPI with pip:
$ pip install cliar
Why another CLI tool?
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.
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.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size cliar-1.0.1-py3-none-any.whl (6.5 kB)||File type Wheel||Python version 3.4||Upload date||Hashes View|
|Filename, size cliar-1.0.1.win-amd64.exe (229.9 kB)||File type Windows Installer||Python version any||Upload date||Hashes View|
|Filename, size cliar-1.0.1.zip (8.1 kB)||File type Source||Python version None||Upload date||Hashes View|