reporting Module
Report generation for Episia analyses.
This module provides classes and functions for generating structured
epidemiological reports in multiple formats (Markdown, HTML, JSON).
Classes
-
class episia.api.reporting.EpiReport(title='Epidemiological report', author=None, institution=None, date=None, description=None)[source]
Bases: object
Structured epidemiological report builder.
Example:
report = EpiReport(title="Analyse SEIR", author="Dr. Ouedraogo")
report.add_text("Introduction...", title="Introduction")
report.add_metrics({"R0": 3.2, "Peak": 42500})
report.add_table(df, title="Results")
report.save_html("rapport.html")
report.save_markdown("rapport.md")
- Parameters:
-
-
__init__(title='Epidemiological report', author=None, institution=None, date=None, description=None)[source]
- Parameters:
title (str)
author (str | None)
institution (str | None)
date (str | None)
description (str | None)
-
add_divider()[source]
- Return type:
EpiReport
-
add_figure(figure, title=None, caption=None, width='100%')[source]
- Parameters:
figure (Any)
title (str | None)
caption (str | None)
width (str)
- Return type:
EpiReport
-
add_metrics(metrics, title='Key indicators')[source]
- Parameters:
-
- Return type:
EpiReport
-
add_result(result, title=None)[source]
- Parameters:
result (Any)
title (str | None)
- Return type:
EpiReport
-
add_table(data, title=None, caption=None, max_rows=100)[source]
- Parameters:
data (Any)
title (str | None)
caption (str | None)
max_rows (int)
- Return type:
EpiReport
-
add_text(text, title=None, level=2)[source]
- Parameters:
-
- Return type:
EpiReport
-
save_html(path)[source]
- Parameters:
path (str | Path)
- Return type:
Path
-
save_json(path)[source]
- Parameters:
path (str | Path)
- Return type:
Path
-
save_markdown(path)[source]
- Parameters:
path (str | Path)
- Return type:
Path
-
to_html()[source]
- Return type:
str
-
to_json(indent=2)[source]
- Parameters:
indent (int)
- Return type:
str
-
to_markdown()[source]
- Return type:
str
-
class episia.api.reporting.ReportSection(kind: 'str', content: 'Any', title: 'Optional[str]' = None, level: 'int' = 2, caption: 'Optional[str]' = None)[source]
Bases: object
- Parameters:
kind (str)
content (Any)
title (str | None)
level (int)
caption (str | None)
-
__init__(kind, content, title=None, level=2, caption=None)
- Parameters:
kind (str)
content (Any)
title (str | None)
level (int)
caption (str | None)
- Return type:
None
-
caption: str | None = None
-
content: Any
-
kind: str
-
level: int = 2
-
title: str | None = None
Functions
-
episia.api.reporting.report_from_result(result, title=None, author=None, backend='plotly', theme='scientific')[source]
One-line report from any EpiResult.
- Parameters:
result (Any)
title (str | None)
author (str | None)
backend (str)
theme (str)
- Return type:
EpiReport
-
episia.api.reporting.report_from_model(model_result, title=None, author=None, institution=None, sensitivity_result=None, backend='plotly', theme='scientific')[source]
Full model simulation report (SIR / SEIR / SEIRD).
- Parameters:
-
- Return type:
EpiReport
Examples
Basic report creation:
from episia.api.reporting import EpiReport
report = EpiReport(
title="COVID-19 Analysis",
author="Dr. Ouedraogo",
institution="Xcept-Health"
)
report.add_text("This is an introduction...", title="Introduction")
report.add_metrics({"R0": 2.5, "Cases": 1500})
report.save_html("report.html")
report.save_markdown("report.md")