Textual était déclaré sans version. Les quatre écrans TUI du dépôt sont écrits pour la 8, et la bibliothèque casse son API entre majeures : un « pip install -U » les casse tous sans prévenir. Borner le fichier de requirements ne suffisait pas. install_command() faisait « pip install textual », sans borne : « make install » aurait pris la 8, et l'installation proposée à l'écran la majeure suivante. Deux chemins pour la même dépendance, qui ne disent pas la même chose. La borne vit donc dans une seule constante, TEXTUAL_SPEC, que install_command() utilise, et que le fichier de requirements recopie avec un commentaire qui pointe dessus. La borne ne s'applique qu'à l'installation : ensure() vérifie « est-ce importable », pas « à quelle version ». Un Textual 9 déjà présent passe, et c'est volontaire — refuser de démarrer sur une version qui marche peut-être serait pire que le problème. lxml devient une dépendance déclarée. Il n'arrivait que par pykeepass, openupgradelib et odoo-module-migrator ; le jour où l'un d'eux s'en passe, il disparaît d'un venv sans que rien ne le réclame. Sans borne : cyclonedx-python-lib demande déjà « lxml >=4,<7 », en ajouter une seconde n'apporterait qu'un conflit possible. Vérifié : install_command() porte la borne, l'insertion de « --user » hors venv reste au bon rang, et le Textual installé (8.2.8) la satisfait. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
59 lines
1.1 KiB
Text
59 lines
1.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
|
|
pykeepass
|
|
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 : 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
|
|
python-dotenv
|
|
python-dateutil
|
|
unidecode
|
|
sshconf
|
|
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
|
|
|
|
odoo-module-migrator
|
|
|
|
# Ignore because need installation system
|
|
# pymysql
|
|
# Don't forget to install selenium script/selenium/requirements.txt
|