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(三)

相关推荐
Bellafu6666 小时前
selenium常用的等待有哪些?
python·selenium·测试工具
小白学大数据6 小时前
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
爬虫·python·ajax
2401_841495647 小时前
【计算机视觉】基于复杂环境下的车牌识别
人工智能·python·算法·计算机视觉·去噪·车牌识别·字符识别
Adorable老犀牛8 小时前
阿里云-ECS实例信息统计并发送统计报告到企业微信
python·阿里云·云计算·企业微信
倔强青铜三8 小时前
苦练Python第66天:文件操作终极武器!shutil模块完全指南
人工智能·python·面试
倔强青铜三8 小时前
苦练Python第65天:CPU密集型任务救星!多进程multiprocessing模块实战解析,攻破GIL限制!
人工智能·python·面试
Panda__Panda8 小时前
docker项目打包演示项目(数字排序服务)
运维·javascript·python·docker·容器·c#
Lris-KK9 小时前
力扣Hot100--94.二叉树的中序遍历、144.二叉树的前序遍历、145.二叉树的后序遍历
python·算法·leetcode
zy_destiny10 小时前
【工业场景】用YOLOv8实现抽烟识别
人工智能·python·算法·yolo·机器学习·计算机视觉·目标跟踪
(●—●)橘子……10 小时前
记力扣2009:使数组连续的最少操作数 练习理解
数据结构·python·算法·leetcode