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()
pip install click-validatorsfor clicktypes.eth_address() validation, additional package eth-hash[pycryptodome]>=0.7.0 is required.
pip install click-validators[eth]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()$ 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'.