Python classes with types validation at runtime.
This is purely an experiment, not meant for actual use.
You can install this library using Python's favorite, pip package manager.
pip install -U typedclassesUsing typedclasses, you can create classes in dataclasses-like manner i.e using type annotations and library will enforce types for
that class at runtime. Here's an example:
import typing
from typedclasses import TypedClass
class User(TypedClass):
id: int
name: str
email: typing.Optional[str] = NoneParameters will be validated when initialising above class. Since email has a default value set, It is optional to pass
it as a parameter while instansiating:
>>> User(id=1, name="foobar") # runs fine
>>> User(id="1", name="foobar")
TypeError: Parameter 'id' must be an instance of <class 'int'>, <class 'str'> is unsupported.This library also provides validation for various generic types from typing module:
class Foo(TypedClass):
x: typing.Union[int, float]
Foo(x=1) # ok
Foo(x=1.0) # ok
Foo(x="1") # invalidList of all types supported from typing module can be found in the documentation.
You can contribute to the library in two ways:
- Directly contributing to code using pull requests.
- Suggest features or report bugs via issues.
We welcome all contributions! 👍
When using issues, Please be descriptive about your issue and for pull requests, Try to be consistent with current design.