erplibre/requirement/erplibre_require-ments.txt

73 lines
1.7 KiB
Text
Raw Normal View History

# ERPLibre Poetry requirement
packaging
toml
# ERPLibre script
giturlparse
agithub
GitPython
retrying
xmltodict
openupgradelib
unidiff
colorama
wheel
selenium
uvloop
python-randomword-fr
isort
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
[ADD] migration state: colour the commands, and know when not to A list of commands in flat text blends into its own headings the moment it outgrows the screen — which is exactly when it gets read. Commands are now cyan, steps bold blue, failed ones red, and each verdict wears the colour of its meaning: 1 is amber, because « there is something to look at » is not a crash and painting it red worries for nothing. Colour is refused three times over, and each refusal has cost someone: a log file full of escape codes, a grep that finds nothing, a terminal that prints them as text. A pipe is not a screen, and NO_COLOR is honoured. The full screen goes through Text.from_ansi, which does two things: it renders the colours, and it takes the rest literally. Textual parses Rich markup, so a command containing « [1] » was being eaten as a tag and vanished from the pane without a word. That was true before the colour. --- FR --- [ADD] état de migration : colorer les commandes, et savoir s'en abstenir Une liste de commandes en texte plat se confond avec ses titres dès qu'elle dépasse l'écran — et c'est justement quand elle le dépasse qu'on la lit. Les commandes sont en cyan, les étapes en bleu gras, celles qui ont échoué en rouge, et chaque verdict porte la couleur de son sens : 1 est ambre, car « il y a quelque chose à regarder » n'est pas une panne. La couleur se refuse trois fois, et chaque refus a coûté à quelqu'un : un fichier de journal truffé de codes d'échappement, un grep qui ne trouve plus rien, un terminal qui les affiche en clair. Le plein écran passe par Text.from_ansi, qui rend les couleurs ET prend le reste au pied de la lettre : une commande contenant « [1] » était avalée comme du balisage Rich et disparaissait sans un mot. Assisted-by: Claude Opus 5
2026-08-19 05:36:49 -04:00
# 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
python-dotenv
python-dateutil
unidecode
cloudflare
psutil
mmg
pip-audit
tldextract
PyYAML
# For mobile
pillow
# Force upgrade package to fix Ubuntu 25.04
2026-02-04 09:45:08 -05:00
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