Source code for nirs4all.visualization.branch_diagram

"""
Branch Diagram - DAG visualization for pipeline branching structure.

DEPRECATED: This module is deprecated in favor of pipeline_diagram.py which
provides a more comprehensive visualization of the entire pipeline structure.

The BranchDiagram and plot_branch_diagram are now aliases for PipelineDiagram
and plot_pipeline_diagram respectively.

Example:
    >>> from nirs4all.visualization.pipeline_diagram import PipelineDiagram
    >>> diagram = PipelineDiagram(pipeline_steps, predictions)
    >>> fig = diagram.render()
    >>> fig.savefig('pipeline_diagram.png')
"""

import warnings
from typing import Any, Dict, Optional, Tuple

from matplotlib.figure import Figure

# Import from new module
from nirs4all.visualization.pipeline_diagram import (
    PipelineDiagram,
    plot_pipeline_diagram,
)

__all__ = ['BranchDiagram', 'plot_branch_diagram', 'PipelineDiagram', 'plot_pipeline_diagram']


[docs] class BranchDiagram(PipelineDiagram): """DEPRECATED: Use PipelineDiagram instead. This class is kept for backward compatibility only. It wraps PipelineDiagram with the old API. """ def __init__( self, predictions: Any = None, config: Optional[Dict[str, Any]] = None ): """Initialize BranchDiagram (deprecated). Args: predictions: Predictions object with branch metadata. config: Optional dict for customization. """ warnings.warn( "BranchDiagram is deprecated. Use PipelineDiagram instead.", DeprecationWarning, stacklevel=2 ) super().__init__(pipeline_steps=None, predictions=predictions, config=config)
[docs] def render( self, show_metrics: Optional[bool] = None, metric: Optional[str] = None, partition: Optional[str] = None, figsize: Optional[Tuple[float, float]] = None, title: Optional[str] = None ) -> Figure: """Render the branch diagram (deprecated API). Args: show_metrics: Override config's show_metrics setting. metric: Override metric to display. partition: Override partition for metrics. figsize: Override figure size. title: Optional title for the diagram. Returns: matplotlib Figure object. """ # Map old show_metrics to new show_shapes return super().render( show_shapes=show_metrics if show_metrics is not None else self._show_shapes, figsize=figsize, title=title, )
[docs] def plot_branch_diagram( predictions: Any = None, show_metrics: bool = True, metric: str = 'rmse', partition: str = 'test', figsize: Optional[Tuple[float, float]] = None, title: Optional[str] = None, config: Optional[Dict[str, Any]] = None ) -> Figure: """DEPRECATED: Use plot_pipeline_diagram instead. Args: predictions: Predictions object with branch metadata. show_metrics: Whether to show metrics in nodes. metric: Metric to display (default: 'rmse'). partition: Partition for metrics (default: 'test'). figsize: Figure size tuple. title: Optional title for the diagram. config: Additional configuration dict. Returns: matplotlib Figure object. """ warnings.warn( "plot_branch_diagram is deprecated. Use plot_pipeline_diagram instead.", DeprecationWarning, stacklevel=2 ) return plot_pipeline_diagram( pipeline_steps=None, predictions=predictions, show_shapes=show_metrics, figsize=figsize, title=title, config=config, )