不稳定
项目描述
不稳定
因为有时仅记录函数不稳定是不够的。
因为经常,查阅文档以了解某物是否稳定需要花费太多时间。
因为一旦稳定,你会忘记再次检查。
安装
$ 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 查看散列)
关闭
unstable-0.5.1-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 331c29b1bcb9521cb4319957d1493563b1d0a8f289e53a6fe6bd45e3d3bf261e |
|
MD5 | 7dfd9fc8464274869f1e49f7cd106fcf |
|
BLAKE2b-256 | 802b08592d9bf22f536bea640b7828e5f7b817190c9e22f0b8305ffb82cf48df |