A simple library for runtime type-checking.
Project description
Typing-validation is a small library to perform runtime validation of Python objects using PEP 484 type hints.
Install
You can install the latest release from PyPI as follows:
pip install --upgrade typing-validation
Usage
The core functionality of this library is provided by the validate function:
>>> from typing_validation import validate
The validate function is invoked with a value and a type as its arguments and it returns nothing when the given value is valid for the given type:
>>> validate(12, int) # nothing is returned => 12 is a valid int
If the value is invalid for the given type, the validate function raises a TypeError:
>>> validate(12, str) TypeError: Runtime validation error raised by validate(val, t), details below. For type <class 'str'>, invalid value: 12
For nested types (e.g. parametric collection/mapping types), the full chain of validation failures is shown by the type error:
>>> validate([0, 1, "hi"], list[int]) TypeError: Runtime validation error raised by validate(val, t), details below. For type list[int], invalid value at idx: 2 For type <class 'int'>, invalid value: 'hi'
API
For the full API documentation, see https://typing-validation.readthedocs.io/
Contributing
Please see CONTRIBUTING.md.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for typing-validation-1.2.4.post6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2bc9651e764552ae214f8c6d0bec1209c329a03f58dce620feba1e11ef7b50 |
|
MD5 | 118e2d762717fc3f278eb15f48f1d8c9 |
|
BLAKE2b-256 | 1d7124daacdf0ba72a62b2aa3b00fdca5ee89898e30f9bd95b53c9bc5aa675f3 |
Hashes for typing_validation-1.2.4.post6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 867f37416825ed4825cb9379507d3558282574522d777a164c27b14a93dfc058 |
|
MD5 | 90bdfa6a3856d1dd9ad95122916e5906 |
|
BLAKE2b-256 | f0f576da1a6b49d935068ce235355e18ada56e0a07d5c79cc87266e07975228a |