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)
True # no error raised => 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'

The function is_valid is a variant of the validate function which returns False in case of validation failure, instead of raising TypeError:

>>> from typing_validation import is_valid
>>> is_valid([0, 1, "hi"], list[int])
False

The function latest_validation_failure can be used to access detailed information immediately after a failure:

>>> from typing_validation import latest_validation_failure
>>> is_valid([0, 1, "hi"], list[int])
False
>>> failure = latest_validation_failure()
>>> print(failure)
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'

Please note that latest_validation_failure clears the internal failure logs after returning the latest failure, so the latter must be manually stored if it needs to be accessed multiple times.

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.1.12.post0.tar.gz (774.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typing_validation-1.1.12.post0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file typing_validation-1.1.12.post0.tar.gz.

File metadata

  • Download URL: typing_validation-1.1.12.post0.tar.gz
  • Upload date:
  • Size: 774.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for typing_validation-1.1.12.post0.tar.gz
Algorithm Hash digest
SHA256 78930022a23aea9d607d2478de62fc162c58709a60d4c69287a01e96e9242bd8
MD5 7d50f39390c5a8578ed9c80cd0837d72
BLAKE2b-256 6b8b64994fe5586efd087dd0481d7a64bf9243f8a962aaab54041bddfbe05876

See more details on using hashes here.

File details

Details for the file typing_validation-1.1.12.post0-py3-none-any.whl.

File metadata

File hashes

Hashes for typing_validation-1.1.12.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7c8080dd1f9cdd49c8d7829016b8283404f7d2b5582235b26730964d9dccf6d
MD5 752805634a2dd7259d88678d82ab3e33
BLAKE2b-256 3c2791e8edc0cfedf2dfb0af160bae394a3760a0fa9d8990938013ab9d800e01

See more details on using hashes here.

Supported by

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