Eu uso o seguinte código para criar subclasses da classe G e passar a elas o tipo de modelo que elas devem produzir.
from typing import TypeVar, Type
class A:
@classmethod
def model_validate(cls):
print('Done')
T = TypeVar('T', bound=A)
class G[T]:
def __init__(self, model: Type[T]):
self.model = model
def func(self) -> None:
print(self.model.model_validate())
G[A](A).func()
Isso funciona bem, mas o mypy dá este erro:
error: "type[T]" has no attribute "model_validate" [attr-defined]
O que estou fazendo errado?