news 2026/5/9 14:16:32

CANN/shmem Pre-commit使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/shmem Pre-commit使用指南

Pre-commit 代码检查使用指南

【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem

介绍

本项目使用 pre-commit 框架在代码提交前自动执行代码质量检查,确保代码风格一致、无常见错误。

安装

1. 安装 pre-commit

pip install pre-commit

2. 安装 git hooks(推荐)

pre-commit install

安装后,每次git commit会自动运行检查。

使用方式

自动检查(推荐)

安装 git hooks 后,每次提交代码会自动触发检查:

git add . git commit -m "your message"

如果检查失败,部分工具会自动修复(如 ruff-format、clang-format),修复后重新提交即可。

手动检查

检查暂存的文件:

pre-commit run

检查指定文件:

pre-commit run ruff-check --files path/to/file.py pre-commit run clang-format --files path/to/file.cpp

检查单个 hook:

pre-commit run ruff-check pre-commit run pylint pre-commit run clang-format

跳过检查(不推荐)

git commit --no-verify -m "your message"

检查工具说明

工具语言功能配置文件
ruffPython代码格式化 + Lintpre-commit/pyproject.toml
pylintPython代码质量检查pre-commit/pyproject.toml
banditPython安全漏洞检查pre-commit/pyproject.toml
codespell通用拼写检查.pre-commit-config.yaml
typos通用拼写检查pre-commit/typos.toml
clang-formatC/C++代码格式化.clang-format

配置文件说明

主配置文件

.pre-commit-config.yaml- 定义要运行的检查工具和参数

Python 工具配置

pre-commit/pyproject.toml- ruff、pylint、bandit 的规则配置

C++ 格式化配置

.clang-format- clang-format 的格式化规则

拼写检查白名单

pre-commit/typos.toml- typos 工具的误报白名单

常见问题

Q: 检查失败怎么办?

部分工具支持自动修复(如 ruff-format、clang-format),直接重新提交即可。对于需要手动修复的问题,根据错误提示修改代码后重新提交。

Q: 如何更新 pre-commit hooks?

pre-commit autoupdate

Q: 如何查看某个工具的详细错误信息?

pre-commit run pylint --verbose

Q: 如何临时禁用某条规则?

Python (ruff/pylint):在代码行尾添加注释

x = 1 # pylint: disable=invalid-name

C++ (clang-format):使用注释包围

// clang-format off int unformatted_code = 1; // clang-format on

Q: 首次运行很慢怎么办?

首次运行需要下载和安装各个检查工具的环境,之后会使用缓存,速度会快很多。

最佳实践

  1. 安装 git hooks:使用pre-commit install自动检查每次提交
  2. 不要频繁使用--no-verify:跳过检查可能导致问题代码进入仓库
  3. 及时更新 hooks:定期运行pre-commit autoupdate获取最新版本
  4. 配置 IDE 集成:在 IDE 中配置 ruff、clang-format 插件,实时检查

【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 14:13:31

Video Speed Controller终极指南:如何将视频学习效率提升300%

Video Speed Controller终极指南:如何将视频学习效率提升300% 【免费下载链接】videospeed HTML5 video speed controller (for Google Chrome) 项目地址: https://gitcode.com/gh_mirrors/vi/videospeed 你是否曾经在观看在线课程时感到讲师语速太慢&#x…

作者头像 李华
网站建设 2026/5/9 14:11:48

React 19 + TypeScript + Zod 构建现代化天气查询应用实战

1. 项目概述:一个现代化的天气查询应用最近在整理自己的技术作品集,想找一个既能展示React和TypeScript现代开发流程,又有一定实用性的项目。于是,我动手搭建了一个基于React 19和TypeScript的天气查询应用。这个项目麻雀虽小&…

作者头像 李华
网站建设 2026/5/9 14:10:33

CONFIDERAI:融合规则模型与保形预测,为可解释AI注入统计可靠性

1. 项目概述:当规则模型遇见统计保证 在安全关键领域,比如医疗诊断、自动驾驶或者金融风控,我们需要的不仅仅是模型“猜得准”,更需要它“信得过”。一个模型告诉你某个患者有90%的概率患有心血管疾病,这个数字本身是冰…

作者头像 李华
网站建设 2026/5/9 14:09:42

钢铁工业预测性维护:AI算法、数据特征与工业应用全解析

1. 项目概述:从“坏了再修”到“未卜先知”的工业革命在钢铁厂里,设备轰鸣,热浪滚滚。一条高速运转的轧机生产线,其核心的轧辊轴承一旦突发故障,导致的非计划停机,每分钟的损失都可能高达数万元&#xff0c…

作者头像 李华
网站建设 2026/5/9 14:08:39

基于文本挖掘的荷兰数据科学与AI硕士课程技能图谱分析

1. 项目缘起:从“选课迷茫”到“技能图谱” 作为一名在数据科学领域摸爬滚打了十来年的从业者,我见过太多刚入行的朋友,甚至是已经工作一两年的同行,在面对“如何系统性地提升自己”这个问题时,陷入深深的迷茫。市面上…

作者头像 李华