15 pays avaient des labels incohérents (sans accents, espaces ou tirets)
par rapport à leur forme correcte au niveau Pays géographique (N99) :
- EtatsUnis → États-Unis (73 nœuds)
- Bresil → Brésil (36 nœuds)
- Taiwan → Taïwan (23 nœuds)
- AfriqueDuSud → Afrique du Sud (7 nœuds)
- et 11 autres pays (Indonésie, Israël, Norvège, Pérou, etc.)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Correction des 907 erreurs ruff (pathlib, imports, nommage, simplifications, docstrings)
- Fix déduplication labels dans multiselect nœuds d'arrivée (analyse)
- Expansion 1→N label→IDs pour le Sankey (Pays d'opération)
- Ajout CLAUDE.md et document de design de l'audit
- Mise à jour .gitignore (artefacts tests exploratoires)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Problème:
- Dans l'onglet Analyse, la sélection fine des nœuds affichait les clés
techniques (ex: "Chine_geographique") au lieu des libellés lisibles
(ex: "Chine")
Solution:
- Création de mappings bidirectionnels ID↔Label pour chaque niveau
- Affichage des labels dans les multiselect pour l'utilisateur
- Stockage et utilisation des IDs en interne pour la logique métier
- Préservation de la compatibilité avec le système de persistance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Problème:
- Warning lors de la génération PDF: Missing character U+2083 (₃)
- La police Latin Modern Roman ne supporte pas les indices Unicode
Cause:
- XeLaTeX utilise par défaut lmroman10-regular qui ne contient pas
les caractères Unicode étendus (indices, exposants, symboles)
Solution:
- Configuration de polices Liberation qui supportent pleinement Unicode
* mainfont=Liberation Serif (texte principal)
* sansfont=Liberation Sans (titres, interface)
* monofont=Liberation Mono (code, technique)
- Polices Liberation sont des équivalents open-source de Times/Arial/Courier
- Pré-installées sur Fedora/RHEL et disponibles sur toutes distributions
Avantages:
- Support complet Unicode (indices ₀₁₂₃, exposants ⁰¹²³, etc.)
- Polices open-source et largement disponibles
- Meilleur rendu pour caractères scientifiques et mathématiques
- Compatibles avec la métrique des polices Microsoft
Impact:
- Plus de warnings pour les caractères Unicode
- PDF générés avec caractères spéciaux correctement affichés
Problème:
- Lors du changement de fiche dans le selectbox, l'ancienne fiche
restait affichée et il fallait cliquer 2 fois pour changer
Cause:
- Le code assignait manuellement la valeur du selectbox au session_state
AVANT l'affichage du widget, créant un conflit avec l'index forcé
- Streamlit réexécutait le script avec l'ancienne valeur stockée
Solution:
- Utilisation du paramètre 'key' pour lier automatiquement le selectbox
au session_state au lieu d'une assignation manuelle
- Suppression des lignes redondantes d'assignation
Changements:
- app/fiches/interface.py: Ajout key pour les 2 selectbox
- .gitignore: Précision /Fiches/ pour ne pas ignorer app/fiches/
Impact:
- Sélection de fiche fonctionne maintenant au premier clic
- Comportement Streamlit standard et prévisible
- Retrait de .vscode/settings.json du tracking git
- Creation de .vscode/settings.json.example comme reference
- Mise a jour .gitignore avec commentaire explicatif
- Ajout htmlcov/ et .coverage dans .gitignore
Chaque developpeur peut maintenant copier settings.json.example
vers settings.json et adapter selon ses preferences.
Ajout d'un try/except pour gérer l'erreur lorsque l'hafnium est relié
à des composants ET au procédé EUV (connexe), ce qui génère une exception
lors du traitement de la section assemblage.
Impact:
- Module IA'nalyse: génération de rapports plus robuste
- Module Plan d'action: génération de rapports plus robuste
- Pas d'impact sur les autres modules de l'application
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>