Spaces:
Sleeping
Sleeping
| import os | |
| BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| MODEL_DIR = os.path.join(BASE_DIR, "saved_models") | |
| META_DIR = os.path.join(BASE_DIR, "saved_models_meta") | |
| FIGURE_DIR = os.path.join(BASE_DIR, "saved_figures") | |
| os.makedirs(MODEL_DIR, exist_ok=True) | |
| os.makedirs(META_DIR, exist_ok=True) | |
| os.makedirs(FIGURE_DIR, exist_ok=True) | |
| HF_DATASET_REPO = os.environ.get("HF_DATASET_REPO", "CircleStar/charcoal-microscopy") | |
| HF_TOKEN = os.environ.get("HF_TOKEN") | |
| def _sanitize_session_id(session_id: str) -> str: | |
| """Un session_hash Gradio est déjà un identifiant sûr, mais on filtre par | |
| prudence pour ne jamais laisser un caractère de traversée de chemin | |
| (../) atteindre os.path.join.""" | |
| safe = "".join(c for c in (session_id or "") if c.isalnum() or c in "-_") | |
| return safe or "default" | |
| def session_model_dir(session_id: str) -> str: | |
| """Répertoire des poids/pipelines pour UNE session de navigateur — isole | |
| les modèles entraînés par un·e étudiant·e de ceux des autres, qui | |
| partagent pourtant le même Space Gradio.""" | |
| d = os.path.join(MODEL_DIR, _sanitize_session_id(session_id)) | |
| os.makedirs(d, exist_ok=True) | |
| return d | |
| def session_meta_dir(session_id: str) -> str: | |
| d = os.path.join(META_DIR, _sanitize_session_id(session_id)) | |
| os.makedirs(d, exist_ok=True) | |
| return d | |
| IMAGE_SIZE = 224 | |
| RANDOM_SEED = 42 | |
| DATASET_DISPLAY_NAME = "Images microscopiques de charbons de bois" | |
| CLASSICAL_MODEL_TYPES = frozenset({"svm", "logreg", "knn", "rf"}) | |
| CV_FOLDS = 3 | |