28 lines
790 B
Python
28 lines
790 B
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
from .schemas import JobPaths
|
|
|
|
|
|
class Storage:
|
|
def __init__(self, base_dir: Path) -> None:
|
|
self.base_dir = base_dir
|
|
self.base_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
def prepare_job_dirs(self, job_id: str) -> JobPaths:
|
|
root = self.base_dir / job_id
|
|
input_dir = root / "input"
|
|
output_dir = root / "output"
|
|
input_dir.mkdir(parents=True, exist_ok=True)
|
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
return JobPaths(
|
|
root=root,
|
|
input_dir=input_dir,
|
|
output_dir=output_dir,
|
|
mask_path=input_dir / "mask.png",
|
|
excel_path=input_dir / "names.xlsx",
|
|
config_path=root / "config.json",
|
|
)
|