Metadata-Version: 2.1
Name: clidantic
Version: 0.0.2
Summary: Elegant CLI applications using Click and Pydantic
Home-page: https://github.com/edornd/clidantic
License: MIT
Author: Edoardo Arnaudo
Author-email: edoardo.arn@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Dist: click (>=8.0.3,<9.0.0)
Requires-Dist: pydantic (>=1.8.2,<2.0.0)
Project-URL: Repository, https://github.com/edornd/clidantic
Description-Content-Type: text/markdown

# clidantic
Elegant CLIs merging Click and Pydantic.

> :warning: **warning**: Library in early alpha stage

---
![pypi version](https://img.shields.io/pypi/v/clidantic?color=yellow)
---

## Installing
The safest path is to install the latest release using pip:
```
pip install clidantic
```
Optionally, you can install the latest updates through GitHub:
```
pip install git+https://github.com/edornd/clidantic.git
```
or, if that doesn't work, with multiple steps (this last step requires poetry to build a setup probably):
```
git clone https://github.com/edornd/clidantic.git
cd clidantic
pip install .
```

## Quickstart
Here's a quick example to get you started:
```python
from typing import Optional
from pydantic import BaseModel

from clidantic import Parser


class Arguments(BaseModel):
    field_a: str
    field_b: int
    field_c: Optional[bool] = False


cli = Parser()


@cli.command()
def main(args: Arguments):
    print(args)


if __name__ == "__main__":
    cli()
```


## Contributing
We are not quite there yet!

