Skip to content

Commit 8c42dbe

Browse files
committed
Base learner widget: Remove arguments from apply
1 parent a0ac61b commit 8c42dbe

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

Orange/widgets/utils/owlearnerwidget.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ class Outputs:
9898

9999
OUTPUT_MODEL_NAME = Outputs.model.name # Attr for backcompat w/ self.send() code
100100

101+
_SEND, _SOFT, _UPDATE = range(3)
102+
101103
def __init__(self, preprocessors=None):
102104
super().__init__()
103105
self.__default_learner_name = ""
@@ -107,6 +109,7 @@ def __init__(self, preprocessors=None):
107109
self.model = None
108110
self.preprocessors = preprocessors
109111
self.outdated_settings = False
112+
self.__apply_level = []
110113

111114
self.setup_layout()
112115
QTimer.singleShot(0, getattr(self, "unconditional_apply", self.apply))
@@ -176,20 +179,27 @@ def set_data(self, data):
176179
# invalidate the model so that handleNewSignals will update it
177180
self.model = None
178181

179-
SEND, SOFT, UPDATE = range(3)
180182

181-
def apply(self, *, level=UPDATE):
183+
def apply(self):
184+
level, self.__apply_level = max(self.__apply_level, default=self._UPDATE), []
182185
"""Applies learner and sends new model."""
183-
if level == self.SEND:
186+
if level == self._SEND:
184187
self._send_learner()
185188
self._send_model()
186-
elif level == self.UPDATE:
187-
self.update_learnel()
189+
elif level == self._UPDATE:
190+
self.update_learner()
188191
self.update_model()
189192
else:
190193
self.learner or self.update_learner()
191194
self.model or self.update_model()
192195

196+
def apply_as(self, level, unconditional=False):
197+
self.__apply_level.append(level)
198+
if unconditional:
199+
self.unconditional_apply()
200+
else:
201+
self.apply()
202+
193203
def update_learner(self):
194204
self.learner = self.create_learner()
195205
if self.learner and issubclass(self.LEARNER, Fitter):
@@ -204,7 +214,7 @@ def _send_learner(self):
204214
self.Warning.outdated_learner.clear()
205215

206216
def handleNewSignals(self):
207-
self.unconditional_apply(level=self.SOFT)
217+
self.apply_as(self._SOFT, True)
208218
self.Information.ignored_preprocessors(
209219
shown=not getattr(self.learner, "use_default_preprocessors", False)
210220
and getattr(self.LEARNER, "preprocessors", False)
@@ -260,7 +270,7 @@ def learner_name_changed(self):
260270
self.model.name = self.effective_learner_name()
261271
if self.learner is not None:
262272
self.learner.name = self.effective_learner_name()
263-
self.apply(level=self.SEND)
273+
self.apply_as(self._SEND)
264274

265275
def effective_learner_name(self):
266276
"""Return the effective learner name."""

0 commit comments

Comments
 (0)