用途:这是一份 Python 开发规范技能,在编写或修改 Python 代码时使用,帮助统一设计、风格、架构与测试做法。
主要能力与要求:设计上强调 DRY、KISS、SOLID,倾向函数式方法,有状态行为用类;接口用 Protocol 组合而非继承;每个模块单一职责;类依赖用依赖注入。代码风格要求变量、方法、类命名描述性且简洁,类、函数、枚举及枚举值都写 docstring,一致使用类型提示,避免滥用 Any。
类型注解:用 dict、list 代替 typing.Dict、typing.List,用 str | None 代替 Optional[str],带类型提示的文件顶部加 from future import annotations,优先内置类型。
架构与组织:类依赖始终通过构造器或方法注入;每个模块一个服务类(可另加接口与类模型);用 Protocol 定义接口便于注入与测试;模块聚焦单一关注点,抽取可复用方法。环境变量统一放在 environment.py,每个变量一个方法(如 api_key() 对应 API_KEY),便于测试中 mock。
数据模型:使用 Pydantic v2 做 schema、校验和数据模型,用于 API 请求/响应、配置对象和 DTO。
测试:测试目录镜像 src/ 结构,测试方法以 test_ 开头;为 def foo() 建类 TestFoo,方法名省略类名前缀;改代码时检查单元测试;采用 AAA 模式;优先 pytest,用 pytest-mock 做 mock,conftest.py 放共享 fixture,共享测试代码放 tests/test<package_name>_。实现时确保通过类型检查与测试后再提交,相关改动与测试一起原子提交。uv 单脚本与 monorepo 模式分别参见 references/uv-scripts.md 和 references/uv-monorepo.md。
限制:资料仅提供上述规范,未说明支持平台、安装方式或收费信息。