菜单

代码质量与预提交钩子

相关源文件

本文档涵盖了 TheAlgorithms/Python 仓库中的代码质量强制执行基础设施,重点介绍 pre-commit hooks、代码检查(linting)、格式化和自动化质量检查。该系统通过本地和 CI/CD 流水线中运行的自动化工具,确保所有贡献的代码质量一致。

有关更广泛的 CI/CD 工作流和 GitHub Actions 的信息,请参阅GitHub Actions 工作流。有关构建系统和依赖管理器的详细信息,请参阅构建系统与依赖

概述

该仓库使用 pre-commit hooks 作为主要的强制机制,实现了一个全面的代码质量系统。该系统在每次提交前自动运行多项质量检查,确保代码符合项目标准,无需手动干预。

Pre-commit Hook 架构

来源:.pre-commit-config.yaml1-65

工具配置矩阵

工具目的配置位置自动修复范围
ruff代码检查与格式化pyproject.tomlPython 文件
mypy类型检查pre-commit 中的 CLI 参数Python 文件
codespell拼写检查pyproject.toml所有文本文件
prettierYAML/TOML 格式化默认配置.toml, .yaml 文件
auto-walrusWalrus 操作符转换默认配置Python 文件
pyproject-fmtpyproject.toml 格式化默认配置pyproject.toml

来源:.pre-commit-config.yaml1-65 pyproject.toml49-158

Ruff 配置深度解析

该仓库使用 ruff 作为主要的 linting 和格式化工具,并进行了广泛的规则配置。

来源:pyproject.toml49-158

GitHub Actions 集成

pre-commit 工具与 GitHub Actions 工作流集成,以确保 CI/CD 中的质量

来源:.github/workflows/build.yml1-38 .github/workflows/ruff.yml1-17

Codespell 配置

拼写检查系统具有特定的配置,以处理技术术语和项目专用词汇

来源:pyproject.toml159-161

MyPy 类型检查配置

通过 mypy 强制执行类型检查,并针对项目需求进行了特定配置

来源:.pre-commit-config.yaml49-58

自定义验证脚本

该仓库包含超出标准工具范围的自定义验证

来源:.pre-commit-config.yaml36-47

测试集成

质量系统通过 pytest 配置与测试框架集成

来源:pyproject.toml163-178