(self, relative_path: str | Path)
| 67 | return target |
| 68 | |
| 69 | def resolve_under_session(self, relative_path: str | Path) -> Path: |
| 70 | raw = Path(relative_path) |
| 71 | candidates = [] |
| 72 | if raw.is_absolute(): |
| 73 | candidates.append(raw.resolve()) |
| 74 | else: |
| 75 | candidates.append((self.session_root / raw).resolve()) |
| 76 | candidates.append(raw.resolve()) |
| 77 | for target in candidates: |
| 78 | if self.session_root in target.parents or target == self.session_root: |
| 79 | return target |
| 80 | raise ValueError("Path is outside session directory") |
| 81 | |
| 82 | def to_session_relative(self, absolute_path: str | Path | None) -> Optional[str]: |
| 83 | if not absolute_path: |
no test coverage detected