This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
WARNING: dont use loguru, use structlog | |
https://gist.github.com/nkhitrov/38adbb314f0d35371eba4ffb8f27078f | |
Configure handlers and formats for application loggers. | |
""" | |
import logging | |
import sys | |
from pprint import pformat |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
A demonstration on how raising KeyboardInterrupt in the context of tasks | |
spawned via asyncio's loop.run_in_executor does not cancel the threads | |
using any of the cancellation methods in asyncio Futures. | |
The only "proper" way to cancel is to: | |
1. unregister the `atexit` registered `_python_exit` function | |
2. call `shutdown(wait=False)` | |
The reason is that the `thread` module registers `_python_exit` forcing a |