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 lintflake8以静态检查错误。
  • 运行python3 -m deal testpytest生成并运行测试。
  • 只需在项目中使用该函数并在运行时检查错误。

阅读更多的文档


四、其它

贡献

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

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

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

谢谢你❤️


2025-03-19(三)

相关推荐
wyiyiyi4 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
mit6.8245 小时前
[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
人工智能·python
没有bug.的程序员5 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋5 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
AntBlack6 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
杜子不疼.8 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
myzzb9 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
TLuoQiu9 小时前
小电视视频内容获取GUI工具
爬虫·python
我叫黑大帅9 小时前
【CustomTkinter】 python可以写前端?😆
后端·python
胡耀超9 小时前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr