Skip to content

tenets.core.reporting Package

Reporting package for generating analysis reports.

This package provides comprehensive reporting functionality for all analysis results. It supports multiple output formats including HTML, Markdown, JSON, and PDF, with rich visualizations and interactive dashboards.

The reporting system creates professional, actionable reports that help teams understand code quality, track progress, and make data-driven decisions.

Main components: - ReportGenerator: Main report generation orchestrator - HTMLReporter: HTML report generation with interactive charts - MarkdownReporter: Markdown report generation - JSONReporter: JSON data export - PDFReporter: PDF report generation - Dashboard: Interactive dashboard generation - Visualizer: Chart and graph generation

Example usage

from tenets.core.reporting import ReportGenerator from tenets.config import TenetsConfig

config = TenetsConfig() generator = ReportGenerator(config)

Generate comprehensive report

generator.generate( ... analysis_results, ... output_path="report.html", ... format="html", ... include_charts=True ... )

Classes

ReportConfigdataclass

Python
ReportConfig(title: str = 'Code Analysis Report', format: str = 'html', include_summary: bool = True, include_toc: bool = True, include_charts: bool = True, include_code_snippets: bool = True, include_recommendations: bool = True, max_items: int = 20, theme: str = 'light', footer_text: str = 'Generated by Tenets Code Analysis', custom_css: Optional[str] = None, chart_config: Optional[ChartConfig] = None, custom_logo: Optional[Path] = None)

Configuration for report generation.

Controls report generation options including format, content inclusion, and visualization settings.

ATTRIBUTEDESCRIPTION
title

Report title

TYPE:str

format

Output format (html, markdown, json)

TYPE:str

include_summary

Include executive summary

TYPE:bool

include_toc

Include table of contents

TYPE:bool

include_charts

Include visualizations

TYPE:bool

include_code_snippets

Include code examples

TYPE:bool

include_recommendations

Include recommendations

TYPE:bool

max_items

Maximum items in lists

TYPE:int

theme

Visual theme (light, dark, auto)

TYPE:str

footer_text

Footer text

TYPE:str

custom_css

Custom CSS for HTML reports

TYPE:Optional[str]

chart_config

Default chart configuration

TYPE:Optional[ChartConfig]

Attributes

titleclass-attributeinstance-attribute
Python
title: str = 'Code Analysis Report'
formatclass-attributeinstance-attribute
Python
format: str = 'html'
include_summaryclass-attributeinstance-attribute
Python
include_summary: bool = True
include_tocclass-attributeinstance-attribute
Python
include_toc: bool = True
include_chartsclass-attributeinstance-attribute
Python
include_charts: bool = True
include_code_snippetsclass-attributeinstance-attribute
Python
include_code_snippets: bool = True
include_recommendationsclass-attributeinstance-attribute
Python
include_recommendations: bool = True
max_itemsclass-attributeinstance-attribute
Python
max_items: int = 20
themeclass-attributeinstance-attribute
Python
theme: str = 'light'
footer_textclass-attributeinstance-attribute
Python
footer_text: str = 'Generated by Tenets Code Analysis'
custom_cssclass-attributeinstance-attribute
Python
custom_css: Optional[str] = None
chart_configclass-attributeinstance-attribute
Python
chart_config: Optional[ChartConfig] = None
Python
custom_logo: Optional[Path] = None

ReportGenerator

Python
ReportGenerator(config: TenetsConfig)

Main report generator orchestrator.

Coordinates report generation by combining analysis data with visualizations from the viz package. Creates structured reports without duplicating visualization logic.

The generator follows a clear separation of concerns: - Core modules provide analysis data - Viz modules create visualizations - Generator orchestrates and structures the report

ATTRIBUTEDESCRIPTION
config

Configuration object

logger

Logger instance

sections

List of report sections

TYPE:List[ReportSection]

metadata

Report metadata

TYPE:Dict[str, Any]

Initialize report generator.

PARAMETERDESCRIPTION
config

Configuration object

TYPE:TenetsConfig

Attributes

configinstance-attribute
Python
config = config
loggerinstance-attribute
Python
logger = get_logger(__name__)
sectionsinstance-attribute
Python
sections: List[ReportSection] = []
metadatainstance-attribute
Python
metadata: Dict[str, Any] = {}

Functions

generate
Python
generate(data: Dict[str, Any], output_path: Path, config: Optional[ReportConfig] = None) -> Path

Generate a report from analysis data.

This is the main entry point for report generation. It takes analysis data, creates appropriate visualizations using viz modules, and outputs a formatted report.

PARAMETERDESCRIPTION
data

Analysis data from core modules

TYPE:Dict[str, Any]

output_path

Path for output file

TYPE:Path

config

Report configuration

TYPE:Optional[ReportConfig]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

Example

generator = ReportGenerator(config) report_path = generator.generate( ... analysis_data, ... Path("report.html"), ... ReportConfig(include_charts=True) ... )

ReportSectiondataclass

Python
ReportSection(id: str, title: str, level: int = 1, order: int = 0, icon: Optional[str] = None, content: Optional[Union[str, List[str], Dict[str, Any]]] = None, metrics: Dict[str, Any] = dict(), tables: List[Dict[str, Any]] = list(), charts: List[Dict[str, Any]] = list(), code_snippets: List[Dict[str, Any]] = list(), subsections: List[ReportSection] = list(), visible: bool = True, collapsed: bool = False, collapsible: bool = False)

Represents a section in the report.

A report section contains structured content including text, metrics, tables, and charts. Sections can be nested to create hierarchical report structures.

ATTRIBUTEDESCRIPTION
id

Unique section identifier

TYPE:str

title

Section title

TYPE:str

level

Heading level (1-6)

TYPE:int

order

Display order

TYPE:int

icon

Optional icon/emoji

TYPE:Optional[str]

content

Section text content

TYPE:Optional[Union[str, List[str], Dict[str, Any]]]

metrics

Key metrics dictionary

TYPE:Dict[str, Any]

tables

List of table data

TYPE:List[Dict[str, Any]]

charts

List of chart configurations

TYPE:List[Dict[str, Any]]

code_snippets

List of code examples

TYPE:List[Dict[str, Any]]

subsections

Nested sections

TYPE:List[ReportSection]

visible

Whether section is visible

TYPE:bool

collapsed

Whether section starts collapsed

TYPE:bool

Attributes

idinstance-attribute
Python
id: str
titleinstance-attribute
Python
title: str
levelclass-attributeinstance-attribute
Python
level: int = 1
orderclass-attributeinstance-attribute
Python
order: int = 0
iconclass-attributeinstance-attribute
Python
icon: Optional[str] = None
contentclass-attributeinstance-attribute
Python
content: Optional[Union[str, List[str], Dict[str, Any]]] = None
metricsclass-attributeinstance-attribute
Python
metrics: Dict[str, Any] = field(default_factory=dict)
tablesclass-attributeinstance-attribute
Python
tables: List[Dict[str, Any]] = field(default_factory=list)
chartsclass-attributeinstance-attribute
Python
charts: List[Dict[str, Any]] = field(default_factory=list)
code_snippetsclass-attributeinstance-attribute
Python
code_snippets: List[Dict[str, Any]] = field(default_factory=list)
subsectionsclass-attributeinstance-attribute
Python
subsections: List[ReportSection] = field(default_factory=list)
visibleclass-attributeinstance-attribute
Python
visible: bool = True
collapsedclass-attributeinstance-attribute
Python
collapsed: bool = False
collapsibleclass-attributeinstance-attribute
Python
collapsible: bool = False

Functions

add_metric
Python
add_metric(name: str, value: Any) -> None

Add a metric to the section.

PARAMETERDESCRIPTION
name

