Skip to main content

Cliar lets you create powerful commandline interfaces from regular Python classes. Using type hints, you can add validation and on-the-fly parsing.

Project description

Create CLIs from Python Classes. Make them powerful with type hints.

Latest Version Downloads License

Cliar is a Python tool that helps you create commandline interfaces:

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().parse()

Run the script:

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

Requirements

Cliar runs with Python 3.5+ on Windows, Linux, and Mac. There are no external dependencies.

Install

Install Cliar from PyPI with pip:

$ pip install cliar

You can install Cliar on CentOS 6 with yum from Gleb Goncharov’s public repo:

$ yum install -y python-cliar

Hello World

from cliar import CLI


class Hello(CLI):
    def hello(self, name='world'):
        print('Hello ' + name + '!')

if __name__ == '__main__':
    Hello().parse()
python hello.py hello --name Bob
Hello Bob!

Limitations

Cliar is designed to help you create CLIs quickly. For the sake of simplicity, some features are unavailable:

  • You can’t add help text for individual arguments. You can add help text for individual commands with docstrings though.

  • You can’t have 3rd-level commands.

Contribute

Report a bug

Fork and improve

Project details


Download files

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

Source Distribution

cliar-1.1.5.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

cliar-1.1.5-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page