Source code for piel.analysis.metrics.metadata

from piel.types import ScalarMetricCollection


[docs] def rename_metrics_collection( collection: ScalarMetricCollection, new_names: list[str] ) -> ScalarMetricCollection: """ Renames each metric in the provided ScalarMetricCollection with the corresponding name from new_names. Args: collection (ScalarMetricCollection): The original metric collection. new_names (List[str]): A list of new names for the metrics. Returns: ScalarMetricCollection: A new metric collection with renamed metrics. Raises: ValueError: If the number of new names does not match the number of metrics. """ if len(new_names) != len(collection.metrics): raise ValueError( f"Number of new names ({len(new_names)}) does not match " f"the number of metrics in the collection ({len(collection.metrics)})." ) # Create a new list of metrics with updated names updated_metrics = [] for metric, new_name in zip(collection.metrics, new_names): updated_metric = metric.copy(update={"name": new_name}) updated_metrics.append(updated_metric) # Return a new ScalarMetricCollection with the updated metrics return collection.copy(update={"metrics": updated_metrics})