Skip to content

d-chris/click-validators

Repository files navigation

click-validators

PyPI - Python Version PyPI - Version PyPI - Downloads PyPI - License GitHub - Pytest GitHub - Page GitHub - Release codecov pre-commit


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.mir()
  • clicktypes.ru_inn()
  • 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

pip install click-validators

for clicktypes.eth_address() validation, additional package eth-hash[pycryptodome]>=0.7.0 is required.

PyPI - eth-hash

pip install click-validators[eth]

Usage

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

import click

import clicktypes


@click.command(
    help="validate email address",
)
@click.argument(
    "email",
    type=clicktypes.email(),
)
def main(email):
    click.echo(f"valid {email=}")


if __name__ == "__main__":
    main()

Example

$ main.py fu@bar.com

valid email='fu@bar.com'
$ main.py fu.bar.com

Usage: main.py [OPTIONS] EMAIL
Try 'main.py --help' for help.

Error: Invalid value for 'EMAIL': 'fu.bar.com'.

Dependencies

PyPI - click PyPI - validators


About

additional types for `click` parameter using `validators`

Topics

Resources

License

Stars

Watchers

Forks