Skip to content

Commit edd729f

Browse files
authored
Merge pull request #2608 from astaric/save-learner-name
[FIX] OWBaseLearner: Save learner name in workflow
2 parents 3d954ea + f585731 commit edd729f

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

Orange/widgets/utils/owlearnerwidget.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class OWBaseLearner(OWWidget, metaclass=OWBaseLearnerMeta):
6767
LEARNER = None
6868
supports_sparse = True
6969

70+
learner_name = Setting(None, schema_only=True)
7071
want_main_area = False
7172
resizing_enabled = False
7273
auto_apply = Setting(True)
@@ -96,7 +97,8 @@ def __init__(self):
9697
self.data = None
9798
self.valid_data = False
9899
self.learner = None
99-
self.learner_name = self.name
100+
if self.learner_name is None:
101+
self.learner_name = self.name
100102
self.model = None
101103
self.preprocessors = None
102104
self.outdated_settings = False

Orange/widgets/utils/tests/test_owlearnerwidget.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,16 @@ class WidgetA(OWBaseLearner):
9696
self.assertIn(WidgetA.Inputs.data.name, inputs)
9797
self.assertIn(WidgetA.Inputs.preprocessor.name, inputs)
9898
self.assertIn("A", inputs)
99+
100+
def test_persists_learner_name_in_settings(self):
101+
class WidgetA(OWBaseLearner):
102+
name = "A"
103+
LEARNER = KNNLearner
104+
105+
w1 = self.create_widget(WidgetA)
106+
self.assertEqual(w1.learner_name, "A")
107+
w1.learner_name = "MyWidget"
108+
109+
settings = w1.settingsHandler.pack_data(w1)
110+
w2 = self.create_widget(WidgetA, settings)
111+
self.assertEqual(w2.learner_name, w1.learner_name)

0 commit comments

Comments
 (0)