tenets.viz
Package¶
Visualization system for Tenets.
This package provides various visualization capabilities for understanding codebases including dependency graphs, complexity heatmaps, coupling analysis, and contributor patterns.
Main components: - DependencyGraph: Visualize import dependencies - ComplexityHeatmap: Show code complexity patterns - CouplingGraph: Identify files that change together - ContributorGraph: Analyze team dynamics
Example usage
from tenets.viz import create_dependency_graph, visualize_complexity
Create dependency graph¶
graph = create_dependency_graph(files, format="html") graph.render("dependencies.html")
Show complexity heatmap¶
heatmap = visualize_complexity(files, threshold=10) print(heatmap.render()) # ASCII output
Attributes¶
MATPLOTLIB_AVAILABLEmodule-attribute
¶
NETWORKX_AVAILABLEmodule-attribute
¶
PLOTLY_AVAILABLEmodule-attribute
¶
Classes¶
BaseVisualizer¶
BaseVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Base class for all visualizers.
Provides common functionality for creating visualizations including chart generation, color management, and data formatting.
ATTRIBUTE | DESCRIPTION |
---|---|
logger | Logger instance |
chart_config | Default chart configuration |
display_config | Default display configuration |
color_palette | Color palette to use |
Initialize base visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
loggerinstance-attribute
¶
chart_configinstance-attribute
¶
display_configinstance-attribute
¶
color_paletteinstance-attribute
¶
Functions¶
create_chart¶
format_number¶
format_percentage¶
export_chart¶
ChartConfigdataclass
¶
ChartConfig(type: ChartType, title: str = '', width: int = 800, height: int = 400, colors: Optional[List[str]] = None, theme: str = 'light', interactive: bool = True, show_legend: bool = True, show_grid: bool = True, animation: bool = True, responsive: bool = True, export_options: List[str] = (lambda: ['png', 'svg'])())
Configuration for chart generation.
ATTRIBUTE | DESCRIPTION |
---|---|
type | Type of chart to generate TYPE: |
title | Chart title TYPE: |
width | Chart width in pixels TYPE: |
height | Chart height in pixels TYPE: |
colors | Custom color palette |
theme | Visual theme (light, dark, etc.) TYPE: |
interactive | Whether chart should be interactive TYPE: |
show_legend | Whether to show legend TYPE: |
show_grid | Whether to show grid lines TYPE: |
animation | Whether to animate chart TYPE: |
responsive | Whether chart should be responsive TYPE: |
export_options | Export format options |
Attributes¶
typeinstance-attribute
¶
titleclass-attribute
instance-attribute
¶
widthclass-attribute
instance-attribute
¶
heightclass-attribute
instance-attribute
¶
colorsclass-attribute
instance-attribute
¶
themeclass-attribute
instance-attribute
¶
interactiveclass-attribute
instance-attribute
¶
show_legendclass-attribute
instance-attribute
¶
show_gridclass-attribute
instance-attribute
¶
animationclass-attribute
instance-attribute
¶
responsiveclass-attribute
instance-attribute
¶
export_optionsclass-attribute
instance-attribute
¶
ChartType¶
Bases: Enum
Supported chart types.
Attributes¶
BARclass-attribute
instance-attribute
¶
LINEclass-attribute
instance-attribute
¶
PIEclass-attribute
instance-attribute
¶
SCATTERclass-attribute
instance-attribute
¶
RADARclass-attribute
instance-attribute
¶
GAUGEclass-attribute
instance-attribute
¶
HEATMAPclass-attribute
instance-attribute
¶
TREEMAPclass-attribute
instance-attribute
¶
NETWORKclass-attribute
instance-attribute
¶
BUBBLEclass-attribute
instance-attribute
¶
STACKED_BARclass-attribute
instance-attribute
¶
HORIZONTAL_BARclass-attribute
instance-attribute
¶
DONUTclass-attribute
instance-attribute
¶
AREAclass-attribute
instance-attribute
¶
TIMELINEclass-attribute
instance-attribute
¶
ColorPalette¶
Color palette management for visualizations.
Provides consistent color schemes across all visualizations with support for different themes and accessibility considerations.
Attributes¶
DEFAULTclass-attribute
instance-attribute
¶
SEVERITYclass-attribute
instance-attribute
¶
HEALTHclass-attribute
instance-attribute
¶
MONOCHROMEclass-attribute
instance-attribute
¶
Functions¶
get_paletteclassmethod
¶
get_colorclassmethod
¶
interpolate_colorclassmethod
¶
interpolate_color(value: float, min_val: float = 0, max_val: float = 100, start_color: str = '#10b981', end_color: str = '#ef4444') -> str
Interpolate color based on value.
PARAMETER | DESCRIPTION |
---|---|
value | Value to interpolate TYPE: |
min_val | Minimum value TYPE: |
max_val | Maximum value TYPE: |
start_color | Color for minimum value TYPE: |
end_color | Color for maximum value TYPE: |
RETURNS | DESCRIPTION |
---|---|
str | Interpolated color hex code TYPE: |
DisplayConfigdataclass
¶
DisplayConfig(use_colors: bool = True, use_unicode: bool = True, max_width: int = 120, max_rows: int = 50, truncate: bool = True, show_progress: bool = True, style: str = 'detailed')
Configuration for terminal display.
ATTRIBUTE | DESCRIPTION |
---|---|
use_colors | Whether to use colors in terminal TYPE: |
use_unicode | Whether to use unicode characters TYPE: |
max_width | Maximum display width TYPE: |
max_rows | Maximum rows to display TYPE: |
truncate | Whether to truncate long text TYPE: |
show_progress | Whether to show progress indicators TYPE: |
style | Display style (compact, detailed, etc.) TYPE: |
Attributes¶
use_colorsclass-attribute
instance-attribute
¶
use_unicodeclass-attribute
instance-attribute
¶
max_widthclass-attribute
instance-attribute
¶
max_rowsclass-attribute
instance-attribute
¶
truncateclass-attribute
instance-attribute
¶
show_progressclass-attribute
instance-attribute
¶
styleclass-attribute
instance-attribute
¶
DisplayFormat¶
ComplexityVisualizer¶
ComplexityVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for complexity metrics.
Creates visualizations for complexity analysis results including distribution charts, heatmaps, and trend analysis.
Initialize complexity visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_distribution_chart¶
create_top_complex_chart¶
create_complexity_heatmap¶
create_trend_chart¶
create_comparison_chart¶
display_terminal¶
ContributorVisualizer¶
ContributorVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for contributor metrics.
Creates visualizations for contributor analysis including activity charts, collaboration networks, and contribution distributions.
Initialize contributor visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_contribution_chart¶
create_contribution_chart(contributors: List[Dict[str, Any]], metric: str = 'commits', limit: int = 10) -> Dict[str, Any]
create_activity_timeline¶
create_collaboration_network¶
create_distribution_pie¶
create_distribution_pie(contributors: List[Dict[str, Any]], metric: str = 'commits', top_n: int = 5) -> Dict[str, Any]
create_bus_factor_gauge¶
display_terminal¶
CouplingVisualizer¶
CouplingVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for coupling metrics.
Creates visualizations for coupling analysis including dependency graphs, coupling matrices, and stability charts.
Initialize coupling visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_coupling_network¶
create_coupling_network(coupling_data: Dict[str, Dict[str, int]], min_coupling: int = 1, max_nodes: int = 50) -> Dict[str, Any]
Create coupling network graph.
PARAMETER | DESCRIPTION |
---|---|
coupling_data | Dictionary of module -> {coupled_module: strength} |
min_coupling | Minimum coupling strength to show TYPE: |
max_nodes | Maximum nodes to display TYPE: |
RETURNS | DESCRIPTION |
---|---|
Dict[str, Any] | Dict[str, Any]: Network graph configuration |
create_coupling_matrix¶
create_instability_chart¶
create_coupling_trend¶
create_dependency_sunburst¶
display_terminal¶
create_afferent_efferent_chart¶
DependencyVisualizer¶
DependencyVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for dependency metrics.
Creates visualizations for dependency analysis including dependency trees, circular dependency detection, and package relationships.
Initialize dependency visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_dependency_graph¶
create_dependency_graph(dependencies: Dict[str, List[str]], highlight_circular: bool = True, max_nodes: int = 100) -> Dict[str, Any]
Create dependency graph visualization.
PARAMETER | DESCRIPTION |
---|---|
dependencies | Dictionary of module -> [dependencies] |
highlight_circular | Whether to highlight circular dependencies TYPE: |
max_nodes | Maximum nodes to display TYPE: |
RETURNS | DESCRIPTION |
---|---|
Dict[str, Any] | Dict[str, Any]: Network graph configuration |
create_dependency_tree¶
create_package_sunburst¶
create_circular_dependencies_chart¶
create_dependency_matrix¶
create_layer_violations_chart¶
display_terminal¶
create_dependency_trend¶
ProgressDisplay¶
TerminalDisplay¶
Terminal display utilities for rich CLI output.
Provides methods for displaying data in the terminal with colors, formatting, and various visualization styles.
Initialize terminal display.
PARAMETER | DESCRIPTION |
---|---|
config | Display configuration TYPE: |
Attributes¶
configinstance-attribute
¶
terminal_widthinstance-attribute
¶
colorsinstance-attribute
¶
Functions¶
display_header¶
display_table¶
display_metrics¶
display_distribution¶
display_distribution(distribution: Union[Dict[str, int], List[int]], title: Optional[str] = None, labels: Optional[List[str]] = None, char: str = '█') -> None
Display distribution as horizontal bar chart.
PARAMETER | DESCRIPTION |
---|---|
distribution | Distribution data |
title | Optional title |
labels | Labels for values if distribution is a list |
char | Character to use for bars TYPE: |
display_list¶
create_progress_bar¶
HotspotVisualizer¶
HotspotVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for code hotspots.
Creates visualizations for hotspot analysis including heatmaps, bubble charts, and risk matrices.
Initialize hotspot visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_hotspot_heatmap¶
create_hotspot_bubble¶
create_risk_matrix¶
create_hotspot_trend¶
create_file_activity_chart¶
MomentumVisualizer¶
MomentumVisualizer(chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Bases: BaseVisualizer
Visualizer for momentum and velocity metrics.
Creates visualizations for development velocity, sprint progress, and team momentum analytics.
Initialize momentum visualizer.
PARAMETER | DESCRIPTION |
---|---|
chart_config | Chart configuration TYPE: |
display_config | Display configuration TYPE: |
Attributes¶
terminal_displayinstance-attribute
¶
Functions¶
create_velocity_chart¶
create_burndown_chart¶
create_sprint_comparison¶
create_team_velocity_radar¶
create_cumulative_flow¶
create_productivity_gauge¶
display_terminal¶
create_contributor_velocity¶
Functions¶
visualize_dependencies¶
visualize_dependencies(dependencies: Dict[str, List[str]], output: Optional[Union[str, Path]] = None, format: str = 'json', max_nodes: int = 100, highlight_circular: bool = True, title: Optional[str] = None) -> Union[Dict[str, Any], None]
Create and optionally export a dependency graph configuration.
PARAMETER | DESCRIPTION |
---|---|
dependencies | Mapping of module -> list of dependencies |
output | Optional output path; when provided, writes chart to file |
format | Export format when output is provided (json or html) TYPE: |
max_nodes | Max nodes to include in the graph TYPE: |
highlight_circular | Highlight circular dependencies TYPE: |
title | Optional chart title |
RETURNS | DESCRIPTION |
---|---|
Union[Dict[str, Any], None] | Chart configuration dict if output is None, otherwise None |
visualize_complexity¶
visualize_complexity(file_complexities: Dict[str, List[int]], output: Optional[Union[str, Path]] = None, format: str = 'json', max_functions: int = 50, title: Optional[str] = None) -> Union[Dict[str, Any], None]
Create and optionally export a complexity heatmap configuration.
PARAMETER | DESCRIPTION |
---|---|
file_complexities | Mapping of file path -> list of function complexities |
output | Optional output path; when provided, writes chart to file |
format | Export format when output is provided (json or html) TYPE: |
max_functions | Maximum functions per file to display TYPE: |
title | Optional chart title |
RETURNS | DESCRIPTION |
---|---|
Union[Dict[str, Any], None] | Chart configuration dict if output is None, otherwise None |
visualize_coupling¶
visualize_coupling(coupling_data: Dict[str, Dict[str, int]], output: Optional[Union[str, Path]] = None, format: str = 'json', min_coupling: int = 2, max_nodes: int = 50, title: Optional[str] = None) -> Union[Dict[str, Any], None]
Create and optionally export a module coupling network configuration.
PARAMETER | DESCRIPTION |
---|---|
coupling_data | Mapping of module -> {coupled_module: strength} |
output | Optional output path; when provided, writes chart to file |
format | Export format when output is provided (json or html) TYPE: |
min_coupling | Minimum coupling strength to include TYPE: |
max_nodes | Maximum nodes to include TYPE: |
title | Optional chart title |
RETURNS | DESCRIPTION |
---|---|
Union[Dict[str, Any], None] | Chart configuration dict if output is None, otherwise None |
visualize_contributors¶
visualize_contributors(contributors: List[Dict[str, Any]], output: Optional[Union[str, Path]] = None, format: str = 'json', metric: str = 'commits', limit: int = 10, title: Optional[str] = None) -> Union[Dict[str, Any], None]
Create and optionally export a contributor chart configuration.
PARAMETER | DESCRIPTION |
---|---|
contributors | List of contributor dicts with metrics (e.g., commits) |
output | Optional output path; when provided, writes chart to file |
format | Export format when output is provided (json or html) TYPE: |
metric | Metric to visualize (commits, lines, files) TYPE: |
limit | Max contributors to show TYPE: |
title | Optional chart title |
RETURNS | DESCRIPTION |
---|---|
Union[Dict[str, Any], None] | Chart configuration dict if output is None, otherwise None |
create_visualization¶
create_visualization(data: Any, viz_type: str, output: Optional[Union[str, Path]] = None, format: str = 'json', **kwargs) -> Union[Dict[str, Any], None]
Create any type of visualization.
Universal function for creating visualizations based on type.
PARAMETER | DESCRIPTION |
---|---|
data | Input data (files, commits, etc.) TYPE: |
viz_type | Type of visualization (deps, complexity, coupling, contributors) TYPE: |
output | Output path |
format | Output format TYPE: |
**kwargs | Additional arguments for specific visualization DEFAULT: |
RETURNS | DESCRIPTION |
---|---|
Union[Dict[str, Any], None] | Rendered content if output is None, otherwise None |
Example
from tenets.viz import create_visualization
Create dependency graph¶
viz = create_visualization( ... files, ... "deps", ... format="svg", ... max_nodes=50 ... )
create_visualizer¶
create_visualizer(viz_type: str, chart_config: Optional[ChartConfig] = None, display_config: Optional[DisplayConfig] = None)
Factory to create a visualizer by type.
PARAMETER | DESCRIPTION |
---|---|
viz_type | Type name (complexity, contributors, coupling, dependencies, hotspots) TYPE: |
chart_config | Optional chart configuration TYPE: |
display_config | Optional display configuration TYPE: |
RETURNS | DESCRIPTION |
---|---|
A visualizer instance |
RAISES | DESCRIPTION |
---|---|
ValueError | If type is unknown |
create_chart¶
create_chart(chart_type: Union[str, ChartType], data: Dict[str, Any], *, title: Optional[str] = None, config: Optional[ChartConfig] = None) -> Dict[str, Any]
Create a chart configuration using BaseVisualizer defaults.
Accepts either a ChartType enum or a string chart type.
create_terminal_display¶
Create a TerminalDisplay, optionally with custom DisplayConfig.
detect_visualization_type¶
Best-effort detection of visualization type from data structure.
export_visualization¶
export_visualization(visualization: Dict[str, Any], output: Union[str, Path], *, format: str = 'json', config: Optional[ChartConfig] = None) -> Path
Export a visualization or dashboard to JSON or HTML.
SVG export is not implemented to keep dependencies optional.
combine_visualizations¶
combine_visualizations(visualizations: List[Dict[str, Any]], *, layout: str = 'grid', title: str = 'Dashboard') -> Dict[str, Any]
Combine multiple visualization configs into a simple dashboard schema.
check_dependencies¶
get_available_formats¶
install_viz_dependencies¶
Helper to install visualization dependencies.
Provides instructions for installing optional visualization libraries.
Example
from tenets.viz import install_viz_dependencies install_viz_dependencies()
Modules¶
base
- Base modulecomplexity
- Complexity modulecontributors
- Contributors modulecoupling
- Coupling moduledependencies
- Dependencies moduledisplays
- Displays modulegraph_generator
- Graph Generator modulehotspots
- Hotspots modulemomentum
- Momentum module