nos*_*klo 5 python async-await python-asyncio python-trio
我正在写一些异步库,并决定支持asyncio和trio并发库来运行它。无论选择哪个库,我都有一些代码试图变得聪明并做正确的事情。
如何检测其中哪一个用于运行我的代码?两者都可以吗?
您需要sniffio专门为解决此问题而创建的库:https : //github.com/python-trio/sniffio
这是文档中的示例:
from sniffio import current_async_library
import trio
import asyncio
async def print_library():
library = current_async_library()
print("This is:", library)
# Prints "This is trio"
trio.run(print_library)
# Prints "This is asyncio"
asyncio.run(print_library())
Run Code Online (Sandbox Code Playgroud)
它当前支持trio,asyncio,curio,并且与trio-asyncio集成在一起,因此,如果您有一个使用trio-asyncio在trio和asyncio模式之间来回切换的混合程序,它将为每种模式返回正确的值。它也可以扩展为支持新库–请参阅文档。