Refaire session.
This commit is contained in:
+20
-1
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user