跳转到主要内容

用于处理自动弃用的库

项目描述

弃用

Documentation Status https://travis-ci.org/briancurtin/deprecation.svg?branch=master https://codecov.io/gh/briancurtin/deprecation/branch/master/graph/badge.svg

弃用 库提供了用于测试的 弃用 装饰器和 fail_if_not_removed 装饰器。这两个装饰器共同启用了一些自动化功能

  1. 弃用方法的文档字符串会在末尾附加弃用详细信息。如果您直接从源生成API文档,则无需担心编写自己的通知。您也不必担心忘记编写它。这已经为您完成。

  2. 而不仅仅是因为您弃用了它,但从未真正移除它,您可以让您的测试告诉您何时是移除代码的时候。当 @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] ——这与此功能兼容。

  1. 在开发过程中,使用-W标志或PYTHONWARNINGS环境变量运行测试通常很有意义,这样您就可以捕获警告并适当地处理它们。该库产生的警告显示在那里,因为它们是内置的DeprecationWarning的子类。有关更多详细信息,请参阅命令行环境变量文档。

  2. 即使您没有启用这些功能,该库的行为仍然是相同的。文档字符串仍然会更新,并且当需要时测试仍然会失败。您将获得无论Python如何关注DeprecationWarning的好处。


项目详情


由以下提供支持