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, pasOptional[X]. - Docstrings : style Google sur toutes les classes et fonctions publiques.
- Nommage : suivez les conventions Python —
snake_casepour les fonctions et variables,PascalCasepour les classes. - Longueur de ligne : 119 caractères (configuré dans
pyproject.toml). - Pas de
exceptnu : capturez toujours des types d'exception spécifiques.