import json from pathlib import Path from typing import Any import yaml def read_json(path: Path) -> Any: with open(path, encoding="utf-8") as f: return json.load(f) def write_json(path: Path, data: Any, indent: int = 2) -> None: path.parent.mkdir(parents=True, exist_ok=True) with open(path, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=indent) def read_yaml(path: Path) -> Any: with open(path, encoding="utf-8") as f: return yaml.safe_load(f) def write_yaml(path: Path, data: Any) -> None: path.parent.mkdir(parents=True, exist_ok=True) with open(path, "w", encoding="utf-8") as f: yaml.dump(data, f, allow_unicode=True, default_flow_style=False, sort_keys=False)