option
MaisonMaison Skill Outils de développement mcore-linting-and-formatting

mcore-linting-and-formatting

NVIDIA/skills NVIDIA/skills

Lintez et formatez le code Python de Megatron-LM en utilisant ruff, black, isort, pylint et mypy, avec des commandes pour le formatage automatique et l’ordre des imports.

...Développer tout
0
Heure mise à jour 27 septembre 2026

Lintage et formatage

Exécution du formateur

Exécuter avant d'ouvrir une PR :

# Mode de vérification (aucune modification appliquée)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Mode de correction
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh

Outils invoqués : black, isort, pylint, ruff, mypy.

Ordre des importations

Après avoir modifié les importations dans n'importe quel fichier Python, exécutez toujours uv run isort sur ces fichiers avant de valider :

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

Configuration du groupe de lintage

À l'intérieur du conteneur :

uv sync --locked --only-group linting

Cela installe ruff, black, isort, pylint — les mêmes outils utilisés par tools/autoformat.sh et le job linting du CI.

Règles de style de code

  • Annotations de type : obligatoires sur toutes les fonctions d'API publique. Utilisez X | None, pas Optional[X].
  • Docstrings : style Google sur toutes les classes et fonctions publiques.
  • Nommage : suivez les conventions Python — snake_case pour les fonctions et variables, PascalCase pour les classes.
  • Longueur de ligne : 119 caractères (configuré dans pyproject.toml).
  • Pas de except nu : capturez toujours des types d'exceptions spécifiques.
Voir sur 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.

Tous les fichiers

5 fichiers
SKILL.md 1.6k
Voir

Installer mcore-linting-and-formatting

Téléchargez et extrayez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

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

Copier Copier
Configuration rapide: Copiez le dossier des compétences dans .claude/skills/ Claude détectera et utilisera automatiquement la compétence
Dépôt NVIDIA/skills

Compétences similaires

algorithmic-art
Heure mise à jour 27 août 2026
systematic-debugging
Heure mise à jour 3 septembre 2026
tech-debt-tracker
Heure mise à jour 29 août 2026
continual-learning
Heure mise à jour 10 septembre 2026
OR