跳转到主要内容

不稳定

项目描述

不稳定

因为有时仅记录函数不稳定是不够的。

因为经常,查阅文档以了解某物是否稳定需要花费太多时间。

因为一旦稳定,你会忘记再次检查。

安装

$ pip install unstable

实用工具

此模块提供了一种装饰器,用于标记函数为不稳定。不稳定的函数将引发一个UnstableWarning,除非在不稳定的上下文中使用。因此,防止您意外使用不稳定的函数。

提供with unstable()上下文管理器,用于静默(或记录)由不稳定的函数引发的异常。默认情况下,如果一个不稳定的上下文管理器没有检测到任何不稳定的函数的使用,它将记录一个StableWarning

请参阅README获取更多信息。

用法

标记函数为不稳定

from unstable import unstable

@unstable
def frobulate(frumious, bandersnatch):
    galumphing(frumious) + bandersnatch

标记分支为不稳定

from unstable import unstable

def galumphing(frumious):
    if frumious:
        unstable.here_be_dragons(reason='frumious=True')
        # ...
    else:
        # ...

使用不稳定代码

默认情况下,不稳定代码将引发一个UnstableWarning,将不稳定代码包装在不稳定的上下文管理器中。

from unstable import unstable

with unstable:
    fumious(True, 25) # Will Behave

frumious(False, 18) # will Fail with UnstableWarning

galumphing(False) # fine

with unstable:
    galumphing(True) # fine

上下文管理器或装饰器?

问:不稳定是上下文管理器还是装饰器?答:两者都是。这是魔法。

高级用法

我需要写文档,欢迎PR。

为什么?

受Rust的#[Unstable]的启发,它允许您只能显式使用它(这里不讨论安全性)。尽可能模仿它。

我希望能够“发布”不稳定的代码和库的N.x版本,并告知用户“自行承担风险”,尽管没有人阅读文档。这里让事情变得明显,除非你真的 打算 这样做,否则不要使用它。此外,“不稳定性”具有传染性,使用不稳定的函数的函数将变得(部分)不稳定。不稳定性的边界很明显,它是上下文管理器。

关于try/except呢?

它可以捕获异常,尽管被调用的函数不会运行。

待办事项

为Sphinx添加一个插件,自动将文档中的函数标记为不稳定。

项目详情


下载文件

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

源代码分发

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

unstable-0.5.1-py3-none-any.whl (74.5 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面