typing-validation
A library to perform runtime validation of Python objects using type hints.
Decision gist · record as of 2026-08-14
Yes, if you need runtime type validation and are on Python 3.14+. The library is actively maintained, has no dependencies, and offers a clear performance ladder (one-off, cached, compiled) for different validation frequencies. The copyleft license is a constraint in proprietary contexts but not a blocker for open-source or internal use. No known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.14 or later.
- Low friction: pure Python wheel with no runtime dependencies.
- Active maintenance, last release 27 days ago.
License · maintenance · safety
LGPL-3.0-or-later (copyleft) — LGPL-3.0-or-later (copyleft): derivative works and distributions must preserve the license and source availability; suitable for internal tools and open-source projects, but requires care in proprietary contexts.
last release 2026-07-18 (27 days) · last repo commit 2026-07-19 · 8 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 150,283 downloads/mo, #10,967 on PyPI
Alternatives
Verify before relying
pip install typing-validation
from typing_validation import validate, validator
# One-off check
validate([1, 2, 3], list[int]) # returns True or raises ValidationError
# Reusable validator for many values
check = validator(list[int])
check([1, 2, 3])- Whether the compiled_validator performance figures (23 ns per type-node) are reproducible on typical developer machines or are specific to the benchmark environment.
- Scope of NumPy array type support and whether other scientific libraries are covered by the extension mechanism.
What it is and what it does
typing-validation is a runtime type checker that validates Python objects against type hints. It offers three entry points: `validate()` for one-off checks that return True or raise a detailed ValidationError; `validator()` for building a reusable checker when the same type is validated many times; and `compiled_validator()` for generating specialized Python code when validation happens at very high volume. The library reports validation failures with precise location information (e.g., which dict key or list index failed), making it useful for catching data shape problems in production code or during testing.
The package supports common type forms (list, dict, tuple, union, optional, generic classes) and rejects unsupported types upfront rather than silently passing them. It includes an extension mechanism for NumPy arrays and custom classes. No runtime dependencies means installation is friction-free. The library is actively maintained and typed throughout.
Use it for
- Validate API request payloads or configuration dicts against a type hint before processing them.
- Check data shape in data pipelines where type mismatches indicate upstream errors.
- Gate validation behind assertions so it compiles out entirely under Python's -O flag.
- Build a fast reusable validator when the same type is checked repeatedly in a loop.
- Inspect whether a complex type is validatable before attempting validation, using can_validate().
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need runtime type validation and are on Python 3.14+.
The library is actively maintained, has no dependencies, and offers a clear performance ladder (one-off, cached, compiled) for different validation frequencies. The copyleft license is a constraint in proprietary contexts but not a blocker for open-source or internal use. No known vulnerabilities.
Install
typing-validation on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Active maintenance, last release 27 days ago.
Requires Python 3.14 or later.
License in practice
LGPL-3.0-or-later (copyleft): derivative works and distributions must preserve the license and source availability; suitable for internal tools and open-source projects, but requires care in proprietary contexts.
Quickstart
pip install typing-validation
from typing_validation import validate, validator
# One-off check
validate([1, 2, 3], list[int]) # returns True or raises ValidationError
# Reusable validator for many values
check = validator(list[int])
check([1, 2, 3])
Verify before relying
- Whether the compiled_validator performance figures (23 ns per type-node) are reproducible on typical developer machines or are specific to the benchmark environment.
- Scope of NumPy array type support and whether other scientific libraries are covered by the extension mechanism.
Package facts
| License | LGPL-3.0-or-later copyleft |
| Python support | Capped below the current Python release >=3.14 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 27 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 150,283 / month, #10,967 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.14Typing :: Typed |
Evidence: typing_validation-2.2.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “runtime type validation”
- typing-validationRuntime validation of Python objects against type hints, with three…
- runtypeRuntype provides runtime type validation, dataclass enhancement with…
- pyvalidpyvalid is a Python data validation tool that checks function input…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also typepy · typish · nptyping · pyre-extensions · typing-inspect · pyvalid · schema · fastjsonschema · type-enforced · colander