aclick is a python library extending click
with the support for typing. It uses function signatures to
automatically register options to parsers. Please refer to the documentation.
The following features are currently supported:
- Positional-only parameters are added as click Arguments, other parameters become click Options.
- Docstring is automatically parsed and used to generate command and parameter descriptions.
- Arguments with
int
,float
,str
,bool
values both with and without default value. - Complex structures of classes and dataclasses that are automatically inlined as a single string, e.g.,
class1("arg1", arg2=class2())
. - Complex structures of classes and dataclasses that are expanded as individual options with the
hierarchical=True
option enabled. - Type
Union
of complex classes both inlined and hierarchical. - Type
Optional
of inlined complex classes. - Type
Literal
of strings. - Lists and tuples of both the primitive and inlined complex types.
- Parameters can be renamed.
- Parameter values can be loaded from a JSON, YAML, or other file.
- Configuration can be loaded using the gin-config package.
- For other features please refer to the documentation.
Install the library from pip:
$ pip install aclick
Import aclick
instead of click
:
# python main.py test --arg2 4
import aclick
@aclick.command()
def example(arg1: str, /, arg2: int = 5):
pass
example()
When using click.groups
:
# python main.py example test --arg2 4
import aclick
@aclick.group()
def main():
pass
@main.command('example')
def example(arg1: str, /, arg2: int = 5):
pass
main()
For further details please look at the documentation.