paint_match / inventory.py
szwendaczjakomaj's picture
chore: HF Space deployment β€” full pipeline + inventory
816f700
Raw
History Blame Contribute Delete
908 Bytes
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()