File size: 387 Bytes
3ba7d5b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from __future__ import annotations

import json
from typing import Any


def safe_json_default(value: Any) -> Any:
    if hasattr(value, "tolist"):
        return value.tolist()
    if isinstance(value, set):
        return sorted(value)
    return str(value)


def safe_json_dumps(payload: Any, **kwargs: Any) -> str:
    return json.dumps(payload, default=safe_json_default, **kwargs)