Source code for todd.patches.py_.json

__all__ = [
    'json_dump',
    'json_load',
]

import json
import pathlib
from typing import Any


[docs] def json_dump(obj: Any, f: Any, *, compact: bool = True, **kwargs) -> None: if compact: kwargs.setdefault('separators', (',', ':')) if isinstance(f, str): with open(f, 'w') as f_: json.dump(obj, f_, **kwargs) elif isinstance(f, pathlib.Path): with f.open('w') as f_: json.dump(obj, f_, **kwargs) else: json.dump(obj, f, **kwargs)
[docs] def json_load(f: Any, **kwargs) -> Any: if isinstance(f, str): with open(f) as f_: return json.load(f_, **kwargs) if isinstance(f, pathlib.Path): with f.open() as f_: return json.load(f_, **kwargs) return json.load(f, **kwargs)