当前位置: 首页 > news >正文

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.yamlpre-commit 主配置,定义 hooks
pre-commit/pyproject.tomlPython 工具配置(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),仅供参考

http://www.jsqmd.com/news/783943/

相关文章:

  • 2026高效之选:专业的液压压滤机厂家推荐 - 品牌2025
  • CANN/ops-tensor算子调试调优指南
  • Java 设计模式:最佳实践与应用
  • 经验分享:工业采购必须了解的旋进旋涡流量计选型知识 - 速递信息
  • 为AI智能体构建持久化记忆:Stratum架构设计与工程实践
  • 基于LoRA与指令微调的中文Vicuna大模型本地部署与优化指南
  • WALAR:基于强化学习的低资源机器翻译优化方案
  • 给RK3568的Linux 4.19内核打RT-Preempt补丁,我踩过的那些坑都帮你填好了
  • FISSION-GRPO:基于强化学习的智能错误恢复系统
  • 台州普金办公设备:椒江打印机租赁公司电话 - LYL仔仔
  • CANN Ascend C算子开发套件
  • 2026丽江旅拍婚纱照梯队横评:T0/T1/T2全景拆解,第一名为何无法撼动? - 江湖评测
  • CANN/shmem SIMT远程内存访问示例
  • ru-text:为AI编码助手注入俄语文本质量灵魂的规则引擎
  • Open-Harness:一站式开源AI模型高效推理与微调框架解析
  • CANN/driver DCMI获取设备频率API
  • 98.吃透YOLOv8架构(C2f+解耦头),手把手落地行人检测项目
  • 7个Vlog背景音乐素材宝藏网站,找歌不费劲儿还不侵权 - 拾光而行
  • CANN TensorFlow迭代循环加载
  • 网络安全之 Burp Suite 深度解析与实战
  • 从RTL到可执行:手把手拆解基于FPGA的硬件仿真器前端三步骤(Analyze, Elaboration, Synthesis)
  • 2026年亲测靠谱:3个私藏AIGC降重工具+免费降AI指令,解决论文AI率过高问题 - 降AI实验室
  • 孤舟笔记 JVM篇三 JVM如何判断一个对象可以被回收?可达性分析比引用计数强在哪
  • CANN/pyasc数据连接API文档
  • 低空经济工业互联网中的数字孪生与智能体:IOC与平台协同的演进逻辑
  • ARM系统控制与调试接口:PPU与DAP详解
  • 有限单边响应游戏中的蒙特卡洛反事实遗憾最小化
  • 别再死记硬背API了!图解 LVGL 的“类”(lv_obj_class_t)与“对象”(lv_obj_t)继承体系
  • 别急着重启!Redis突然连不上的5分钟排查手册(附CentOS 7实战命令)
  • 宁波双利再生资源:镇海废旧金属回收推荐几家公司 - LYL仔仔