« 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
15 lines
531 B
Bash
Executable file
15 lines
531 B
Bash
Executable file
#!/usr/bin/env bash
|
|
Red='\033[0;31m' # Red
|
|
Color_Off='\033[0m' # Text Reset
|
|
|
|
# Les MODULES ODOO, et eux seuls : les addons des séries encore supportées
|
|
# descendent jusqu'à Python 3.7, d'où la cible. L'outillage du dépôt passe par
|
|
# ruff — voir format_python.sh, qui aiguille, et .ruff.toml.
|
|
# argument 1: directory or file to format
|
|
source ./.venv.erplibre/bin/activate
|
|
black -l 79 --preview -t py37 "$@"
|
|
retVal=$?
|
|
if [[ $retVal -ne 0 ]]; then
|
|
echo -e "${Red}Error${Color_Off} black format"
|
|
exit 1
|
|
fi
|