freshcrate
Skin:/
Home > Developer Tools > validators

validators

Python Data Validation for Humans™

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

# validators - Python Data Validation for Humans™ [![PyCQA][pycqa-badge]][pycqa-link] [![SAST][sast-badge]][sast-link] [![Docs][docs-badge]][docs-link] [![Version][vs-badge]][vs-link] [![Downloads][dw-badge]][dw-link] <!-- [![Package][package-badge]][package-link] --> Python has all kinds of data validation tools, but every one of them seems to require defining a schema or form. I wanted to create a simple validation library where validating a simple value does not require defining a form or a schema. ```shell pip install validators ``` Then, ```python >>> import validators >>> >>> validators.email('someone@example.com') True ``` ## Resources <!-- Backup documentation URL : https://yozachar.github.io/pyvalidators/ --> <!-- Original documentation URL : https://python-validators.github.io/validators/ --> - [Documentation](https://yozachar.github.io/pyvalidators) - [Bugtracker](https://github.com/python-validators/validators/issues) - [Security](https://github.com/python-validators/validators/blob/master/SECURITY.md) - [Code](https://github.com/python-validators/validators/) <!-- Original docs URL will be restored, once properly versioned docs are ready. --> --- > **_Python 3.9 [reaches EOL in](https://endoflife.date/python) October 2025._** <!-- Links --> [sast-badge]: https://github.com/python-validators/validators/actions/workflows/sast.yaml/badge.svg [sast-link]: https://github.com/python-validators/validators/actions/workflows/sast.yaml [pycqa-badge]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml/badge.svg [pycqa-link]: https://github.com/python-validators/validators/actions/workflows/pycqa.yaml [docs-badge]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment/badge.svg [docs-link]: https://github.com/yozachar/pyvalidators/actions/workflows/pages/pages-build-deployment [vs-badge]: https://img.shields.io/pypi/v/validators?logo=pypi&logoColor=white&label=version&color=blue [vs-link]: https://pypi.python.org/pypi/validators/ [dw-badge]: https://img.shields.io/pypi/dm/validators?logo=pypi&logoColor=white&color=blue [dw-link]: https://pypi.python.org/pypi/validators/ <!-- [package-badge]: https://github.com/python-validators/validators/actions/workflows/package.yaml/badge.svg [package-link]: https://github.com/python-validators/validators/actions/workflows/package.yaml -->

Release History

