跳转到主要内容

PEP 562的回滚版本。

项目描述

Donate via PayPal Discord Build Coverage Status PyPI Version PyPI - Python Version License

PEP 562

概述

PEP 562的回滚版本。允许控制模块的__dir____getattr__。对于废弃属性很有用。适用于Python 2.7+。尽管它在Python 3.7上也能工作,但建议在适用的情况下使用官方Python 3.7实现。

此模块可以作为依赖项安装和使用,或者如果需要,由于许可证相当宽松,并且代码包含在单个文件中,因此很容易作为库提供。

一旦Python 3.6达到生命周期的尽头,此模块将不再相关,并将不再接收积极支持。

安装

安装使用pip完成

pip install pep562

提供

只需将文件pep562/__init__.py复制到您的项目中,并将其重命名为pep562。按需导入和使用。

用法

以下是一个简单的示例,其中我们将属性version废弃,以使用更标准的__version__

from pep562 import pep562
import warnings

__version__ = (1, 0, 0)
__all__ = ("__version__",)
__deprecated__ = {
    "version": ("__version__", __version__)
}

PY37 = sys.version_info >= (3, 7)


def __getattr__(name):
    """Get attribute."""

    deprecated = __deprecated__.get(name)
    if deprecated:
        stacklevel = 3 if PY37 else 4
        warnings.warn(
            "'{}' is deprecated. Use '{}' instead.".format(name, deprecated[0]),
            category=DeprecationWarning,
            stacklevel=stacklevel
        )
        return deprecated[1]
    raise AttributeError("module '{}' has no attribute '{}'".format(__name__, name))


def __dir__():
    """Module directory."""

    return sorted(list(__all__) + list(__deprecated__.keys()))


pep562(__name__)

许可证

MIT许可证

版权所有(c)2018 - 2021 Isaac Muse isaacmuse@gmail.com

特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的任何人无限制地使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供软件的人按以下条件这样做:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他方式,与软件或软件的使用或其他方式相关。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

pep562-1.1.tar.gz (10.0 kB 查看散列值)

上传时间

构建分发

pep562-1.1-py2.py3-none-any.whl (7.3 kB 查看散列值)

上传时间 Python 2 Python 3

支持者: