import contextlib import logging from os import getpid from classes.pyroclient import PyroClient from modules.scheduler import scheduler from convopyro import Conversation logging.basicConfig( level=logging.INFO, format="%(name)s.%(funcName)s | %(levelname)s | %(message)s", datefmt="[%X]", ) logger = logging.getLogger(__name__) with contextlib.suppress(ImportError): import uvloop uvloop.install() def main(): client = PyroClient() Conversation(client) try: client.run() except KeyboardInterrupt: logger.warning("Forcefully shutting down with PID %s...", getpid()) finally: scheduler.shutdown() exit() if __name__ == "__main__": main()