The xlsx cleaning of Transform data reaches openpyxl private attributes (_external_links, _charts, _pivots, _images, _cf_rules), which is why openpyxl is pinned exactly and each bump has to pass the leak test. Checked: test_transform_external passes, 511 tests, none skipped, TestFuiteXlsx included, in a .venv.todo.external_data built from this file. --- FR --- [UPD] todo external data : openpyxl 3.1.5, xlsxwriter 3.2.9 Le nettoyage xlsx de Transform data touche des attributs privés d'openpyxl (_external_links, _charts, _pivots, _images, _cf_rules) : d'où une épingle exacte, et chaque montée doit passer le test de fuite. Vérifié : test_transform_external passe, 511 tests, aucun ignoré, TestFuiteXlsx compris, dans un .venv.todo.external_data bâti de ce fichier. Assisted-by: Claude Opus 5.5
28 lines
1.3 KiB
Text
28 lines
1.3 KiB
Text
# Lecteurs de fichiers externes pour « TODO › Execute › Transform data ».
|
||
#
|
||
# Bornes PROPRES à ce venv et indépendantes de .odoo-version : chacune
|
||
# existe pour ce que la bibliothèque fait ici, pas parce que
|
||
# pyproject.toml la déclare. Changer de version d'Odoo ne doit pas
|
||
# déplacer ce fichier, ni l'inverse.
|
||
#
|
||
# La borne openpyxl est EXACTE et non minimale : le nettoyage hors
|
||
# cellules touche _external_links, _charts, _pivots, _images et
|
||
# conditional_formatting._cf_rules, qui n'ont pas d'équivalent public en
|
||
# 3.1.2. Le test de fuite de test_transform_external.py est ce qui
|
||
# surveille cette borne à la montée de version.
|
||
openpyxl==3.1.5
|
||
xlsxwriter==3.2.9
|
||
xlrd==2.0.1
|
||
access-parser==0.0.6
|
||
chardet==5.2.0
|
||
defusedxml==0.7.1
|
||
# SANS Pillow, openpyxl retire xl/media/ en silence et ws._images reste
|
||
# toujours vide : les images disparaissent de la copie sans que rien ne
|
||
# puisse les compter ni l'annoncer. Il les rend VISIBLES au moteur, qui
|
||
# les efface ensuite.
|
||
Pillow==12.3.0
|
||
# 1404 mots français, hors réseau, un seul fichier. Le dictionnaire de la
|
||
# règle du texte ; import « randomwordfr », pas le nom du paquet. Déjà
|
||
# dans requirement/erplibre_require-ments.txt, donc .venv.erplibre l'a —
|
||
# ce venv-ci en a besoin pour son propre compte.
|
||
python-randomword-fr==1.0.0
|