erplibre/conf/ruff.addons.toml
Mathieu Benoit 4734c682a9 [FIX] format : trouver les addons et leur appliquer la norme OCA
Les six cibles d'addons visaient « ./addons/<dépôt>/ », une disposition que
seul un manifeste produit : la production les range sous
« odoo<version>/addons/ ». isort s'arrêtait donc sur une trace pour un chemin
inexistant, et « make format_all » échouait sans avoir formaté un module. Les
dépôts sont maintenant NOMMÉS, cherchés sous les deux dispositions, et celui
qu'un manifeste ne rapatrie pas s'annonce puis est ignoré. Le formateur est
celui de la communauté, qui a quitté black : ruff en 88 colonnes, avec les
sections d'imports « odoo » et « odoo.addons » qu'isort ne sait pas produire.
Vérifié : trois des six dépôts sont présents ici, les autres s'annoncent
absents sans faire échouer la cible.

--- EN ---

The six addons targets aimed at "./addons/<repo>/", a layout only one manifest
produces: production files them under "odoo<version>/addons/". isort therefore
stopped on a traceback for a non-existent path, and "make format_all" failed
without formatting a module. Repositories are now NAMED, looked up under both
layouts, and one a manifest does not check out announces itself then is
skipped. The formatter is the community's, which left black: ruff at 88
columns, with the "odoo" and "odoo.addons" import sections isort cannot
produce.
Checked: three of the six repositories are present here, the others announce
themselves absent without failing the target.

Assisted-by: Claude Opus 5
2026-09-24 13:56:57 -04:00

53 lines
1.6 KiB
TOML

# Norme OCA pour les MODULES ODOO, calquée sur le gabarit
# oca-addons-repo-template — celui que porte tout dépôt d'addons de la
# communauté, et qu'on lit dans odoo18.0/OCA_OpenUpgrade/.ruff.toml.
#
# OCA a quitté black : ruff-format formate, et ruff remplace d'un coup isort,
# flake8 et pyupgrade. L'outillage d'ERPLibre suit sa propre norme, plus
# étroite — voir .ruff.toml à la racine, et format_python.sh qui aiguille.
#
# Un dépôt d'addons qui porte SON PROPRE .ruff.toml gagne sur ce fichier :
# format_addons.sh le laisse décider chez lui.
# La série Odoo décide, comme chez OCA, qui fixe une cible par branche. Cette
# valeur n'est qu'un repli : format_addons.sh passe celle de
# .python-odoo-version, la seule qui dise ce qui EXÉCUTE ces modules.
target-version = "py310"
# 88, la largeur d'OCA, et non les 79 de l'outillage.
line-length = 88
[lint]
extend-select = [
"B", # bugbear
"C90", # complexité
"E501", # ligne trop longue
"I", # tri des imports
"UP", # pyupgrade
]
[lint.per-file-ignores]
# Un __init__.py d'addon liste ses modules : ni inutilisés, ni à trier.
"__init__.py" = ["F401", "I001"]
# Un manifeste est un dictionnaire nu, que bugbear prend pour une expression
# sans effet.
"__manifest__.py" = ["B018"]
[lint.isort]
# Ce qu'isort ne sait pas faire : « odoo » et « odoo.addons » sont deux
# sections à elles seules, avant le code du module.
section-order = [
"future",
"standard-library",
"third-party",
"odoo",
"odoo-addons",
"first-party",
"local-folder",
]
[lint.isort.sections]
"odoo" = ["odoo"]
"odoo-addons" = ["odoo.addons"]
[lint.mccabe]
max-complexity = 16