import os, zipfile, shutil BASE = "models" def ensure_dir(path: str): os.makedirs(path, exist_ok=True) def save_and_unpack(files, target: str): """files: list of temp file paths from Gradio; target: rtlucassen/medivlad/segmentation""" dst = os.path.join(BASE, target) ensure_dir(dst) saved = [] for f in files or []: name = os.path.basename(f.name if hasattr(f, "name") else str(f)) dst_path = os.path.join(dst, name) shutil.copyfile(f.name if hasattr(f, "name") else f, dst_path) saved.append(dst_path) if name.lower().endswith(".zip"): with zipfile.ZipFile(dst_path, "r") as z: z.extractall(dst) return {"target": target, "saved": [os.path.basename(s) for s in saved], "dst": dst}