"""Utilities to deal with uploaded files.""" from pathlib import Path from typing import Union from werkzeug.utils import secure_filename from flask import ( request, current_app as app) def save_file(key: str, upload_dir: Path) -> Union[Path, bool]: """Save the uploaded file and return the path.""" if not bool(request.files.get(key)): return False filename = Path(secure_filename(request.files[key].filename)) if not upload_dir.exists(): upload_dir.mkdir() filepath = Path(upload_dir, filename) request.files["samples_file"].save(filepath) return filepath