Spaces:
Sleeping
Sleeping
| """Hugging Face Space startup helper. | |
| The Flask app expects two local dataset folders. In the Space, those folders are | |
| downloaded from a separate Hugging Face Dataset repo before importing app.py, | |
| because app.py starts the pipeline boot thread at import time. | |
| """ | |
| from __future__ import annotations | |
| import os | |
| import zipfile | |
| from pathlib import Path | |
| from huggingface_hub import hf_hub_download | |
| BASE_DIR = Path(__file__).resolve().parent | |
| DATASET_REPO = os.environ.get("HF_DATASET_REPO", "MrNoOne07/second-life-data") | |
| DATASET_ZIPS = [ | |
| ("Final Clinical Trails Data.zip", "Final Clinical Trails Data"), | |
| ("Final Patients Synthea Data.zip", "Final Patients Synthea Data"), | |
| ] | |
| def _ensure_dataset(zip_name: str, folder_name: str) -> None: | |
| folder_path = BASE_DIR / folder_name | |
| if folder_path.exists() and any(folder_path.iterdir()): | |
| print(f"[bootstrap] Found {folder_name}.") | |
| return | |
| print(f"[bootstrap] Downloading {zip_name} from {DATASET_REPO}...") | |
| zip_path = hf_hub_download( | |
| repo_id=DATASET_REPO, | |
| filename=zip_name, | |
| repo_type="dataset", | |
| ) | |
| print(f"[bootstrap] Extracting {zip_name}...") | |
| with zipfile.ZipFile(zip_path, "r") as zf: | |
| zf.extractall(BASE_DIR) | |
| if not folder_path.exists(): | |
| raise RuntimeError(f"Expected extracted folder not found: {folder_path}") | |
| def main() -> None: | |
| for zip_name, folder_name in DATASET_ZIPS: | |
| _ensure_dataset(zip_name, folder_name) | |
| from app import app | |
| port = int(os.environ.get("PORT", 7860)) | |
| app.run(host="0.0.0.0", port=port, debug=False, use_reloader=False) | |
| if __name__ == "__main__": | |
| main() | |