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 10:48 +0000

1from typing import Any, TypeVar 

2 

3import orjson 

4from pydantic import BaseModel 

5 

6T = TypeVar("T") 

7B = TypeVar("B", bound=BaseModel) 

8 

9 

10def orjson_dumps(v: Any, *, default: Any) -> str: 

11 """ 

12 Utility for dumping a value to JSON using orjson. 

13 

14 orjson.dumps returns bytes, to match standard json.dumps we need to decode. 

15 """ 

16 return orjson.dumps(v, default=default).decode() 

17 

18 

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 

25 

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()