Skip to content

Commit 75ff06e

Browse files
committed
Deprecation warning when predict uses predict_storage fallback
1 parent ecf519d commit 75ff06e

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

Orange/base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ def predict(self, X):
229229
if type(self).predict_storage is Model.predict_storage:
230230
raise TypeError("Descendants of Model must overload method predict")
231231
else:
232+
warnings.warn("Automatic fallback to predict_storage will be removed in 3.36. "
233+
"All models need to implement predict.",
234+
OrangeDeprecationWarning)
232235
Y = np.zeros((len(X), len(self.domain.class_vars)))
233236
Y[:] = np.nan
234237
table = Table(self.domain, X, Y)

Orange/classification/tests/test_base.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import unittest
2+
from distutils.version import LooseVersion
23

34
import numpy as np
45

6+
import Orange
57
from Orange.data import Table, DiscreteVariable, Domain
68
from Orange.classification import LogisticRegressionLearner, TreeLearner
79

@@ -199,6 +201,12 @@ def test_sparse_matrix(self):
199201
pred = model(iris_sparse.X.tocoo())
200202
self.assertTupleEqual((len(self.iris),), pred.shape)
201203

204+
def test_remove_default_predict(self):
205+
if LooseVersion(Orange.__version__) >= LooseVersion("3.36"):
206+
self.fail(
207+
"Orange 3.35 deprecated predict() thorugh predict_storage. "
208+
"Rewrite Model.predict to raise NotImplementedError.")
209+
202210

203211
if __name__ == '__main__':
204212
unittest.main()

0 commit comments

Comments
 (0)