Metric name

TYPE:str

value

Metric value

TYPE:Any

add_table
Python
add_table(table_data: Dict[str, Any]) -> None

Add a table to the section.

PARAMETERDESCRIPTION
table_data

Table configuration with headers and rows

TYPE:Dict[str, Any]

add_chart
Python
add_chart(chart_config: Dict[str, Any]) -> None

Add a chart to the section.

PARAMETERDESCRIPTION
chart_config

Chart configuration from viz modules

TYPE:Dict[str, Any]

add_subsection
Python
add_subsection(subsection: ReportSection) -> None

Add a subsection.

PARAMETERDESCRIPTION
subsection

Nested section

TYPE:ReportSection

HTMLReporter

Python
HTMLReporter(config: TenetsConfig)

HTML report generator.

Generates standalone HTML reports with rich visualizations and interactive elements from analysis results.

ATTRIBUTEDESCRIPTION
config

Configuration object

logger

Logger instance

template

HTML template generator

Initialize HTML reporter.

PARAMETERDESCRIPTION
config

TenetsConfig instance

TYPE:TenetsConfig

Attributes

configinstance-attribute
Python
config = config
loggerinstance-attribute
Python
logger = get_logger(__name__)
templateinstance-attribute
Python
template = HTMLTemplate()

Functions

generate
Python
generate(sections: List[ReportSection], metadata: Dict[str, Any], output_path: Path, report_config: ReportConfig) -> Path

Generate HTML report.

PARAMETERDESCRIPTION
sections

Report sections

TYPE:List[ReportSection]

metadata

Report metadata

TYPE:Dict[str, Any]

output_path

Output file path

TYPE:Path

report_config

Report configuration

TYPE:ReportConfig

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

HTMLTemplate

Python
HTMLTemplate(theme: str = 'default', custom_css: Optional[str] = None, include_charts: bool = True)

HTML template generator for reports.

Provides template generation for various report components including the main layout, charts, tables, and interactive elements.

ATTRIBUTEDESCRIPTION
theme

Visual theme name

custom_css

Custom CSS styles

include_charts

Whether to include chart libraries

Initialize HTML template.

PARAMETERDESCRIPTION
theme

Theme name

TYPE:strDEFAULT:'default'

custom_css

Custom CSS styles

TYPE:Optional[str]DEFAULT:None

include_charts

Include chart libraries

TYPE:boolDEFAULT:True

Attributes

themeinstance-attribute
Python
theme = theme
custom_cssinstance-attribute
Python
custom_css = custom_css
include_chartsinstance-attribute
Python
include_charts = include_charts

Functions

get_base_template
Python
get_base_template() -> str

Get base HTML template.

RETURNSDESCRIPTION
str

Base HTML template

TYPE:str

get_styles
Python
get_styles() -> str

Get CSS styles for the report.

RETURNSDESCRIPTION
str

CSS styles

TYPE:str

get_scripts
Python
get_scripts() -> str

Get JavaScript libraries and scripts.

RETURNSDESCRIPTION
str

Script tags

TYPE:str

get_navigation
Python
get_navigation(sections: List[ReportSection]) -> str

Generate navigation menu.

PARAMETERDESCRIPTION
sections

Report sections

TYPE:List[ReportSection]

RETURNSDESCRIPTION
str

Navigation HTML

TYPE:str

MarkdownReporter

Python
MarkdownReporter(config: TenetsConfig)

Markdown report generator.

Generates Markdown-formatted reports from analysis results, suitable for documentation, GitHub, and other Markdown-supporting platforms.

ATTRIBUTEDESCRIPTION
config

Configuration object

logger

Logger instance

toc_entries

Table of contents entries

TYPE:List[str]

Initialize Markdown reporter.

PARAMETERDESCRIPTION
config

TenetsConfig instance

TYPE:TenetsConfig

Attributes

