"""Vues HTML thématiques — orchestrateurs des renderers du rapport. Chantier 3 du plan d'évolution post-Sprint 97. Pourquoi ce package ------------------- Avant ce chantier, ``picarones/report/`` exposait 26 modules ``*_render.py``, dont **16 étaient orphelins** : testés mais jamais importés par ``generator.py`` ni inclus dans aucun template Jinja2. Le chantier 3 résout ce déséquilibre **par regroupement** : chaque renderer orphelin trouve une **adresse** dans une vue thématique, qui est elle-même branchée conditionnellement au rapport principal si elle a du contenu à afficher. Vues livrées par ce chantier ---------------------------- - :mod:`economics` — throughput effectif + (cost projection si fourni) - :mod:`advanced_taxonomy` — taxonomy_comparison + cooccurrence + intra_doc + lexical_modernization - :mod:`diagnostics` — levers + image_predictive + baseline + longitudinal + multirun_stability + worst_lines - :mod:`pipeline` — pipeline_dag + error_absorption + incremental_comparison + module_audit - :mod:`robustness` — robustness_projection (workflow CLI séparé) Convention API -------------- Chaque vue expose une fonction publique ``build__view_html(report_data, labels, **opts) -> str`` qui : 1. **Prend** ``report_data`` (dict construit par :func:`picarones.report.generator._build_report_data`), ``labels`` (i18n) et des options spécifiques à la vue (ex. fixtures externes que l'utilisateur peut fournir). 2. **Calcule** les données dont chaque renderer a besoin à partir de ``report_data`` quand c'est possible. 3. **Compose** le HTML des sous-renderers en blocs ``
`` collapsibles (premier ouvert par défaut). 4. **Retourne** la chaîne HTML complète, ou ``""`` si aucune sous-section n'a de contenu (adaptive masking corpus-wide). Le générateur principal (``generator.py``) appelle ces fonctions et passe leur retour au template Jinja2 ``view_analyses.html`` qui les inclut sous forme de cartes pleine largeur derrière un en-tête identifiant la famille. Ne pas confondre ---------------- ``views/.py`` = orchestrateur (composition + adaptive masking). ``_render.py`` = rendu HTML d'un seul bloc atomique. Les renderers atomiques restent inchangés, l'orchestrateur les combine. """ from picarones.report.views.advanced_taxonomy import build_advanced_taxonomy_view_html from picarones.report.views.diagnostics import build_diagnostics_view_html from picarones.report.views.economics import build_economics_view_html from picarones.report.views.pipeline import build_pipeline_view_html from picarones.report.views.robustness import build_robustness_view_html __all__ = [ "build_advanced_taxonomy_view_html", "build_diagnostics_view_html", "build_economics_view_html", "build_pipeline_view_html", "build_robustness_view_html", ]