Turn functions into command-line interfaces
Project description
Clize is an argument parser for Python. You can use Clize as an alternative to argparse if you want an even easier way to create command-line interfaces.
With Clize, you can:
Create command-line interfaces by creating functions and passing them to clize.run.
Enjoy a CLI automatically created from your functions’ parameters.
Bring your users familiar --help messages generated from your docstrings.
Reuse functionality across multiple commands using decorators.
Extend Clize with new parameter behavior.
Here’s an example:
from clize import run
def hello_world(name=None, *, no_capitalize=False):
"""Greets the world or the given name.
:param name: If specified, only greet this person.
:param no_capitalize: Don't capitalize the given name.
"""
if name:
if not no_capitalize:
name = name.title()
return 'Hello {0}!'.format(name)
return 'Hello world!'
if __name__ == '__main__':
run(hello_world)
Python 2.7 is supported through decorators.
The python code above can now be used on the command-line as follows:
$ pip install clize
$ python3 hello.py --help
Usage: hello.py [OPTIONS] name
Greets the world or the given name.
Positional arguments:
name If specified, only greet this person.
Options:
--no-capitalize Don't capitalize the given name.
Other actions:
-h, --help Show the help
$ python3 hello.py
Hello world!
$ python3 hello.py john
Hello John!
$ python3 hello.py dave --no-capitalize
Hello dave!
You can find the documentation and tutorials at https://clize.readthedocs.io/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for clize-4.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09285c3c9277f3bb625eabbcb2e7b5b3f3e34f02b58e636b88f29f43e0cb47ef |
|
MD5 | f8dca029a66cc8efe58dc5a4e28a53e1 |
|
BLAKE2b-256 | a8afe1d4a586431a6cfc298b75b2ae738c4b289278f02ceed87aef3b3d757c09 |