Skip to content

Latest commit

 

History

History
130 lines (104 loc) · 4.12 KB

File metadata and controls

130 lines (104 loc) · 4.12 KB

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