configinstance-attribute
Python
config = config
loggerinstance-attribute
Python
logger = get_logger(__name__)
toc_entriesinstance-attribute
Python
toc_entries: List[str] = []

Functions

generate
Python
generate(sections: List[ReportSection], metadata: Dict[str, Any], output_path: Path, report_config: ReportConfig) -> Path

Generate Markdown report.

PARAMETERDESCRIPTION
sections

Report sections

TYPE:List[ReportSection]

metadata

Report metadata

TYPE:Dict[str, Any]

output_path

Output file path

TYPE:Path

report_config

Report configuration

TYPE:ReportConfig

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

Example

reporter = MarkdownReporter(config) report_path = reporter.generate( ... sections, ... metadata, ... Path("report.md") ... )

ChartGenerator

Python
ChartGenerator(config: TenetsConfig)

Generator for various chart types.

Creates chart configurations and data structures for visualization libraries like Chart.js, D3.js, or server-side rendering.

ATTRIBUTEDESCRIPTION
config

Configuration object

logger

Logger instance

color_palette

Default color palette

Initialize chart generator.

PARAMETERDESCRIPTION
config

TenetsConfig instance

TYPE:TenetsConfig

Attributes

configinstance-attribute
Python
config = config
loggerinstance-attribute
Python
logger = get_logger(__name__)
color_paletteinstance-attribute
Python
color_palette = ['#2563eb', '#8b5cf6', '#10b981', '#f59e0b', '#ef4444', '#06b6d4', '#ec4899', '#84cc16', '#f97316', '#6366f1']

Functions

create_bar_chart
Python
create_bar_chart(labels: List[str], values: List[Union[int, float]], title: str = '', x_label: str = '', y_label: str = '', colors: Optional[List[str]] = None, horizontal: bool = False) -> Dict[str, Any]

Create a bar chart configuration.

PARAMETERDESCRIPTION
labels

Bar labels

TYPE:List[str]

values

Bar values

TYPE:List[Union[int, float]]

title

Chart title

TYPE:strDEFAULT:''

x_label

X-axis label

TYPE:strDEFAULT:''

y_label

Y-axis label

TYPE:strDEFAULT:''

colors

Custom colors

TYPE:Optional[List[str]]DEFAULT:None

horizontal

Use horizontal bars

TYPE:boolDEFAULT:False

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

generator = ChartGenerator(config) chart = generator.create_bar_chart( ... ["Low", "Medium", "High"], ... [10, 25, 5], ... title="Issue Distribution" ... )

create_line_chart
Python
create_line_chart(labels: List[str], datasets: List[Dict[str, Any]], title: str = '', x_label: str = '', y_label: str = '', smooth: bool = True) -> Dict[str, Any]

Create a line chart configuration.

PARAMETERDESCRIPTION
labels

X-axis labels

TYPE:List[str]

datasets

List of dataset configurations

TYPE:List[Dict[str, Any]]

title

Chart title

TYPE:strDEFAULT:''

x_label

X-axis label

TYPE:strDEFAULT:''

y_label

Y-axis label

TYPE:strDEFAULT:''

smooth

Use smooth lines

TYPE:boolDEFAULT:True

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_line_chart( ... ["Jan", "Feb", "Mar"], ... [ ... {"label": "Bugs", "data": [10, 8, 12]}, ... {"label": "Features", "data": [5, 7, 9]} ... ], ... title="Monthly Trends" ... )

create_pie_chart
Python
create_pie_chart(labels: List[str], values: List[Union[int, float]], title: str = '', colors: Optional[List[str]] = None, as_donut: bool = False) -> Dict[str, Any]

Create a pie chart configuration.

PARAMETERDESCRIPTION
labels

Slice labels

TYPE:List[str]

values

Slice values

TYPE:List[Union[int, float]]

title

Chart title

TYPE:strDEFAULT:''

colors

Custom colors

TYPE:Optional[List[str]]DEFAULT:None

as_donut

Create as donut chart

