« 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
80 lines
2.1 KiB
Text
80 lines
2.1 KiB
Text
# ERPLibre Poetry requirement
|
|
packaging
|
|
toml
|
|
|
|
# ERPLibre script
|
|
giturlparse
|
|
agithub
|
|
GitPython
|
|
retrying
|
|
xmltodict
|
|
openupgradelib
|
|
unidiff
|
|
colorama
|
|
wheel
|
|
selenium
|
|
uvloop
|
|
python-randomword-fr
|
|
isort
|
|
# Formatage et tri des imports de l'outillage : il suit les versions de
|
|
# CPython, là où black 24.8.0 s'arrête à py313. Voir .ruff.toml.
|
|
ruff
|
|
pykeepass
|
|
cryptography
|
|
keyring
|
|
click
|
|
aioshutil
|
|
python-magic
|
|
openai
|
|
humanize
|
|
requests
|
|
urwid
|
|
# Borne recopiée de script/todo/textual_setup.py (TEXTUAL_SPEC) : les écrans TUI
|
|
# sont écrits pour Textual 8, qui casse son API entre majeures. Modifier les deux.
|
|
textual>=8,<9
|
|
# Dépendance DIRECTE, même si Textual l'installe : l'écran d'état décode
|
|
# l'ANSI avec rich.text.Text.from_ansi. Compter sur une dépendance
|
|
# transitive, c'est dépendre du jour où Textual changera la sienne.
|
|
rich
|
|
# Dépendance directe : les outils d'analyse comparent des arbres XML avec lxml.
|
|
# Il n'arrivait que par pykeepass / openupgradelib / odoo-module-migrator, donc
|
|
# un jour où l'un d'eux s'en passe, il disparaît sans que rien ne le réclame.
|
|
lxml
|
|
# Classeurs Excel de « Transform data », et les tests qui les éprouvent. Le
|
|
# moteur garde son venv dédié (script/todo/transform_setup.py) : un
|
|
# .venv.erplibre installé avant cette ligne n'a pas openpyxl, et le code ne
|
|
# l'importe donc jamais au niveau d'un module.
|
|
openpyxl
|
|
python-dotenv
|
|
python-dateutil
|
|
unidecode
|
|
cloudflare
|
|
psutil
|
|
mmg
|
|
pip-audit
|
|
tldextract
|
|
PyYAML
|
|
|
|
# For mobile
|
|
pillow
|
|
|
|
# Force upgrade package to fix Ubuntu 25.04
|
|
virtualenv==20.36.1
|
|
|
|
# For logical test and quality
|
|
git+https://github.com/psf/black.git@24.8.0
|
|
pre-commit
|
|
|
|
# Bac à sable du client courriel : un VRAI serveur SMTP et un VRAI serveur
|
|
# IMAP, sur loopback, pour tester ce qu'un faux transport ne peut pas —
|
|
# littéraux IMAP, en-têtes 8 bits, coupures en plein FETCH. Utilisés
|
|
# UNIQUEMENT par les tests, jamais par le client lui-même : les tests
|
|
# concernés s'ignorent d'eux-mêmes si ces paquets manquent.
|
|
aiosmtpd
|
|
twisted
|
|
|
|
odoo-module-migrator
|
|
|
|
# Ignore because need installation system
|
|
# pymysql
|
|
# Don't forget to install selenium script/selenium/requirements.txt
|