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. Detailed examples can be found in the notebooks folder folder.
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
File details
Details for the file typing-validation-0.0.1.post5.tar.gz
.
File metadata
- Download URL: typing-validation-0.0.1.post5.tar.gz
- Upload date:
- Size: 36.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f75f4e122c3f020518b6b4c1daeee26e7fb62a630e07946f19c2b4f502f828c2 |
|
MD5 | efcbea361b2ff802d4efb3ce465713bd |
|
BLAKE2b-256 | d265d3feb102129bf3c2d84b242805b464e0ee4bfd1e907164770596da8c94fc |
File details
Details for the file typing_validation-0.0.1.post5-py3-none-any.whl
.
File metadata
- Download URL: typing_validation-0.0.1.post5-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ebc9f3a31a6610873918398da0eb2627a67f565db686b584d22257865591764 |
|
MD5 | ba2fca8a382a59ae54e16848c78c1255 |
|
BLAKE2b-256 | 1116931b3c49975cb0528631afe340ef35cc43555719d0f2519599e109a06a2a |