CANN/CATCCOS预提交代码检查指南
Pre-commit 代码检查配置说明
【免费下载链接】catccosCATCCOS昇腾计算-通信融合算子模板库,是一个聚焦于提供高性能计算通信融合类算子基础模板的代码库。项目地址: https://gitcode.com/cann/catccos
本文档说明本次为 catccos 项目的 pre-commit 代码检查配置。
新增检查清单
1. 通用基础检查 (pre-commit-hooks)
| Hook | 功能 |
|---|---|
trailing-whitespace | 删除行尾空格 |
end-of-file-fixer | 确保文件以空行结尾 |
check-yaml | 验证 YAML 语法 |
check-json | 验证 JSON 语法 |
check-added-large-files | 阻止提交大文件(默认 >500KB) |
check-merge-conflict | 检测合并冲突标记 |
detect-private-key | 检测私钥/敏感信息泄露 |
2. Python 代码检查 (ruff)
- ruff lint: 代码规范检查(规则配置见
pre-commit/pyproject.toml)- 启用
D209(多行文档字符串格式) - 启用
SIM115(推荐with语句)
- 启用
- ruff format: 自动代码格式化
- 配置: 使用
pre-commit/pyproject.toml,兼容 Python 3.10+
3. Python 安全扫描 (bandit)
- 扫描常见的 Python 安全漏洞(如硬编码密码、不安全的 eval、SQL 注入等)
- 配置: 中危及以上级别,配置见
pre-commit/pyproject.toml
4. 拼写检查 (typos)
- 检测代码和文档中的拼写错误
- 配置:
pre-commit/typos.toml,已添加昇腾生态相关词汇白名单
5. C++ 代码格式化 (clang-format)
- 自动格式化 C/C++ 代码
- 风格: Google Style,4 空格缩进,120 列限制,Allman 大括号风格
- 匹配文件:
*.c, *.h, *.cpp, *.hpp, *.cc, *.hh, *.cxx, *.hxx
配置文件说明
| 文件 | 用途 |
|---|---|
.pre-commit-config.yaml | pre-commit 主配置,定义 hooks |
pre-commit/pyproject.toml | Python 工具配置(ruff、bandit) |
pre-commit/typos.toml | 拼写检查词典白名单 |
使用方式
# 安装 hook(首次) pre-commit install # 对所有文件运行检查 pre-commit run --all-files # 提交时自动触发检查 git commit -m "..."【免费下载链接】catccosCATCCOS昇腾计算-通信融合算子模板库,是一个聚焦于提供高性能计算通信融合类算子基础模板的代码库。项目地址: https://gitcode.com/cann/catccos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
