用于处理自动弃用的库
项目描述
弃用
弃用 库提供了用于测试的 弃用 装饰器和 fail_if_not_removed 装饰器。这两个装饰器共同启用了一些自动化功能
弃用方法的文档字符串会在末尾附加弃用详细信息。如果您直接从源生成API文档,则无需担心编写自己的通知。您也不必担心忘记编写它。这已经为您完成。
而不仅仅是因为您弃用了它,但从未真正移除它,您可以让您的测试告诉您何时是移除代码的时候。当 @deprecated 装饰器被告知何时完全移除代码时,它会导致 @fail_if_not_removed 引发一个 AssertionError,导致您的 unittest 或 py.test 测试失败。
有关完整文档,请参阅 http://deprecation.readthedocs.io/。
安装
pip install deprecation
使用方法
import deprecation @deprecation.deprecated(deprecated_in="1.0", removed_in="2.0", current_version=__version__, details="Use the bar function instead") def foo(): """Do some stuff""" return 1
……但是Python不是忽略 DeprecationWarning 吗?
是的,默认情况下从2.7开始——并且有很好的理由 [1] ——这与此功能兼容。
在开发过程中,使用
-W
标志或PYTHONWARNINGS
环境变量运行测试通常很有意义,这样您就可以捕获警告并适当地处理它们。该库产生的警告显示在那里,因为它们是内置的DeprecationWarning
的子类。有关更多详细信息,请参阅命令行和环境变量文档。即使您没有启用这些功能,该库的行为仍然是相同的。文档字符串仍然会更新,并且当需要时测试仍然会失败。您将获得无论Python如何关注
DeprecationWarning
的好处。