« make format » donnait isort et black à tout fichier Python : la cible py37, plus petit dénominateur commun de six dépôts d'addons, imposait son style au code de ce dépôt. Le contexte décide désormais — les modules Odoo gardent isort et black, le reste passe par ruff, réglé dans .ruff.toml, comme la norme OCA depuis qu'elle a quitté black. Les dépôts rapatriés sous script/ en sont écartés, chemin nommé compris. La cible y reste py310 : dès 3.14 ruff écrit « except A, B: » sans parenthèses, que le python3 des hooks ne sait pas lire. Vérifié : un fichier reçoit deux normes selon son chemin, et aucun dépôt rapatrié n'est touché. --- EN --- "make format" gave isort and black to every Python file: the py37 target, lowest common denominator of six addons repositories, imposed its style on this repository's code. Context now decides — Odoo modules keep isort and black, everything else goes through ruff, set in .ruff.toml, as the OCA standard does since it left black. The repositories checked out under script/ are excluded, a named path included. The target stays py310 there: from 3.14 on, ruff writes "except A, B:" unparenthesised, which the python3 of the hooks cannot read. Checked: one file gets two standards by its path, and no checked-out repository is touched. Assisted-by: Claude Opus 5
37 lines
1.6 KiB
TOML
37 lines
1.6 KiB
TOML
# Formatage et tri des imports de l'OUTILLAGE ERPLibre — script/, test/,
|
|
# long_test/ et les scripts de la racine.
|
|
#
|
|
# ruff et non black : black 24.8.0 ne connaît aucune cible au-delà de py313,
|
|
# quand l'outillage tourne sur conf/python-erplibre-version, et son tri
|
|
# d'imports remplace isort sans second outil. C'est aussi ce que la norme OCA
|
|
# emploie depuis qu'elle a quitté black.
|
|
#
|
|
# Les modules Odoo n'obéissent PAS à ce fichier : chaque dépôt d'addons porte
|
|
# sa propre norme. script/maintenance/format_python.sh aiguille entre les deux.
|
|
#
|
|
# target-version borne ce que le formateur ÉCRIT, et non ce qui exécute le
|
|
# code. py310 et non la version du venv : PEP 758 autorise depuis 3.14
|
|
# « except A, B: » sans parenthèses, et ruff l'écrirait — or les hooks de
|
|
# script/git/hooks portent « #!/usr/bin/env python3 » et tournent donc sur le
|
|
# Python du système, qu'une distribution livre encore en 3.10.
|
|
target-version = "py310"
|
|
# 79, la largeur que le dépôt tient déjà. La norme OCA en retient 88, déclarée
|
|
# dans les dépôts d'addons qui la suivent.
|
|
line-length = 79
|
|
|
|
# Des dépôts SÉPARÉS, rapatriés par Google Repo : ils portent leur propre
|
|
# configuration, et les reformater écrirait dans l'historique d'autrui.
|
|
# force-exclude : sans lui, l'exclusion ne vaut que pour les fichiers que ruff
|
|
# DÉCOUVRE, et un chemin nommé en argument y échappe — or format_python.sh
|
|
# passe les fichiers un par un.
|
|
force-exclude = true
|
|
extend-exclude = [
|
|
"addons",
|
|
"odoo*",
|
|
"script/OCA_maintainer-tools",
|
|
"script/OCA_odoo-module-migrator",
|
|
]
|
|
|
|
[lint]
|
|
# Le tri des imports seul : le lint du dépôt reste décrit par .flake8.
|
|
select = ["I"]
|