Myco / game /catalog.py
byte-vortex's picture
Deploy Myco from CI
9fa751e verified
Raw
History Blame Contribute Delete
486 Bytes
"""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)