Support dataclasses in responses (#3576)

Co-authored-by: amit lissack <amit@opentrons.com>
This commit is contained in:
Sebastián Ramírez
2021-07-21 16:39:12 +02:00
committed by GitHub
parent 49517d3310
commit 96fdfc53cc
3 changed files with 66 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
import dataclasses
from collections import defaultdict
from enum import Enum
from pathlib import PurePath
@@ -61,6 +62,8 @@ def jsonable_encoder(
custom_encoder=encoder,
sqlalchemy_safe=sqlalchemy_safe,
)
if dataclasses.is_dataclass(obj):
return dataclasses.asdict(obj)
if isinstance(obj, Enum):
return obj.value
if isinstance(obj, PurePath):

View File

@@ -1,4 +1,5 @@
import asyncio
import dataclasses
import email.message
import enum
import inspect
@@ -90,6 +91,8 @@ def _prepare_response_content(
)
for k, v in res.items()
}
elif dataclasses.is_dataclass(res):
return dataclasses.asdict(res)
return res