"""Status checker.""" from typing import Any from sqlalchemy.orm import Session from werkzeug.exceptions import NotFound from video.exceptions import InvalidReleaseStatus from video.models.sql.classes import release def check_release_status_before_action( release_id: int, valid_statuses: frozenset[str], *, session: Session | None = None, ) -> dict[str, Any]: """Check the status of a release before taking an action. Raises: NotFound: If the release is not found. InvalidReleaseStatus: If the release status is not in valid_statuses. """ release_result = release.get(release_id, session=session) if not release_result: raise NotFound("Release not found") if release_result["release_status"] not in valid_statuses: raise InvalidReleaseStatus return release_result