VersionChangesUrgencyDate
0.35.0Imported from PyPI (0.35.0)Low4/21/2026
0.34.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ * feat: cache IANA TLDs for faster lookups by @salty-horse in [#390](https://github.com/python-validators/validators/pull/390) _**Maintenance**_ * chore: update dependencies by @yozachar in [#394](https://github.com/python-validators/validators/pull/394) * docs: adds configuration info by @yozachar in [#395](https://github.com/python-validators/validators/pull/395) **Full Changelog**: [`0.33.0Low9/3/2024
0.33.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: adds validator for `bsc` addresses by @msamsami in [#389](https://github.com/python-validators/validators/pull/389) _**Maintenance**_ - chore: bump version by @msamsami in [#389](https://github.com/python-validators/validators/pull/389) **Full Changelog**: [`0.32.0...0.33.0`](https://github.com/python-validators/validators/compare/0.32.0...0.33.0)Low7/15/2024
0.32.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: add validator for `sha384` hash by @msamsami in [#387](https://github.com/python-validators/validators/pull/387) _**Maintenance**_ - chore: improve `CONTRIBUTING.md` by @yozachar in [`9ba69a5`](https://github.com/python-validators/validators/commit/9ba69a51d1624e89d45504e1a8f23dd05810bd0e) - chore(deps): bump certifi from 2024.6.2 to 2024.7.4 in /package by @dependabot in https://github.cLow7/10/2024
0.31.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: add validators for `base16` and `base32` encodings by @msamsami in [#386](https://github.com/python-validators/validators/pull/386) _**Maintenance**_ - maint: bump version by @msamsami in [#386](https://github.com/python-validators/validators/pull/386) **Full Changelog**: [`0.30.0...0.31.0`](https://github.com/python-validators/validators/compare/0.30.0...0.31.0)Low7/8/2024
0.30.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: add validator for `trx_addresses` by @msamsami in [#384](https://github.com/python-validators/validators/pull/384) _**Maintenance**_ - maint: bump version by @msamsami in [#384](https://github.com/python-validators/validators/pull/384) **Full Changelog**: [`0.29.0...0.30.0`](https://github.com/python-validators/validators/compare/0.29.0...0.30.0)Low7/4/2024
0.29.0_**Breaking ⚠️**_ - patch: moves `btc_address` to `crypto_addresses` by @msamsami in https://github.com/python-validators/validators/pull/383 on [`2f300b`](https://github.com/python-validators/validators/pull/383/commits/2f300bccf31e7d8914817cac2ca466fd2a0a4d08) _**Features**_ - feat: add validator for eth addresses by @msamsami in https://github.com/python-validators/validators/pull/383 _**Maintenance**_ - chore: update dev deps; adds python EOL info by @yozachar in https://githuLow7/1/2024
0.28.3_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - hotfix: ensure `_tld.txt` is in `sdist` and `bdist` by @yozachar in [#379](https://github.com/python-validators/validators/pull/379) **Full Changelog**: [`0.28.2...0.28.3`](https://github.com/python-validators/validators/compare/0.28.2...0.28.3)Low5/25/2024
0.28.2_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - fix: corrects a few typo by @yozachar in [#371](https://github.com/python-validators/validators/pull/371) - build(deps): bump jinja2 from 3.1.3 to 3.1.4 in /package by @dependabot in [#372](https://github.com/python-validators/validators/pull/372) - fix(ip_address): properly handle private is false by @grleblanc in [#374](https:/Low5/24/2024
0.28.1_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - fix: reduce memory footprint when loading TLDs by @yozachar in [#362](https://github.com/python-validators/validators/pull/362) - build(deps): bump idna from 3.6 to 3.7 in /package by @dependabot in [#365](https://github.com/python-validators/validators/pull/365) - fix: rfc cases in the `domain` validator by @yozachar in [#367](hLow4/19/2024
0.28.0_**Breaking**_ ⚠️ - patch: moves `country_code` module to `country` module by @yozachar in [#357](https://github.com/python-validators/validators/pull/357) _**Features**_ - feat: adds indian aadhar and pan validator by @yozachar in [#358](https://github.com/python-validators/validators/pull/358) - feat: adds `finance` validator by @yozachar in [#359](https://github.com/python-validators/validators/pull/359) - feat: adds `consider_tld` parameter to `domain`, `hostname` and `url` moduleLow4/4/2024
0.27.0_**Breaking**_ ⚠️ - patch: moves `base58` and `base64` into `encoding` by @yozachar in [#354](https://github.com/python-validators/validators/pull/354) _**Features**_ - feat: lays foundation for URI validation by @yozachar in [#353](https://github.com/python-validators/validators/pull/353) - feat: adds `private` parameter to `ip_address`, `hostname` & `url` by @yozachar in [#356](https://github.com/python-validators/validators/pull/356) _**Maintenance**_ - patch: adds `encoding` Low4/3/2024
0.26.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: adds `base58` and `base64` validators by @yozachar in [#351](https://github.com/python-validators/validators/pull/351) _**Maintenance**_ - fix: regex ignore-case uses only `a-z` by @yozachar in [#349](https://github.com/python-validators/validators/pull/349) - patch: supported extended latin in username by @yozachar in [#350](https://github.com/python-validators/validators/pull/350) **Low4/2/2024
0.25.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: adds basic `cron` validator by @yozachar in [#348](https://github.com/python-validators/validators/pull/348) _**Maintenance**_ - maint: adds quick start docs by @yozachar in [#344](https://github.com/python-validators/validators/pull/344) - fix: `domain` validation is now more consistent across rfcs by @yozachar in [#347](https://github.com/python-validators/validators/pull/347) **FullLow4/2/2024
0.24.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: conditionally raises `ValidationError`; bump version by @yozachar in [#343](https://github.com/python-validators/validators/pull/343) _**Maintenance**_ - patch: `domain` & `url` modules by @yozachar in [#339](https://github.com/python-validators/validators/pull/339) - fix: domain name not confirming to rfc_2782 by @yozachar in [#341](https://github.com/python-validators/validators/pull/34Low3/24/2024
0.23.2_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - maint: rectifies changelog by @yozachar in [#336](ttps://github.com/python-validators/validators/pull/336) - fix: packaging as well as `rST` & `md` document generation by @yozachar in [#337](ttps://github.com/python-validators/validators/pull/337) **Full Changelog**: [`0.23.1...0.23.2`](https://github.com/python-validators/valiLow3/20/2024
0.23.1_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - maint: fix `between` & `length` validators by @yozachar in [#334](https://github.com/python-validators/validators/pull/334) - fix: manual nav reference for mkdocs; bumps version by @yozachar in [#335](https://github.com/python-validators/validators/pull/335) **Full Changelog**: [`0.23.0...0.23.1`](https://github.com/python-valiLow3/19/2024
0.23.0_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ - feat: add french i18n validation by @imperosol in [#308](https://github.com/python-validators/validators/pull/308) _**Maintenance**_ - fix: Valid URLs failing validation - query and fragment parts by @danherbriley in [#297](https://github.com/python-validators/validators/pull/297) - fix: bug in `between` module by @yozachar in [#301](https://github.com/python-validators/validators/pull/301) - Low3/19/2024
0.22.0_**Breaking**_ ⚠️ - A new keyword parameter `host_bit = True`, is added to `validators.ipv4` and `validators.ipv6`. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - fix: url validator considers urls with /#/ as valid by @adrienthiery in [#289](https://github.com/python-validators/validators/pull/289) - Add note about ValidationFailure to ValidationError in changes.md by @tswfi in [#291](https://github.com/python-validators/validators/pull/291) - Low9/2/2023
0.21.2_**Breaking**_ ⚠️ - `ValidationFailure` is renamed to `ValidationError` in [`yozachar@12ae1f5`](https://github.com/yozachar/pyvalidators/commit/12ae1f5850555d11e1f1a2c03f597fd10610215a) _**Features**_ - Added Country Code Validation by @aviiciii in [#280](https://github.com/python-validators/validators/pull/280) - add validator ETH addresses (ERC20) by @msamsami in [#276](https://github.com/python-validators/validators/pull/276) _**Maintenance**_ - feat: refactoring; updates; fixLow8/7/2023
0.21.1_**Breaking**_ > No breaking changes were introduced in this version. _**Features**_ > No features were introduced in this version. _**Maintenance**_ - fix: `source .venv/bin/activate` before build by @yozachar in [#260](https://github.com/python-validators/validators/pull/260) - fix: id-token write permission at job level by @yozachar in [#261](https://github.com/python-validators/validators/pull/261) - feat: docs can be built with both sphinx & mkdocs by @yozachar in [#262](htLow4/13/2023
0.21.0_**Breaking**_ ⚠️ - Drops support for all Python versions below `v3.8`. - Makes API's primary parameter, `positional`, and the remaining, `keyword-only`. - Keyword-only parameters like `max` and `min`, has been renamed to `max_val` and `min_val` respectively. - `domain` API now accepts two new keyword-only arguments: `rfc_1034: bool = False` and `rfc_2782: bool = False`. - `extremes.py` renamed to `_extremes.py` and is no longer exposed. - `truthy` was discarded in favour of simple `boolLow3/27/2023

Dependencies & License Audit

Loading dependencies...

Similar Packages

cerberusLightweight, extensible schema and data validation tool for Pythondictionaries.1.3.8
modalPython client library for Modalmain@2026-06-05
unstructured-clientPython Client SDK for Unstructured APIv0.45.0
anthropicThe official Python library for the anthropic APIv0.106.0
pipThe PyPA recommended tool for installing Python packages.main@2026-06-05

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Developer Tools

mypyOptional static typing for Python
pipThe PyPA recommended tool for installing Python packages.
anthropicThe official Python library for the anthropic API
openinference-instrumentationOpenInference instrumentation utilities