Coverage for /usr/local/lib/python3.12/site-packages/prefect/_internal/schemas/serializers.py: 0%
6 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
3import orjson
6def orjson_dumps(v: Any, *, default: Any) -> str:
7 """
8 Utility for dumping a value to JSON using orjson.
10 orjson.dumps returns bytes, to match standard json.dumps we need to decode.
11 """
12 return orjson.dumps(v, default=default).decode()
15def orjson_dumps_extra_compatible(v: Any, *, default: Any) -> str:
16 """
17 Utility for dumping a value to JSON using orjson, but allows for
18 1) non-string keys: this is helpful for situations like pandas dataframes,
19 which can result in non-string keys
20 2) numpy types: for serializing numpy arrays
22 orjson.dumps returns bytes, to match standard json.dumps we need to decode.
23 """
24 return orjson.dumps(
25 v, default=default, option=orjson.OPT_NON_STR_KEYS | orjson.OPT_SERIALIZE_NUMPY
26 ).decode()