Skip to content

Generics not supported #8

@sherbang

Description

@sherbang

Example:

from typen import enforce_type_hints

from typing import Generic, TypeVar

ModelT = TypeVar("ModelT")

class Test(Generic[ModelT]):
    def __init__(self, val:ModelT):
        self.val = val
    
    @enforce_type_hints
    def update(self, val:ModelT):
        self.val = val

    @enforce_type_hints
    def get(self) -> ModelT:
        return self.val

t=Test('foo')
t.update('bar') # Raises "ParameterTypeError: The 'val' parameter of 'update' must be ~ModelT, but a value of 'bar' <class 'str'> was specified."
t.get() # Raises "ReturnTypeError: The return type of 'get' must be ~ModelT, but a value of 'foo' <class 'str'> was returned."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions