-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Izhar Ahmad edited this page Feb 1, 2022
·
4 revisions
Python classes with types validation at runtime. (Experimental & Under Development)
You can install this library using Python's favorite, pip
package manager.
pip install -U typedclasses
Using 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] = None
Parameters 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[str, int]
Foo(x="a") # ok
Foo(x=1) # ok
Foo(x=True) # invalid
List of all types supported from typing
module can be found in the documentation.