TYPE:boolDEFAULT:False

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_pie_chart( ... ["Python", "JavaScript", "Java"], ... [450, 320, 180], ... title="Language Distribution" ... )

create_scatter_plot
Python
create_scatter_plot(data_points: List[Tuple[float, float]], title: str = '', x_label: str = '', y_label: str = '', point_labels: Optional[List[str]] = None, colors: Optional[List[str]] = None) -> Dict[str, Any]

Create a scatter plot configuration.

PARAMETERDESCRIPTION
data_points

List of (x, y) tuples

TYPE:List[Tuple[float, float]]

title

Chart title

TYPE:strDEFAULT:''

x_label

X-axis label

TYPE:strDEFAULT:''

y_label

Y-axis label

TYPE:strDEFAULT:''

point_labels

Labels for points

TYPE:Optional[List[str]]DEFAULT:None

colors

Point colors

TYPE:Optional[List[str]]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_scatter_plot( ... [(10, 5), (20, 8), (15, 12)], ... title="Complexity vs Size", ... x_label="Lines of Code", ... y_label="Complexity" ... )

create_radar_chart
Python
create_radar_chart(labels: List[str], datasets: List[Dict[str, Any]], title: str = '', max_value: Optional[float] = None) -> Dict[str, Any]

Create a radar chart configuration.

PARAMETERDESCRIPTION
labels

Axis labels

TYPE:List[str]

datasets

List of dataset configurations

TYPE:List[Dict[str, Any]]

title

Chart title

TYPE:strDEFAULT:''

max_value

Maximum value for axes

TYPE:Optional[float]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_radar_chart( ... ["Quality", "Performance", "Security", "Maintainability"], ... [{"label": "Current", "data": [7, 8, 6, 9]}], ... title="Code Metrics" ... )

create_gauge_chart
Python
create_gauge_chart(value: float, max_value: float = 100, title: str = '', thresholds: Optional[List[Tuple[float, str]]] = None) -> Dict[str, Any]

Create a gauge chart configuration.

PARAMETERDESCRIPTION
value

Current value

TYPE:float

max_value

Maximum value

TYPE:floatDEFAULT:100

title

Chart title

TYPE:strDEFAULT:''

thresholds

List of (value, color) thresholds

TYPE:Optional[List[Tuple[float, str]]]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_gauge_chart( ... 75, ... 100, ... title="Health Score", ... thresholds=[(60, "yellow"), (80, "green")] ... )

create_stacked_bar_chart
Python
create_stacked_bar_chart(labels: List[str], datasets: List[Dict[str, Any]], title: str = '', x_label: str = '', y_label: str = '', horizontal: bool = False) -> Dict[str, Any]

Create a stacked bar chart configuration.

PARAMETERDESCRIPTION
labels

Bar labels

TYPE:List[str]

datasets

List of dataset configurations

TYPE:List[Dict[str, Any]]

title

Chart title

TYPE:strDEFAULT:''

x_label

X-axis label

TYPE:strDEFAULT:''

y_label

Y-axis label

TYPE:strDEFAULT:''

horizontal

Use horizontal bars

TYPE:boolDEFAULT:False

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_stacked_bar_chart( ... ["Sprint 1", "Sprint 2", "Sprint 3"], ... [ ... {"label": "Completed", "data": [8, 10, 12]}, ... {"label": "In Progress", "data": [3, 2, 4]}, ... {"label": "Blocked", "data": [1, 0, 2]} ... ], ... title="Sprint Progress" ... )

create_bubble_chart
Python
create_bubble_chart(data_points: List[Tuple[float, float, float]], title: str = '', x_label: str = '', y_label: str = '', bubble_labels: Optional[List[str]] = None) -> Dict[str, Any]

Create a bubble chart configuration.

PARAMETERDESCRIPTION
data_points

List of (x, y, size) tuples

TYPE:List[Tuple[float, float, float]]

title

