SuperAPI AI 工具集

python

编程与开发

查看项目

更新于 10-15 19:54

技能介绍

用途:这是一套针对 Python 3.11+ 的代码库内部规范,在编写或修改代码时应用,不主动重构未被要求改动的文件。

主要约定:所有公开签名需类型标注并通过 mypy --strict;使用内置泛型与 X | None(如 list[str]、str | None);优先用 Protocol 而非 ABC 继承做结构化类型;数据用 dataclass,适合时加 slots=True 与 frozen=True,Pydantic 仅用于边界校验和序列化;用 pathlib 替代 os.path;禁止可变默认参数(默认写 None 在函数内构造);用 asyncio.TaskGroup 代替裸 gather,超时用 async with asyncio.timeout(n);每个 create_task 都需持有引用防止被回收,可在 set 中保存并在完成回调里 discard;禁止裸 except;公开函数和类用 Google 风格 docstring;pytest 用 fixture 做准备、parametrize 覆盖用例;打包用 Poetry 与 pyproject.toml,ruff 做 lint 与格式化,需要对外暴露类型时加 py.typed 标记,并采用 src/ 布局。

工具配置要点:mypy 开启 strict = true,并加 warn_unreachable、warn_redundant_casts、warn_unused_ignores;对无类型依赖用 [[tool.mypy.overrides]] 配 ignore_missing_imports。pytest 的 addopts 设为 -ra、--strict-markers、--strict-config。

限制:该规范面向 Python 3.11+ 代码库,涉及版本相关特性(如 TaskGroup)。是否适用于其他项目或版本、具体依赖版本与执行流程,资料暂未提供。