import os from huggingface_hub import get_token PROJECT_ROOT = os.path.dirname(os.path.dirname(__file__)) RESULTS_DIR = os.environ.get("RESULTS_DIR", os.path.join(PROJECT_ROOT, "results")) SUBMISSIONS_DIR = os.environ.get( "SUBMISSIONS_DIR", os.path.join(RESULTS_DIR, "submissions"), ) SUBMISSIONS_REPO_PREFIX = "submissions" def _resolve_space_repo() -> str | None: space_id = os.environ.get("SPACE_ID") if space_id: return space_id author = os.environ.get("SPACE_AUTHOR_NAME") repo_name = os.environ.get("SPACE_REPO_NAME") if author and repo_name: return f"{author}/{repo_name}" return None def _resolve_results_dataset_repo() -> str | None: explicit = os.environ.get("RESULTS_DATASET_REPO") or os.environ.get("RESULTS_REPO") if explicit: return explicit space_id = _resolve_space_repo() if space_id: owner, repo_name = space_id.split("/", 1) return f"{owner}/{repo_name}_results" return None def _resolve_token() -> str | None: return ( get_token() or os.environ.get("HF_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN") or os.environ.get("HUGGINGFACEHUB_API_TOKEN") ) SPACE_REPO = _resolve_space_repo() RESULTS_DATASET_REPO = _resolve_results_dataset_repo() TOKEN = _resolve_token() ON_SPACE = bool(os.environ.get("SPACE_ID") or os.environ.get("SPACE_REPO_NAME")) USE_HUB_STORAGE = bool(RESULTS_DATASET_REPO and TOKEN)