Chart title

TYPE:strDEFAULT:''

x_label

X-axis label

TYPE:strDEFAULT:''

y_label

Y-axis label

TYPE:strDEFAULT:''

bubble_labels

Labels for bubbles

TYPE:Optional[List[str]]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

chart = generator.create_bubble_chart( ... [(10, 5, 20), (20, 8, 35), (15, 12, 15)], ... title="File Analysis", ... x_label="Complexity", ... y_label="Changes" ... )

Functions

create_dashboard

Python
create_dashboard(analysis_results: Dict[str, Any], output_path: Path, config: Optional[TenetsConfig] = None) -> Path

Create an interactive dashboard.

PARAMETERDESCRIPTION
analysis_results

Analysis results

TYPE:Dict[str, Any]

output_path

Output path

TYPE:Path

config

Optional configuration

TYPE:Optional[TenetsConfig]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to dashboard

TYPE:Path

create_html_report

Python
create_html_report(sections: List[ReportSection], output_path: Path, title: str = 'Code Analysis Report', config: Optional[TenetsConfig] = None) -> Path

Convenience function to create HTML report.

PARAMETERDESCRIPTION
sections

Report sections

TYPE:List[ReportSection]

output_path

Output path

TYPE:Path

title

Report title

TYPE:strDEFAULT:'Code Analysis Report'

config

Optional configuration

TYPE:Optional[TenetsConfig]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

create_markdown_report

Python
create_markdown_report(sections: List[ReportSection], output_path: Path, title: str = 'Code Analysis Report', config: Optional[TenetsConfig] = None) -> Path

Convenience function to create Markdown report.

PARAMETERDESCRIPTION
sections

Report sections

TYPE:List[ReportSection]

output_path

Output path

TYPE:Path

title

Report title

TYPE:strDEFAULT:'Code Analysis Report'

config

Optional configuration

TYPE:Optional[TenetsConfig]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

Example

from tenets.core.reporting.markdown_reporter import create_markdown_report report_path = create_markdown_report( ... sections, ... Path("report.md"), ... title="Analysis Report" ... )

format_markdown_table

Python
format_markdown_table(headers: List[str], rows: List[List[Any]], alignment: Optional[List[str]] = None) -> str

Format data as a Markdown table.

PARAMETERDESCRIPTION
headers

Table headers

TYPE:List[str]

rows

Table rows

TYPE:List[List[Any]]

alignment

Column alignment (left, right, center)

TYPE:Optional[List[str]]DEFAULT:None

RETURNSDESCRIPTION
str

Formatted Markdown table

TYPE:str

Example

from tenets.core.reporting.markdown_reporter import format_markdown_table table = format_markdown_table( ... ["Name", "Value", "Status"], ... [["Test", 42, "Pass"], ["Demo", 17, "Fail"]] ... ) print(table)

create_chart

Python
create_chart(chart_type: str, data: Dict[str, Any], title: str = '', config: Optional[TenetsConfig] = None) -> Dict[str, Any]

Convenience function to create a chart.

PARAMETERDESCRIPTION
chart_type

Type of chart (bar, line, pie, etc.)

TYPE:str

data

Chart data

TYPE:Dict[str, Any]

title

Chart title

TYPE:strDEFAULT:''

config

Optional configuration

TYPE:Optional[TenetsConfig]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Chart configuration

Example

from tenets.core.reporting.visualizer import create_chart chart = create_chart( ... "bar", ... {"labels": ["A", "B", "C"], "values": [1, 2, 3]}, ... title="Sample Chart" ... )

create_heatmap

Python
create_heatmap(matrix_data: List[List[float]], x_labels: List[str], y_labels: List[str], title: str = '', color_scale: str = 'viridis') -> Dict[str, Any]

Create a heatmap visualization.

PARAMETERDESCRIPTION
matrix_data

2D matrix of values

TYPE:List[List[float]]

x_labels

X-axis labels

