课题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、如何运行检查。