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 11:21 +0000

1from typing import Any 

2 

3import orjson 

4 

5 

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

7 """ 

8 Utility for dumping a value to JSON using orjson. 

9 

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

11 """ 

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

13 

14 

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 

21 

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