clize: Turn functions into command-line interfaces¶
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)
run
takes the function and automatically produces a command-line
interface for it:
$ python3 -m pip install --user clize
$ python3 examples/hello.py --help
Usage: examples/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 give name.
Other actions:
-h, --help Show the help
$ python hello.py
Hello world!
$ python hello.py john
Hello John!
$ python hello.py dave --no-capitalize
Hello dave!
While we use Python 3 syntax in this example, Clize is fully compatible with Python 2.7.
Interested?
- Follow the tutorial
- Browse the examples
- Ask for help on Gitter
- Check out why Clize was made
- Star, watch or fork Clize on GitHub
Here is the full table of contents:
About Clize
Getting started
Guides
The user reference lists all capabilities of each kind of parameter. The API reference comes in handy if you’re extending clize.
Reference
- User reference
- Using annotations
- Annotations for parameters that handle a value
- Positional parameters
- Parameter that collects remaining positional arguments
- Named parameters
- Named parameters that take an argument
- Named parameters that take an integer argument
- Flag parameters
- Mapped parameters
- Repeatable parameters
- Decorated arguments
- Annotations that work on any parameter
- Customizing the help using the docstring
- API Reference
Information on how Clize is organized as a project.