trio + httpx gives TrioDeprecationWarning



以下测试用例给出警告:

import trio, httpx
async def amain():
async with httpx.AsyncClient() as client:
r = await client.get('https://icanhazip.com/')
print(r.text)
trio.run(amain)

输出:

> python  test.py
/path/to/.venv/lib/python3.10/site-packages/anyio/_backends/_trio.py:164: 
TrioDeprecationWarning: trio.MultiError is deprecated since Trio 0.22.0; 
use BaseExceptionGroup (on Python 3.11 and later) or exceptiongroup.BaseExceptionGroup
(earlier versions) instead (https://github.com/python-trio/trio/issues/2211)
class ExceptionGroup(BaseExceptionGroup, trio.MultiError):
193.37.32.201

使用最新Python的新鲜.venv(安装有最新的pyenv(安装了最新的brew((。

pip show trio报告0.22.0。pip show httpx报告0.23.0。这两个都是pypi上的最新版本。

这是怎么回事?如何使警告静音?

我在https://github.com/encode/httpx/discussions/2409

使警告静音:

import warnings
from trio import TrioDeprecationWarning
warnings.filterwarnings(action='ignore', category=TrioDeprecationWarning)

据我所知,最新的Trio版本使用了一些异常处理机制,这些机制刚刚在3.11.0中添加到Python中,但尚未发布(本应发布,但发布日期被推迟了(。据推测,这就是造成这种不寻常情况的原因,在这种情况下,弃用警告需要一个尚未存在的Python版本。

相关内容

  • 没有找到相关文章

最新更新