Refaire session.

This commit is contained in:
2026-09-06 19:20:51 +02:00
parent 2ff1a9b7b9
commit 2313d51a62
8 changed files with 469 additions and 10 deletions
+20 -1
View File
@@ -165,7 +165,26 @@ class EvaluationWorkspace:
def return_dir(self) -> Path:
return self.root / "A Rendre"
@property
def refaire_session_id(self) -> str | None:
from .json_io import read_json
session = read_json(self.root / "refaire-session.json", default=None)
if session is None:
return None
ident = session.get("id") if isinstance(session, dict) else None
if not isinstance(ident, str) or not re.fullmatch(r"reprise-[0-9]{8}-[0-9]{6}-[a-f0-9]{8}", ident):
raise ValueError("Invalid refaire-session.json")
return ident
@property
def refaire_session_dir(self) -> Path | None:
ident = self.refaire_session_id
return self.root / "Reprises" / ident if ident else None
def annotation_dir(self, mode: str) -> Path:
if mode == "refaire" and self.refaire_session_dir is not None:
return self.refaire_session_dir / "BRnot"
directories = {
"simple": "Anot",
"checks": "Bnot",
@@ -215,7 +234,7 @@ class EvaluationWorkspace:
missing = [
relative_path
for relative_path in relative_paths
if not (self.root / relative_path).is_dir()
if not (self.annotation_dir("refaire") if relative_path == "BRnot" else self.root / relative_path).is_dir()
]
if missing:
raise WorkspaceValidationError(self.root, missing)