Skip to content

Commit

Permalink
Updated comments for aggregate functions
Browse files Browse the repository at this point in the history
  • Loading branch information
David-rn committed Dec 11, 2024
1 parent 5fa6fc0 commit 4bc57d4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
12 changes: 12 additions & 0 deletions supervision/metrics/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,26 @@ class MetricResult(ABC):

@abstractmethod
def to_pandas():
"""
Convert the result to a pandas DataFrame.
Returns:
(pd.DataFrame): The result as a DataFrame.
"""
raise NotImplementedError()

@abstractmethod
def plot():
"""
Plot the results.
"""
raise NotImplementedError()

@abstractmethod
def _get_plot_details():
"""
Get the metric details to be plotted.
"""
raise NotImplementedError()


Expand Down
16 changes: 8 additions & 8 deletions supervision/metrics/utils/aggregate_metric_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def aggregate_metric_results(
DataFrame. Defaults to False.
Raises:
ValueError: `metrics_results` can not be empty
ValueError: List `metrics_results` can not be empty
ValueError: All elements of `metrics_results` must be of the same type
ValueError: Base class of elements in `metrics_results` must be of type
`MetricResult`
Expand All @@ -39,15 +39,15 @@ def aggregate_metric_results(

assert len(metrics_results) == len(
model_names
), "Number of metrics results and model names must be equal"
), "Length of metrics_results and model_names must be equal"

if len(metrics_results) == 0:
raise ValueError("metrics_results must not be empty")
raise ValueError("List metrics_results must not be empty")

first_elem_type = type(metrics_results[0])
all_same_type = all(isinstance(x, first_elem_type) for x in metrics_results)
if not all_same_type:
raise ValueError("All metrics_results must be of the same type")
raise ValueError("All metrics_results elements must be of the same type")

if not isinstance(metrics_results[0], MetricResult):
raise ValueError("Base class of metrics_results must be of type MetricResult")
Expand Down Expand Up @@ -82,22 +82,22 @@ def plot_aggregate_metric_results(
plot. Defaults to False.
Raises:
ValueError: `metrics_results` can not be empty
ValueError: List `metrics_results` can not be empty
ValueError: All elements of `metrics_results` must be of the same type
ValueError: Base class of elements in `metrics_results` must be of type
`MetricResult`
"""
assert len(metrics_results) == len(
model_names
), "Number of metrics results and model names must be equal"
), "Length of metrics_results and model_names must be equal"

if len(metrics_results) == 0:
raise ValueError("metrics_results must not be empty")
raise ValueError("List metrics_results must not be empty")

first_elem_type = type(metrics_results[0])
all_same_type = all(isinstance(x, first_elem_type) for x in metrics_results)
if not all_same_type:
raise ValueError("All metrics_results must be of the same type")
raise ValueError("All metrics_results elements must be of the same type")

if not isinstance(metrics_results[0], MetricResult):
raise ValueError("Base class of metrics_results must be of type MetricResult")
Expand Down

0 comments on commit 4bc57d4

Please sign in to comment.