← Files Public Equity InvestingARCHIVED FILE
skills/earnings-deep-dive/scripts/utils/io_utils.py
938 Bytes · Oct 2, 2026 · 00:03 UTC
import json
from pathlib import Path
from typing import Any
def read_json(path: str) -> dict[str, Any]:
p = Path(path)
if not p.exists():
raise FileNotFoundError(f"JSON file not found: {path}")
return json.loads(p.read_text(encoding="utf-8"))
def write_json(obj: Any, path: str) -> None:
p = Path(path)
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text(json.dumps(obj, indent=2, ensure_ascii=False), encoding="utf-8")
def ensure_dir(path: str) -> Path:
p = Path(path)
p.mkdir(parents=True, exist_ok=True)
return p
def write_text(text: str, path: str) -> None:
p = Path(path)
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text(text, encoding="utf-8")
def file_exists_or_missing(path: str) -> bool:
if path is None:
return False
if isinstance(path, str) and path.strip().upper() == "MISSING":
return False
return Path(path).exists()
SHA-256: 0185801120e968891dfa83105d933120a719b028d27d561e2d617dbef5dd210c