Skip to content

Commit 2c82c8c

Browse files
committed
Fixed issue raised when level_2:metrics_id became a possible list of strings
1 parent 08c887f commit 2c82c8c

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

libs/table.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@
1111
Any,
1212
Callable,
1313
Mapping,
14+
MutableMapping,
15+
MutableSequence,
1416
Optional,
1517
Sequence,
1618
Tuple,
19+
Union,
1720
)
1821

1922
import logging
@@ -222,11 +225,11 @@ def cluster_tools(tools_dict: "Mapping[str,Sequence[float]]", better: "Optional[
222225
distances = []
223226
dimcorr = None
224227
if dims == 1:
225-
if better.endswith("right") or better.endswith("maximize"):
228+
if better is not None and (better.endswith("right") or better.endswith("maximize")):
226229
dimcorr = None
227230
else:
228231
dimcorr = [ True ]
229-
elif dims == 2:
232+
elif dims == 2 and better is not None:
230233
if better == "top-right":
231234
dimcorr = None
232235
elif better == "bottom-right":
@@ -341,18 +344,21 @@ def build_table(challenges: "Sequence[Mapping[str, Any]]", classificator_id: "Op
341344
if len(challenge["aggregation_test_actions"]) > 0:
342345
# First, let's dig in the assessment metrics to
343346
# build a map from metrics label to metrics entry
344-
metrics_by_label = dict()
347+
metrics_by_label: "MutableMapping[str, MutableSequence[Mapping[str, Any]]]" = dict()
345348
for m_cat in metrics_categories:
346349
if m_cat['category'] == 'assessment':
347350
for m_pair in m_cat["metrics"]:
348351
# Now, the entry
349352
the_metrics = metrics[m_pair["metrics_id"]]
350353
metrics_metadata = the_metrics.get("_metadata")
351-
metrics_labels = []
354+
metrics_labels: "MutableSequence[str]" = []
352355
# Metrics labels, ordered by precedence
353356
if metrics_metadata is not None:
354-
metrics_label = metrics_metadata.get("level_2:metric_id")
355-
metrics_labels.append(metrics_label)
357+
metrics_label_m: "Optional[Union[str, Sequence[str]]]" = metrics_metadata.get("level_2:metric_id")
358+
if isinstance(metrics_label_m, list):
359+
metrics_labels.extend(metrics_label_m)
360+
elif isinstance(metrics_label_m, str):
361+
metrics_labels.append(metrics_label_m)
356362

357363
_ , metrics_label = the_metrics["orig_id"].split(":" , 1)
358364
if metrics_label is not None:

0 commit comments

Comments
 (0)