linting-and-formatting

Par nvidia · skills

Linting et formatage pour Megatron-LM. Couvre l'exécution de `autoformat.sh`, les outils (`ruff`, `black`, `isort`, `pylint`, `mypy`) et les règles de style du code.

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

Linting et Formatage


Exécuter le Formateur

Exécutez avant d'ouvrir une PR :

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

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

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


Ordre des Imports

Après avoir édité les imports dans n'importe quel fichier Python, exécutez toujours uv run isort sur ces fichiers avant de faire un commit :

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

Configuration du Groupe de Linting

À 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 de CI.


Règles de Style de Code

  • Annotations de type : obligatoires sur toutes les fonctions d'API publiques. 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'exception spécifiques.

Skills similaires