diff --git a/fastapi/encoders.py b/fastapi/encoders.py index c416abbcb..0ad548b94 100644 --- a/fastapi/encoders.py +++ b/fastapi/encoders.py @@ -240,7 +240,8 @@ def jsonable_encoder( custom_encoder=encoders, sqlalchemy_safe=sqlalchemy_safe, ) - if dataclasses.is_dataclass(type(obj)): + if dataclasses.is_dataclass(obj): + assert not isinstance(obj, type) obj_dict = dataclasses.asdict(obj) return jsonable_encoder( obj_dict, diff --git a/fastapi/routing.py b/fastapi/routing.py index 40c66f2f2..5418ad982 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -119,7 +119,8 @@ def _prepare_response_content( ) for k, v in res.items() } - elif dataclasses.is_dataclass(type(res)): + elif dataclasses.is_dataclass(res): + assert not isinstance(res, type) return dataclasses.asdict(res) return res