stable-diffusion-aws-extension/middleware_api/common/ddb_service/response.py

32 lines
866 B
Python

import json
from datetime import datetime
from typing import TypedDict, Any, cast
# fixme: discover a better way for json serialization, maybe customize constructor
class Response(TypedDict):
statusCode: int
body: Any
def to_json_serializable(obj: Any) -> Any:
if obj is None:
return ''
elif isinstance(obj, list):
result = []
for item in obj:
result.append(to_json_serializable(item))
return result
elif isinstance(obj, datetime):
return json.dumps(obj, indent=4, sort_keys=True, default=str)
elif isinstance(obj, (int, float, str, bool)):
return obj
elif isinstance(obj, dict):
to_obj = cast({}, obj)
result = {}
for key, val in to_obj.items():
result[key] = to_json_serializable(val)
return result
else:
return obj