Socle JSON : le noyau de donnees passe par socle.lire_json (STUD-1093) #1617

Merged
hermes-fusion merged 1 commit from hermes/socle-json-donnees into main 2026-10-15 00:35:10 +02:00
Collaborator

Les 16 lectures de fichier JSON du noyau de donnees (collecte, tableau-bord, etat, sujets, accueil_donnees) passent par socle.lire_json au lieu de json.load(open(...)), avec un defaut choisi selon la suite du code et la reaction d'origine reproduite quand le defaut est rendu (contrat STUD-1094).

Les 6 lectures reseau/callback, les 5 JSONL lus ligne par ligne et le json.loads sur une chaine regex restent inchanges ; ils sont documentes dans un commentaire du ticket.

Preuves :

  • rendu fige identique octet pour octet : python3 _tableau/rendu-fige.py _tableau avant.html puis apres.html, cmp → md5 78d01d25f2c59403f7ea379e0429372d des deux cotes.
  • python3 _tableau/lancer-tests.py --tout : bancs verts, sauf trois echecs d'environnement (fichiers /tmp appartenant a un autre utilisateur, multica absent) qui se reproduisent a l'identique sur main dans le meme environnement ; la couverture mesuree est celle de main (coeur 97.9 %, ensemble 98.6 %).

Pas de fusion (phase d'essai).

Les 16 lectures de fichier JSON du noyau de donnees (collecte, tableau-bord, etat, sujets, accueil_donnees) passent par `socle.lire_json` au lieu de `json.load(open(...))`, avec un defaut choisi selon la suite du code et la reaction d'origine reproduite quand le defaut est rendu (contrat STUD-1094). Les 6 lectures reseau/callback, les 5 JSONL lus ligne par ligne et le `json.loads` sur une chaine regex restent inchanges ; ils sont documentes dans un commentaire du ticket. Preuves : - rendu fige identique octet pour octet : `python3 _tableau/rendu-fige.py _tableau avant.html` puis `apres.html`, `cmp` → md5 78d01d25f2c59403f7ea379e0429372d des deux cotes. - `python3 _tableau/lancer-tests.py --tout` : bancs verts, sauf trois echecs d'environnement (fichiers /tmp appartenant a un autre utilisateur, `multica` absent) qui se reproduisent a l'identique sur main dans le meme environnement ; la couverture mesuree est celle de main (coeur 97.9 %, ensemble 98.6 %). Pas de fusion (phase d'essai).
Les seize lectures de fichier JSON du noyau de donnees ouvraient le fichier avec
json.load(open(...)) et refaisaient chacune sa gestion d'erreur : une source
absente ou abimee faisait tomber la page, et le contrat de STUD-1094 n'etait tenu
nulle part. Elles passent par socle.lire_json, avec un defaut choisi selon la
suite du code et la reaction d'origine reproduite quand le defaut est rendu.

Les six lectures reseau/callback, les cinq JSONL lus ligne par ligne et le
json.loads sur une chaine regex sont inchanges : lire_json ne couvre pas ces cas.

Trois bancs couvrent les nouvelles branches (jeton YouTube, TikTok et Instagram
illisible, rendu sans collecte) ; le rendu fige du tableau reste identique octet
pour octet.
hermes-bot force-pushed hermes/socle-json-donnees from ad16a5a42a to d7f9c2f5b9
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 33s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 12s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 14s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 13s
2026-10-14 18:49:21 +02:00
Compare
hermes-fusion deleted branch hermes/socle-json-donnees 2026-10-15 00:35:11 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette relu), sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette `relu`), sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/studio!1617
No description provided.