如何解决即将淘汰的pandas.util.testing.assert_produces_warning是否有替代方法?
我没有在API中看到一个,尽管警告提示它应该可用:
In [1]: import pandas
In [2]: from pandas.util.testing import assert_produces_warning
/home/mghenis/anaconda3/bin/ipython:1: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
#!/home/mghenis/anaconda3/bin/python
In [3]: from pandas.testing import assert_produces_warning
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-38c6b9f78373> in <module>
----> 1 from pandas.testing import assert_produces_warning
ImportError: cannot import name 'assert_produces_warning' from 'pandas.testing' (/home/mghenis/anaconda3/lib/python3.7/site-packages/pandas/testing.py)
解决方法
他们已将其移至_testing.py中的“私有” API中。
真的,您可能应该直接使用pytest的with pytest.warns()
方法,尽管我找不到围绕该选择的讨论,但我怀疑这就是他们移动它的原因。
-
assert_produces_warning
的源代码表明它是warnings.catch_warnings
的包装。- 似乎最好使用
warnings.catch_warnings
。 - Examples
- 似乎最好使用
- 来自pandas 1.0.0发行说明:
-
pandas.util.testing
模块已被弃用。使用Testing functions(GH16232)中记录的pandas.testing
中的公共API。
-
- 根据
pandas.util.testing.assert_produces_warning
的{{3}}- 我们更喜欢pandas 0.25 Test Warnings上下文管理器,因为我们检查了警告的堆栈级别设置是否正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。