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!
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.
Project documentation