TYPE:List[str]

y_labels

Y-axis labels

TYPE:List[str]

title

Chart title

TYPE:strDEFAULT:''

color_scale

Color scale name

TYPE:strDEFAULT:'viridis'

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Heatmap configuration

Example

from tenets.core.reporting.visualizer import create_heatmap heatmap = create_heatmap( ... [[1, 2, 3], [4, 5, 6], [7, 8, 9]], ... ["A", "B", "C"], ... ["X", "Y", "Z"], ... title="Correlation Matrix" ... )

create_network_graph

Python
create_network_graph(nodes: List[Dict[str, Any]], edges: List[Dict[str, Any]], title: str = '', layout: str = 'force') -> Dict[str, Any]

Create a network graph visualization.

PARAMETERDESCRIPTION
nodes

List of node dictionaries with 'id' and 'label' keys

TYPE:List[Dict[str, Any]]

edges

List of edge dictionaries with 'source' and 'target' keys

TYPE:List[Dict[str, Any]]

title

Graph title

TYPE:strDEFAULT:''

layout

Layout algorithm (force, circular, hierarchical)

TYPE:strDEFAULT:'force'

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Network graph configuration

Example

from tenets.core.reporting.visualizer import create_network_graph graph = create_network_graph( ... nodes=[ ... {"id": "A", "label": "Node A"}, ... {"id": "B", "label": "Node B"} ... ], ... edges=[ ... {"source": "A", "target": "B", "weight": 1} ... ], ... title="Dependency Graph" ... )

create_timeline

Python
create_timeline(events: List[Dict[str, Any]], title: str = '', start_date: Optional[datetime] = None, end_date: Optional[datetime] = None) -> Dict[str, Any]

Create a timeline visualization.

PARAMETERDESCRIPTION
events

List of event dictionaries with 'date' and 'label' keys

TYPE:List[Dict[str, Any]]

title

Timeline title

TYPE:strDEFAULT:''

start_date

Timeline start date

TYPE:Optional[datetime]DEFAULT:None

end_date

Timeline end date

TYPE:Optional[datetime]DEFAULT:None

RETURNSDESCRIPTION
Dict[str, Any]

Dict[str, Any]: Timeline configuration

Example

from tenets.core.reporting.visualizer import create_timeline timeline = create_timeline( ... [ ... {"date": "2024-01-01", "label": "Project Start"}, ... {"date": "2024-02-15", "label": "First Release"} ... ], ... title="Project Timeline" ... )

quick_report

Python
quick_report(analysis_results: Dict[str, Any], output_path: Optional[Path] = None, format: str = 'html', title: str = 'Code Analysis Report', config: Optional[Any] = None) -> Path

Generate a quick report from analysis results.

Creates a comprehensive report with sensible defaults for quick reporting needs.

PARAMETERDESCRIPTION
analysis_results

Analysis results to report

TYPE:Dict[str, Any]

output_path

Output file path (auto-generated if None)

TYPE:Optional[Path]DEFAULT:None

format

Report format (html, markdown, json)

TYPE:strDEFAULT:'html'

title

Report title

TYPE:strDEFAULT:'Code Analysis Report'

config

Optional TenetsConfig instance

TYPE:Optional[Any]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to generated report

TYPE:Path

Example

from tenets.core.reporting import quick_report

report_path = quick_report( ... analysis_results, ... format="html", ... title="Sprint 23 Analysis" ... ) print(f"Report generated: {report_path}")

generate_report

Python
generate_report(analysis_results: Dict[str, Any], output_path: Union[str, Path], *, format: str = 'html', config: Optional[Any] = None, title: str = 'Code Analysis Report', include_charts: bool = True, include_code_snippets: bool = True, include_recommendations: bool = True) -> Path

Convenience wrapper to generate a report.

This mirrors the legacy API expected by callers/tests by providing a simple function that configures ReportGenerator under the hood.

generate_summary

