Coverage for /usr/local/lib/python3.12/site-packages/prefect/server/utilities/schemas/serializers.py: 0%
9 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 13:38 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 13:38 +0000
1from typing import Any, TypeVar
3import orjson
4from pydantic import BaseModel
6T = TypeVar("T")
7B = TypeVar("B", bound=BaseModel)
10def orjson_dumps(v: Any, *, default: Any) -> str:
11 """
12 Utility for dumping a value to JSON using orjson.
14 orjson.dumps returns bytes, to match standard json.dumps we need to decode.
15 """
16 return orjson.dumps(v, default=default).decode()
19def orjson_dumps_extra_compatible(v: Any, *, default: Any) -> str:
20 """
21 Utility for dumping a value to JSON using orjson, but allows for
22 1) non-string keys: this is helpful for situations like pandas dataframes,
23 which can result in non-string keys
24 2) numpy types: for serializing numpy arrays
26 orjson.dumps returns bytes, to match standard json.dumps we need to decode.
27 """
28 return orjson.dumps(
29 v, default=default, option=orjson.OPT_NON_STR_KEYS | orjson.OPT_SERIALIZE_NUMPY
30 ).decode()