用于将现有同步库包装到python3的异步框架中的工具。
aiowrap的Python项目详细描述
假设您现有的一些具有阻塞方法的库:
def foo_sync(x, a, b): """Some existing library methods. Sleeps for x seconds and returns a + b.""" time.sleep(x) return a + b
您正在python3的异步框架中编写一个程序。使用 阻塞库,一种方法是使用线程池。这个库提供 另一个选项:
# Wraps foo_sync() into foo_async() to use in asyncio framework. time.sleep = aiowrap.wrap_async(asyncio.sleep) foo_async = aiowrap.wrap_sync(foo_sync)
现在您有了异步的、非阻塞的方法版本,可以调用 在您最喜爱的联程中:
async def main(): print(await foo_async(1, 2, 3))
这个例子的源代码可以在example/sleep.py中找到。