40 lines
796 B
Python
40 lines
796 B
Python
|
import contextlib
|
||
|
import logging
|
||
|
from os import getpid
|
||
|
|
||
|
from convopyro import Conversation
|
||
|
|
||
|
from classes.pyroclient import PyroClient
|
||
|
from modules.scheduler import scheduler
|
||
|
|
||
|
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(scheduler=scheduler)
|
||
|
Conversation(client)
|
||
|
|
||
|
try:
|
||
|
client.run()
|
||
|
except KeyboardInterrupt:
|
||
|
logger.warning("Forcefully shutting down with PID %s...", getpid())
|
||
|
finally:
|
||
|
if client.scheduler is not None:
|
||
|
client.scheduler.shutdown()
|
||
|
exit()
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|