import json import logging import os logger = logging.getLogger(__name__) def _load() -> frozenset: sa_json = os.environ.get("GOOGLE_SERVICE_ACCOUNT_JSON", "") sheet_id = os.environ.get("GOOGLE_SHEET_ID", "") if not sa_json or not sheet_id: logger.warning("inventory: env vars missing — inventory disabled") return frozenset() try: import gspread gc = gspread.service_account_from_dict(json.loads(sa_json)) ws = gc.open_by_key(sheet_id).sheet1 rows = ws.get_all_values() codes = {row[0].strip().upper().replace("-", "") for row in rows[1:] if row and row[0].strip()} logger.info("inventory: loaded %d codes", len(codes)) return frozenset(codes) except Exception as exc: logger.warning("inventory: failed to load (%s) — inventory disabled", exc) return frozenset() OWNED: frozenset = _load()