diff --git a/construct_typed/dataclass_struct.py b/construct_typed/dataclass_struct.py index 23a00eb..f9f9705 100644 --- a/construct_typed/dataclass_struct.py +++ b/construct_typed/dataclass_struct.py @@ -118,8 +118,8 @@ class DataclassConstruct(Adapter[t.Any, t.Any, T, T]): dc_type: t.Type[T], reverse: bool = False, ) -> None: - if not isinstance(dc_type, DataclassStruct): - raise TypeError(f"'{repr(dc_type)}' has to be a 'DataclassStruct'") + if not issubclass(dc_type, DataclassStruct): + raise TypeError(f"'{repr(dc_type)}' has to be a subclass of 'DataclassStruct'") if not dataclasses.is_dataclass(dc_type): raise TypeError(f"'{repr(dc_type)}' has to be a 'dataclasses.dataclass'") self.dc_type = dc_type diff --git a/tests/test_typed.py b/tests/test_typed.py index d74e025..b76ff91 100644 --- a/tests/test_typed.py +++ b/tests/test_typed.py @@ -6,7 +6,7 @@ import typing as t import construct as cs import construct_typed as cst -from construct_typed import DataclassBitStruct, DataclassMixin, DataclassStruct, csfield +from construct_typed import DataclassBitStruct, DataclassStruct, csfield from .declarativeunittest import common, raises, setattrs