вариант

mcore-linting-and-formatting

NVIDIA/skills NVIDIA/skills

Линтинг и форматирование кода Python для Megatron-LM с использованием ruff, black, isort, pylint и mypy, включая команды для автоматического форматирования и упорядочивания импортов.

...Расширить все
0
Обновлено время 27 сентября 2026 г.

Линтинг и форматирование

Запуск форматтера

Выполните перед открытием PR:

# Режим проверки (без применения изменений)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Режим исправления
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
</file2></file1>

Настройка группы линтинга

Внутри контейнера:

uv sync --locked --only-group linting

Это устанавливает ruff, black, isort, pylint — те же инструменты, что используются в tools/autoformat.sh и задаче linting CI.

Правила стиля кода

  • Типизация: обязательна для всех публичных функций API. Используйте X | None, а не Optional[X].
  • Документация: стиль Google для всех публичных классов и функций.
  • Именование: следуйте соглашениям Python — snake_case для функций и переменных, PascalCase для классов.
  • Длина строки: 119 символов (настроено в pyproject.toml).
  • Без пустых except: всегда перехватывайте конкретные типы исключений.
Посмотреть на GitHub
---
name: mcore-linting-and-formatting
description: Lint and format Python code for Megatron-LM using ruff, black, isort, pylint, and mypy, with commands for autoformatting and import ordering.
license: Apache-2.0
---

# Linting and Formatting

---

## Running the Formatter

Run before opening a PR:

```bash
# 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
```

Tools invoked: `black`, `isort`, `pylint`, `ruff`, `mypy`.

---

## Import Ordering

After editing imports in any Python files, always run `uv run isort` on those
files before committing:

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

---

## Setting Up the Linting Group

Inside the container:

```bash
uv sync --locked --only-group linting
```

This installs `ruff`, `black`, `isort`, `pylint` — the same tools used by
`tools/autoformat.sh` and CI's `linting` job.

---

## Code Style Rules

- **Type hints**: required on all public API functions. Use `X | None`, not `Optional[X]`.
- **Docstrings**: Google-style on all public classes and functions.
- **Naming**: follow Python conventions — `snake_case` for functions and variables, `PascalCase` for classes.
- **Line length**: 119 characters (configured in `pyproject.toml`).
- **No bare `except`**: always catch specific exception types.

Установить mcore-linting-and-formatting

Скачайте и извлеките файлы навыков в вашу директорию .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/NVIDIA/skills/tree/main/skills/mcore-linting-and-formatting # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку с навыком в .claude/skills/ Claude автоматически обнаружит и использует этот навык
Репозиторий NVIDIA/skills

Похожие навыки

algorithmic-art
Обновлено время 27 августа 2026 г.
systematic-debugging
Обновлено время 3 сентября 2026 г.
tech-debt-tracker
Обновлено время 29 августа 2026 г.
continual-learning
Обновлено время 10 сентября 2026 г.
OR