# __init__.py Common functions for uasyncio primitives # Copyright (c) 2018-2020 Peter Hinch # Released under the MIT License (MIT) - see LICENSE file try: import uasyncio as asyncio except ImportError: import asyncio async def _g(): pass type_coro = type(_g()) # If a callback is passed, run it and return. # If a coro is passed initiate it and return. # coros are passed by name i.e. not using function call syntax. def launch(func, tup_args): res = func(*tup_args) if isinstance(res, type_coro): res = asyncio.create_task(res) return res def set_global_exception(): def _handle_exception(loop, context): import sys sys.print_exception(context["exception"]) sys.exit() loop = asyncio.get_event_loop() loop.set_exception_handler(_handle_exception)