"""Mushroom catalog loading for Myco.""" import json from functools import lru_cache from pathlib import Path from models.mushroom import Mushroom CATALOG_PATH = Path(__file__).resolve().parents[1] / "data" / "mushrooms.json" @lru_cache(maxsize=1) def load_mushrooms() -> tuple[Mushroom, ...]: """Load the in-repo mushroom catalog.""" raw_mushrooms = json.loads(CATALOG_PATH.read_text(encoding="utf-8")) return tuple(Mushroom.from_dict(item) for item in raw_mushrooms)