Skip to main content

A simple library for runtime type-checking.

Project description

Python versions PyPI version PyPI status Checked with Mypy Documentation Status Python package status standard-readme compliant

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

MIT © Hashberg Ltd.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typing-validation-1.2.6.post1.tar.gz (770.1 kB view details)

Uploaded Source

Built Distribution

typing_validation-1.2.6.post1-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file typing-validation-1.2.6.post1.tar.gz.

File metadata

File hashes

Hashes for typing-validation-1.2.6.post1.tar.gz
Algorithm Hash digest
SHA256 f106e936088281edfa00efaace957fc42592dac74fef118e570d563dabe86a10
MD5 c8a301972e7ea0a392db4979822a5d54
BLAKE2b-256 b3e0b1ad3df88938eb4b055f52538c9fd448fe83295bf73ed7d81e2b0ca06183

See more details on using hashes here.

File details

Details for the file typing_validation-1.2.6.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for typing_validation-1.2.6.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f5ea9a8dac88cf3959fa6415cb37c98c0a16bcbf517f2331d25539b51e0270c
MD5 3c06837de5cb42b9b46721bfa19e2595
BLAKE2b-256 7c3ce0b4fb830d59458cb9ff2a14e79d59d6b56ebebaa38de289bca066004bd5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page