跳转到主要内容

**Deal** 是一个用于 [基于合同的编程][wiki] (DbC) 的 Python 库。

项目描述

Deal

Build Status PyPI version Development Status

一个用于 基于合同的编程 (DbC) 和检查值、异常和副作用(side-effects)的 Python 库。简而言之,deal 可以帮助你编写无错误的代码。通过向你的代码中添加一些装饰器(decorators),你可以免费获得测试、静态分析、形式化验证等更多功能。阅读 入门介绍 开始使用。

功能

30秒内完成 Deal

# the result is always non-negative
@deal.post(lambda result: result >= 0)
# the function has no side-effects
@deal.pure
def count(items: List[str], item: str) -> int:
    return items.count(item)

# generate test function
test_count = deal.cases(count)

现在我们可以

  • 运行 python3 -m deal lintflake8 以进行静态错误检查。
  • 运行 python3 -m deal testpytest 以生成和运行测试。
  • 只需在项目中使用该函数并检查运行时错误。

文档 中了解更多。

安装

python3 -m pip install --user 'deal[all]'

贡献

欢迎贡献!以下是一些您可以贡献的想法

  • 为代码检查器添加新的检查。
  • 改进文档。
  • 添加更多测试。
  • 提高性能。
  • 发现了bug?修复它!
  • 写了一篇关于 deal 的文章?太好了!让我们将其添加到 README.md 中。
  • 没有时间编码?没关系!只需告诉您的朋友和订阅者有关此项目的信息。用户越多 -> 贡献者越多 -> 更酷的功能。

要本地运行测试,您需要 task。运行 task all 以运行所有代码格式化器、代码检查器和测试。

谢谢 :heart

项目详情


发行历史 发布通知 | RSS 源

下载文件

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

源分发

deal-4.24.4.tar.gz (724.4 kB 查看哈希值)

上传时间 源码

构建分发

deal-4.24.4-py3-none-any.whl (206.9 kB 查看哈希值)

上传时间 Python 3

由以下提供支持