Asynchronous module import for asyncio
Install from PyPI using:
pip install aioimport
Some naughty modules have long running operations during import
First thing that comes to mind is make import local:
async def my_work() -> None:
import naughty # will block event loop
It reduces time your program takes to start (or library to import), but it is still blocking your event loop.
import aioimport
async def my_work() -> None:
await aioimport.import_module("naughty") # will asynchronously import module
import naughty # will be instantaneous since `naughty` is already in `sys.modules`
await aioimport.reload(naughty) # and you can asynchronously reload modules too
Module import is done in asyncio default executor.
Be aware of the fact that GIL still exists and technically import is done concurrently rather than in parallel with your code.
This project is licensed under the MIT License - see the LICENSE file for details