Coverage for credoai/modules/metric_utils.py: 25%
24 statements
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-08 07:32 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-08 07:32 +0000
1import textwrap
2from collections import defaultdict
4from pandas import DataFrame
6from credoai.modules.metrics import (
7 ALL_METRICS,
8 METRIC_CATEGORIES,
9 METRIC_NAMES,
10 MODEL_METRIC_CATEGORIES,
11)
14def list_metrics(verbose=True):
15 metrics = defaultdict(set)
16 for metric in ALL_METRICS:
17 if metric.metric_category in MODEL_METRIC_CATEGORIES:
18 metrics[metric.metric_category] |= metric.equivalent_names
19 if verbose:
20 for key, val in metrics.items():
21 metric_str = textwrap.fill(
22 ", ".join(sorted(list(val))),
23 width=50,
24 initial_indent="\t",
25 subsequent_indent="\t",
26 )
27 print(key)
28 print(metric_str)
29 print("")
30 return metrics
33def table_metrics():
34 output = DataFrame(
35 [
36 [
37 metric.name,
38 metric.metric_category,
39 list(metric.equivalent_names),
40 metric.get_fun_doc,
41 ]
42 for metric in ALL_METRICS
43 ],
44 columns=["metric_name", "metric_category", "synonyms", "doc"],
45 )
47 def remove(list1, str1):
48 list1 = [x for x in list1 if x != str1]
49 return list1
51 output["synonyms"] = output.apply(
52 lambda row: remove(row.synonyms, row.metric_name), axis=1
53 )
54 output["synonyms"] = output.synonyms.apply(lambda x: ", ".join(x))
55 return output