Spaces:
Runtime error
Runtime error
| import json | |
| from typing import Any | |
| from datetime import datetime | |
| from typing_extensions import override | |
| import pydantic | |
| from .._compat import model_dump | |
| def openapi_dumps(obj: Any) -> bytes: | |
| """ | |
| Serialize an object to UTF-8 encoded JSON bytes. | |
| Extends the standard json.dumps with support for additional types | |
| commonly used in the SDK, such as `datetime`, `pydantic.BaseModel`, etc. | |
| """ | |
| return json.dumps( | |
| obj, | |
| cls=_CustomEncoder, | |
| # Uses the same defaults as httpx's JSON serialization | |
| ensure_ascii=False, | |
| separators=(",", ":"), | |
| allow_nan=False, | |
| ).encode() | |
| class _CustomEncoder(json.JSONEncoder): | |
| def default(self, o: Any) -> Any: | |
| if isinstance(o, datetime): | |
| return o.isoformat() | |
| if isinstance(o, pydantic.BaseModel): | |
| return model_dump(o, exclude_unset=True, mode="json", by_alias=True) | |
| return super().default(o) | |