from typing import Callable from types import FrameType import signal class MainApp: def __init__(self, main: Callable[[str], None], xml: str) -> None: self.shutdown = False self.main = main self.xml = xml signal.signal(signal.SIGINT, self.signal_handler) # type: ignore signal.signal(signal.SIGTERM, self.signal_handler) # type: ignore def signal_handler(self, signal: int, _: FrameType) -> None: raise SystemError(signal) def run(self) -> None: self.main(self.xml)