SuperAPI AI 工具集

python-review

编程与开发

查看项目

更新于 10-16 09:50

技能介绍

这是一份 Python 代码审查指南,用于 Cog SDK 的 Python 代码评审。项目用 Python 实现 SDK(位于 python/cog/),其中定义了 predictor 接口、类型系统以及 HTTP/队列服务器。

用途:在评审该 SDK 代码时,明确应检查的问题类型,并避免重复指出 linter 已覆盖的内容。

主要能力与关注点:

  1. 跳过已由 linter 处理的问题:ruff 覆盖 pycodestyle(E)、Pyflakes(F)、isort(I)、warnings(W)、bandit(S)、bugbear(B)和 annotations(ANN),不应再标记这些。
  2. 类型注解:所有函数签名必须带注解;为向后兼容使用 typing_extensions;能用具体类型时避免 Any;确认注解与运行时行为一致。
  3. 兼容性:必须支持 Python 3.10 至 3.13;留意仅新版可用的语法/标准库特性;使用较新注解语法时加 from future import annotations。
  4. 错误处理:禁止裸 except: 或吞掉一切的 except Exception:;异常应有描述性信息;尽量用上下文管理器做资源清理,而非 try/finally。
  5. 异步模式:测试使用 pytest-asyncio,异步测试需要正确的 fixture;注意异步函数中的阻塞调用;正确清理异步资源(aclose、异步上下文管理器)。
  6. Predictor 接口:base_predictor.py 是核心接口,改动会影响所有用户;types.py 定义输入输出类型,需检查向后兼容性;python/cog/server/ 处理 HTTP,需留意请求处理缺陷。
  7. 测试:使用 pytest 和 fixture;tox 在 Python 3.10-3.13 上运行测试;注意测试隔离,不依赖全局状态或测试顺序。

使用方式:作为评审清单,在人工审查时逐项对照;不提供安装命令或运行步骤,资料中暂未提供具体命令。

适用场景:对 Cog SDK 的 Python 代码进行人工代码评审。

限制:仅为评审指南,不含功能实现、收费、价格或平台信息;未提供安装与运行命令,相关资料暂未提供。