Skip to main content

pvv

Minimal Python decorator to enforce type validation from type hints

Installation

This library has been created to have zero dependencies, and work with native Python. Use your favorite package manager to install pvv from PyPI.

pip install pvv

Usage

There are two ways to use the validate decorator from pvv:

Validate all parameters

Just use the decorator. A TypeError will be raised if the function is called with parameters of incorrect type.

from pvv import validate

@validate
def function(a: str, b: int, c):
    pass
>>> function("a", 3, 2)
>>> function(c=2, a="a", b=2)
>>> function(3, "a", 2)
TypeError: Incorrect type of function arguments: 'a' must be of type 'str', 'b' must be of type 'int'

Validate some parameters

from pvv import validate

@validate('a', 'c')
def function(a: str, b: int, c: bool | None):
    pass
>>> function("a", 3, True)
>>> function(3, "b", 0)
TypeError: Incorrect type of function arguments: 'a' must be of type 'str', 'c' must be of type 'bool | None'

An important note

The parameters of the validate decorator must all be of type str, otherwise a ValidatorError will be raised:

>>> @validate('a', 1)
... def func(*args, **kwargs):
...     pass
pvv.exceptions.ValidatorError: All arguments of decorator must be of type 'str'

Metadata

Release files for pvv 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pvv 1.0.0
File Size Uploaded
pvv-1.0.0.tar.gz 3.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pvv 1.0.0
File Interpreter ABI Platform
pvv-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.4 kB

Release files / pvv-1.0.0.tar.gz

Download URL pvv-1.0.0.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8f19c8eba7943fb170eb217ed143514b86a444f3a000295b8a385f6b2d11b8e6
BLAKE2b-256 checksum
How to use checksums
24e349dd959e7b6c36aa945f621778df8eb93ea874ee80b1b1a8cef78cf6150a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.12.1 Darwin/23.3.0

Release files / pvv-1.0.0-py3-none-any.whl

Download URL pvv-1.0.0-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ecdb152c770aa4799f3242cfd5f4f26529aee028f5b3b835629f06fc8f9ce18
BLAKE2b-256 checksum
How to use checksums
030a43fb498e5887532a6072ce25ffc5122133ba0e73689a6fdcb9d7140fc057
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.12.1 Darwin/23.3.0

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page