Python
generate_summary(analysis_results: Dict[str, Any]) -> Dict[str, Any]

Return a compact summary dict for quick inspection/CLI printing.

export_data

Python
export_data(analysis_results: Dict[str, Any], output_path: Path, format: str = 'json', include_metadata: bool = True, config: Optional[Any] = None) -> Path

Export analysis data in specified format.

Exports raw analysis data for further processing or integration with other tools.

PARAMETERDESCRIPTION
analysis_results

Analysis results to export

TYPE:Dict[str, Any]

output_path

Output file path

TYPE:Path

format

Export format (json, csv, xlsx)

TYPE:strDEFAULT:'json'

include_metadata

Include analysis metadata

TYPE:boolDEFAULT:True

config

Optional TenetsConfig instance

TYPE:Optional[Any]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to exported data

TYPE:Path

Example

from tenets.core.reporting import export_data

export_path = export_data( ... analysis_results, ... Path("data.json"), ... format="json" ... )

create_executive_summary

Python
create_executive_summary(analysis_results: Dict[str, Any], max_length: int = 500, include_metrics: bool = True, include_risks: bool = True, include_recommendations: bool = True) -> str

Create an executive summary of analysis results.

Generates a concise, high-level summary suitable for executives and stakeholders.

PARAMETERDESCRIPTION
analysis_results

Analysis results to summarize

TYPE:Dict[str, Any]

max_length

Maximum summary length in words

TYPE:intDEFAULT:500

include_metrics

Include key metrics

TYPE:boolDEFAULT:True

include_risks

Include top risks

TYPE:boolDEFAULT:True

include_recommendations

Include top recommendations

TYPE:boolDEFAULT:True

RETURNSDESCRIPTION
str

Executive summary text

TYPE:str

Example

from tenets.core.reporting import create_executive_summary

summary = create_executive_summary( ... analysis_results, ... max_length=300 ... ) print(summary)

create_comparison_report

Python
create_comparison_report(baseline_results: Dict[str, Any], current_results: Dict[str, Any], output_path: Path, format: str = 'html', title: str = 'Comparison Report', config: Optional[Any] = None) -> Path

Create a comparison report between two analysis results.

Generates a report highlighting differences and trends between baseline and current analysis results.

PARAMETERDESCRIPTION
baseline_results

Baseline analysis results

TYPE:Dict[str, Any]

current_results

Current analysis results

TYPE:Dict[str, Any]

output_path

Output file path

TYPE:Path

format

Report format

TYPE:strDEFAULT:'html'

title

Report title

TYPE:strDEFAULT:'Comparison Report'

config

Optional configuration

TYPE:Optional[Any]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to comparison report

TYPE:Path

Example

from tenets.core.reporting import create_comparison_report

report_path = create_comparison_report( ... baseline_results, ... current_results, ... Path("comparison.html"), ... title="Sprint 22 vs Sprint 23" ... )

create_trend_report

Python
create_trend_report(historical_results: List[Dict[str, Any]], output_path: Path, format: str = 'html', title: str = 'Trend Analysis Report', config: Optional[Any] = None) -> Path

Create a trend analysis report from historical data.

Generates a report showing trends and patterns over time based on multiple analysis snapshots.

PARAMETERDESCRIPTION
historical_results

List of historical analysis results

TYPE:List[Dict[str, Any]]

output_path

Output file path

TYPE:Path

format

Report format

TYPE:strDEFAULT:'html'

title

Report title

TYPE:strDEFAULT:'Trend Analysis Report'

config

Optional configuration

TYPE:Optional[Any]DEFAULT:None

RETURNSDESCRIPTION
Path

Path to trend report

TYPE:Path

Example

from tenets.core.reporting import create_trend_report

report_path = create_trend_report( ... [sprint20_results, sprint21_results, sprint22_results], ... Path("trends.html"), ... title="Quarterly Trend Analysis" ... )

Modules