Metadata-Version: 2.1
Name: click-validators
Version: 0.0.0
Summary: additional types for `click` parameter using `validators`.
License: MIT
Keywords: click,validators
Author: Christoph Dörrer
Author-email: d-chris@web.de
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: crypto-eth-addresses
Requires-Dist: click (>=8.1.8,<9.0.0)
Requires-Dist: eth-hash[pycryptodome] (>=0.7.0) ; extra == "crypto-eth-addresses"
Requires-Dist: validators (>=0.34.0,<0.35.0)
Project-URL: repository, https://github.com/d-chris/click-validators
Description-Content-Type: text/markdown

# click-validators

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/click-validators)](https://pypi.org/project/click-validators/)
[![PyPI - Version](https://img.shields.io/pypi/v/click-validators)](https://pypi.org/project/click-validators/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/click-validators)](https://pypi.org/project/click-validators/)
[![PyPI - License](https://img.shields.io/pypi/l/click-validators)](https://raw.githubusercontent.com/d-chris/click-validators/main/LICENSE)
[![GitHub - Pytest](https://img.shields.io/github/actions/workflow/status/d-chris/click-validators/pytest.yml?logo=github&label=pytest)](https://github.com/d-chris/click-validators/actions/workflows/pytest.yml)
[![GitHub - Page](https://img.shields.io/website?url=https%3A%2F%2Fd-chris.github.io%2Fclick-validators&up_message=pdoc&logo=github&label=documentation)](https://d-chris.github.io/click-validators)
[![GitHub - Release](https://img.shields.io/github/v/tag/d-chris/click-validators?logo=github&label=github)](https://github.com/d-chris/click-validators)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://raw.githubusercontent.com/d-chris/click-validators/main/.pre-commit-config.yaml)
<!-- [![codecov](https://codecov.io/gh/d-chris/click-validators/graph/badge.svg?token=)](https://codecov.io/gh/d-chris/click-validators) -->

---

Additional `click` parameter types are built on top of the `validators` library, providing a wide range of validation options for various data types, including email addresses, IP addresses, credit card numbers, and more. This package simplifies the process of adding robust validation to your Click-based CLI applications.

- `clicktypes.amex()`
- `clicktypes.base16()`
- `clicktypes.base32()`
- `clicktypes.base58()`
- `clicktypes.base64()`
- `clicktypes.bsc_address()`
- `clicktypes.btc_address()`
- `clicktypes.calling_code()`
- `clicktypes.card_number()`
- `clicktypes.country_code()`
- `clicktypes.cron()`
- `clicktypes.currency()`
- `clicktypes.cusip()`
- `clicktypes.diners()`
- `clicktypes.discover()`
- `clicktypes.domain()`
- `clicktypes.email()`
- `clicktypes.es_cif()`
- `clicktypes.es_doi()`
- `clicktypes.es_nie()`
- `clicktypes.es_nif()`
- `clicktypes.eth_address()`
- `clicktypes.fi_business_id()`
- `clicktypes.fi_ssn()`
- `clicktypes.fr_department()`
- `clicktypes.fr_ssn()`
- `clicktypes.hostname()`
- `clicktypes.iban()`
- `clicktypes.ind_aadhar()`
- `clicktypes.ind_pan()`
- `clicktypes.ipv4()`
- `clicktypes.ipv6()`
- `clicktypes.isin()`
- `clicktypes.jcb()`
- `clicktypes.mac_address()`
- `clicktypes.mastercard()`
- `clicktypes.md5()`
- `clicktypes.sedol()`
- `clicktypes.sha1()`
- `clicktypes.sha224()`
- `clicktypes.sha256()`
- `clicktypes.sha384()`
- `clicktypes.sha512()`
- `clicktypes.slug()`
- `clicktypes.trx_address()`
- `clicktypes.unionpay()`
- `clicktypes.url()`
- `clicktypes.uuid()`
- `clicktypes.visa()`

## Install

```cmd
pip install click-validators
```

to perform `validators.eth_address()` validation, you need to install the `eth-hash>=0.7.0` package.

[![PyPI - eth-hash](https://img.shields.io/pypi/v/eth-hash?logo=pypi&logoColor=white&label=eth-hash[pycryptodome])](https://pypi.org/project/eth-hash/)

```cmd
pip install click-validators[crypto-eth-addresses]
```

## Usage

import the module `clicktypes` and use the validators as types in click commands.

```python
import click

import clicktypes


@click.command(
    help=clicktypes.email.__doc__.split("\n", maxsplit=1)[0],
)
@click.argument(
    "email",
    type=clicktypes.email(),
)
def main(email):
    click.echo(f"valid {email=}")


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

## Dependencies

[![PyPI - click](https://img.shields.io/pypi/v/click?logo=pypi&logoColor=white&label=click)](https://pypi.org/project/click/)
[![PyPI - validators](https://img.shields.io/pypi/v/validators?logo=pypi&logoColor=white&label=validators)](https://pypi.org/project/validators/)

---

