A simple library for runtime type-checking.
Project description
Python Typing Validation
Table of Contents
Install
You can install the latest release from PyPI as follows:
pip install 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: 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: For type list[int], invalid value: [0, 1, 'hi']
For type <class 'int'>, invalid value: 'hi'
For union types, detailed validation failures are shown for individual union member types, where available:
>>> from typing import *
>>> validate([[0, 1, 2], {"hi": 0}], list[Union[Collection[int], dict[str, str]]])
TypeError: For type list[typing.Union[typing.Collection[int], dict[str, str]]],
invalid value: [[0, 1, 2], {'hi': 0}]
For type typing.Union[typing.Collection[int], dict[str, str]], invalid value: {'hi': 0}
Detailed failures for member type typing.Collection[int]:
For type <class 'int'>, invalid value: 'hi'
Detailed failures for member type dict[str, str]:
For type <class 'str'>, invalid value: 0
API
The API documentation for this package is automatically generated by pdoc.
Contributing
Please see the contributing file.
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-0.0.1.post7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0781b81aa298b0759da122bb9123eb3746b51ae918ee88d12f7f9d99ed48632a |
|
MD5 | ee9c8073552ce575594d49bea92a1d3d |
|
BLAKE2b-256 | e2b6555adbfa51b111e2905f3f4529462215ee650c3dc47cd015601fe2c126cc |
Hashes for typing_validation-0.0.1.post7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1a480cd5e9a4c1b59da43939f80ac514da4e8d6e5c24c8db851aa13dd96cc97 |
|
MD5 | e499babf200c72346b8d9bf0be2fb69c |
|
BLAKE2b-256 | 53cf5c51d08c77cd9e100f40a321ee40f7cc6f937f75f91c462b2f0c2125b8b4 |