Skip to content

Commit 63b7129

Browse files
committed
make usable scorers backward compatible
1 parent be1d030 commit 63b7129

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

Orange/widgets/evaluate/utils.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
QSortFilterProxyModel
1313
from sklearn.exceptions import UndefinedMetricWarning
1414

15-
from Orange.data import Table, DiscreteVariable, ContinuousVariable
15+
from Orange.data import Table, DiscreteVariable, ContinuousVariable, Variable
1616
from Orange.evaluation import scoring
1717
from Orange.widgets import gui
1818
from Orange.widgets.utils.tableview import table_selection_to_mime_data
@@ -79,17 +79,22 @@ def learner_name(learner):
7979
return getattr(learner, "name", type(learner).__name__)
8080

8181

82-
def usable_scorers(data: Table):
83-
if not data:
82+
def usable_scorers(data_or_var: Union[Table, Variable]):
83+
if not data_or_var:
8484
return []
8585

86-
problem_type = data.attributes.get("problem_type", None)
87-
target = data.domain.class_var
88-
8986
# 'abstract' is retrieved from __dict__ to avoid inheriting
9087
scorer_candidates = [cls for cls in scoring.Score.registry.values()
9188
if cls.is_scalar and not cls.__dict__.get("abstract")]
9289

90+
data, problem_type = None, None
91+
if isinstance(data_or_var, Table):
92+
data = data_or_var
93+
problem_type = data.attributes.get("problem_type", None)
94+
target = data.domain.class_var
95+
else:
96+
target = data_or_var
97+
9398
# If problem_type is not specified and 'domain.class_var' is set
9499
# use builtin scorers and don't brake the default behaviour.
95100
usable = []

0 commit comments

Comments
 (0)