mcpField
M
mcore-linting-and-formatting

mcore-linting-and-formatting

github.com/nvidia测试与质量3.8k1.8k 次安装今天更新
代码仓库

关于 mcore-linting-and-formatting

为 MCore 项目开发者提供 Python 代码格式化与静态检查流程,适用于提交 PR 前的代码质量检查。它整合项目脚本、CI 使用的工具及代码风格约定。

主要功能

  1. 01运行自动格式化脚本
  2. 02支持检查模式与修复模式
  3. 03使用 black、isort、pylint、ruff 和 mypy
  4. 04规定类型提示与文档字符串规范
  5. 05提供 linting 依赖安装命令

适用场景

  1. 01提交 PR 前检查代码
  2. 02统一 Python 导入顺序
  3. 03为公共 API 补充类型提示和文档字符串

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill mcore-linting-and-formatting

安装后在 Claude Code 中输入/mcore-linting-and-formatting确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

详细介绍

Linting 和格式化


运行格式化工具

打开 PR 前运行:

# Check mode (no changes applied)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Fix mode
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh

调用的工具:black、isort、pylint、ruff、mypy。


导入排序

编辑任何 Python 文件中的导入语句后,提交前务必对这些文件运行 uv run isort:

uv run isort <file1>.py <file2>.py

设置 Linting 工具组

在容器中:

uv sync --locked --only-group linting

这会安装 ruff、black、isort、pylint——与 tools/autoformat.sh 和 CI 的 linting 任务所用工具相同。


代码风格规则

  • 类型提示:所有公共 API 函数都必须添加类型提示。使用 X | None,不要使用 Optional[X]。
  • 文档字符串:所有公共类和函数都必须使用 Google 风格的文档字符串。
  • 命名:遵循 Python 约定——函数和变量使用 snake_case,类使用 PascalCase。
  • 行长度:119 个字符(在 pyproject.toml 中配置)。
  • 不要使用裸 except:始终捕获特定的异常类型。

评论

支持 Markdown