Deal - DbC、检查Python 值、异常和副作用


文章目录


一、关于 Deal

Deal 是用于 design by contract (DbC) 和 检查值、异常和副作用的Python库。简而言之,交易使您能够编写bug的代码。

通过在代码中添加一些装饰器,您可以获得免费测试、静态分析、形式验证等等。阅读介绍开始。



特点


二、安装

shell 复制代码
python3 -m pip install --user 'deal[all]'

三、30秒内使用 Deal

python 复制代码
# 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 lint或flake8以静态检查错误。
  • 运行python3 -m deal test或pytest生成并运行测试。
  • 只需在项目中使用该函数并在运行时检查错误。

阅读更多的文档。


四、其它

贡献

欢迎投稿!您可以贡献的一些想法:

  • 为linter添加新的检查。
  • 改善文档。
  • 添加更多测试。
  • 提高性能。
  • 找到bug?修好它!
  • 写了一篇关于交易的文章?太好了。让我们把它添加到README.md中。
  • 没有时间编码?别担心!只需告诉您的朋友和订阅者该项目。更多用户->更多贡献者->更多酷功能。

要在本地运行测试,您只需要任务。运行task all来运行所有代码格式化程序、linter和测试。

谢谢你❤️


2025-03-19(三)

相关推荐
言乐66 分钟前
Python区分广度优先深度优先宽度优先的区别
python·算法·深度优先·广度优先·宽度优先
打工仔折腾 AI17 分钟前
LLaMA 1 到 LLaMA 3 架构演进拆解:从 RoPE、GQA 到词表扩张
人工智能·后端·python·深度学习·langchain·llama
旋生万物1 小时前
螺旋角分布的功率谱分析:多窗谱 + FDR 校正
开发语言·python
专业程序开发源1 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
wuyk5551 小时前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python
kaiyou20262 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
weixin_440730502 小时前
装饰器decorator总结(函数即是变量、高阶函数、嵌套函数、参数组)
python·装饰器
零基础1232 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化
zyj8890912 小时前
工厂标识系统设计规范?工厂标识牌有哪些类型?
python·设计规范
weixin_440730502 小时前
迭代器Iterator(列表生成器、可迭代的如何生成迭代器)
开发语言·python