"""Ren'Py: the conversion runs in ``app.converter.pipeline`` because it also handles archives.""" from pathlib import Path from app.converter.compatibility import CompatibilityError, Issue from app.games.base import GameProfile class RenPyProfile(GameProfile): id = "renpy" engine = "renpy" #: Converted by ``pipeline.convert_archive`` (archive unpacking, RPA, media in one pass). converts_in_pipeline = True def inspect(self, root: Path, work: Path | None = None) -> dict: from app.converter.analyze import analyze report = analyze(root) issues = [Issue(**issue) for issue in report.pop("issues", [])] if not report["hasStart"]: issues.append(Issue("missing_entry", "Не найдена точка входа start")) if issues: raise CompatibilityError("renpy", issues) return {"engine": "renpy", "compatible": True, **report}