Fast, simple, and correct runtime data validation and enforcement using Python 3 type hints.
Typical is a Python library that provides runtime analysis, inference, validation, and enforcement of Python types and PEP 484 Type Hints. It allows developers to ensure data correctness and integrity by leveraging Python's native typing system for validation and serialization tasks.
Python developers who need robust runtime type validation, data serialization/deserialization, and enforcement of type hints in their applications, especially those working with APIs, data processing, or complex data structures.
Typical stands out by offering multiple high-level APIs (Protocol, Functional, Object) for flexibility, full compliance with Python typing PEPs, and fast, correct validation without requiring extensive boilerplate code.
Typical: Fast, simple, & correct data-validation using Python 3 typing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers Protocol, Functional, and Object APIs, providing flexibility for different coding preferences, as demonstrated in the README's separate examples for each approach.
Fully compliant with key Python typing PEPs including 484, 585, 589, and 604, ensuring modern type hint support without compatibility issues.
Allows user-defined constraints like numeric ranges or string lengths via decorators such as @typic.constrained(ge=1, max_length=280), enabling fine-grained validation.
Seamlessly converts between JSON and Python objects with type enforcement, shown in examples using transmute and tojson methods without extra boilerplate.
The project is explicitly marked as archived, meaning no bug fixes, security updates, or support for future Python versions, as noted in the README warning.
Versioned documentation is described as 'still in-the-works,' which can lead to gaps or confusion for users seeking specific guidance or updates.
With three distinct APIs, developers may face a steeper learning curve or decision fatigue when choosing the right approach for simple validation tasks.