Source code for piel.analysis.metrics.join

from piel.types import ScalarMetricCollection


[docs] def concatenate_metrics_collection( metrics_collection_list: list[ScalarMetricCollection], **kwargs ) -> ScalarMetricCollection: """ Concatenates multiple ScalarMetricCollection instances into a single ScalarMetricCollection. Args: metrics_collection_list (List[ScalarMetricCollection]): List of ScalarMetricCollection instances to concatenate. Returns: ScalarMetricCollection: A new ScalarMetricCollection containing all metrics from the input collections. Raises: ValueError: If the input list is empty. """ if not metrics_collection_list: raise ValueError( "The metrics_collection_list is empty. Provide at least one ScalarMetricCollection." ) total_metrics_list = list() for collection in metrics_collection_list: if not isinstance(collection, ScalarMetricCollection): raise TypeError( f"Collection {collection} is the issue. All items in metrics_collection_list must be instances of ScalarMetricCollection." ) total_metrics_list.extend(collection.metrics) return ScalarMetricCollection(metrics=total_metrics_list, **kwargs)