课题20:项目代码规范与格式化
难度:低
概述:为项目引入代码格式化工具(Black、isort)和静态检查工具(Ruff、mypy),统一代码风格,确保质量。
详细任务:
1. 配置pyproject.toml,添加Black和isort配置。
2. 配置Ruff(或Flake8)进行代码风格检查,定义忽略规则。
3. 配置mypy进行静态类型检查,为关键模块添加类型注解。
4. 添加pre-commit hooks,确保提交前自动格式化和检查。
5. 在CI中增加lint步骤(结合课题6的CI)。
6. 格式化整个项目代码库,修复所有lint错误。
交付产物:
- pyproject.toml配置文件
- .pre-commit-config.yaml
- CI配置文件中的lint作业
- 文档:代码规范指南、如何运行格式化和检查
12周每周目标:
- W1:学习Black/isort/Ruff/mypy的用法和配置方法,本地安装测试。
- W2:编写pyproject.toml,配置Black行长度(如88)、isort配置。
- W3:配置Ruff,选择要启用的检查规则(如E、F、W),定义忽略规则。
- W4:在本地运行Black和isort格式化整个项目,提交PR。
- W5:配置mypy,为项目根目录添加mypy.ini,先忽略错误较多的模块。
- W6:为关键模块(如ir.py、dsl_parser.py)添加类型注解。
- W7:逐步为其他模块添加类型注解,修复mypy错误。
- W8:安装pre-commit,编写.pre-commit-config.yaml,包含black、isort、ruff、mypy。
- W9:测试pre-commit hooks,确保每次提交自动运行。
- W10:在CI配置中添加lint作业(使用ruff和mypy),与课题6的CI集成。
- W11:修复CI中发现的剩余lint错误,确保CI通过。
- W12:撰写代码规范文档,包含如何安装pre-commit、如何运行检查。