erplibre/requirement/todo_external_data.txt
Mathieu Benoit 04b9717e96 [ADD] transform data : anonymiser un fichier externe ou une base Odoo
Partager un fichier ou une base demandait d'anonymiser à la main,
colonne par colonne, ou de ne pas partager. L'entrée ouvre un fichier
externe — Excel, Access, CSV, XML, JSON — ou une base Odoo, dit ce
qu'elle porte, puis en tire une copie. L'original n'est jamais touché.

Deux règles gouvernent ce qui sort. Une colonne n'est laissée intacte
que sur son CONTENU mesuré, hors onze étiquettes structurelles : décider
sur l'étiquette recopiait les colonnes les plus identifiantes en les
annonçant protégées. Et la copie est relue octet par octet, un classeur
portant de la donnée en une douzaine d'endroits hors des cellules.

Vérifié : 5 748 tests — 13 rouges, déjà rouges sur master.

--- EN ---

Sharing a file or a database meant anonymising by hand, column by
column, or not sharing. The entry opens an external file — Excel,
Access, CSV, XML, JSON — or an Odoo database, says what it holds, then
draws a copy of it. The original is never touched.

Two rules govern what comes out. A column is left alone on its measured
CONTENT, bar eleven structural labels: deciding on the label copied the
most identifying columns verbatim while announcing them as protected.
And the copy is reread byte by byte, a workbook holding data in a dozen
places that are not cells.

Checked: 5,748 tests — 13 red, already red on master.

Assisted-by: Claude Opus 5
2026-09-11 00:06:39 -04:00

28 lines
1.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.2
xlsxwriter==3.1.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.2.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