Skip to content

Commit 69e580d

Browse files
authored
Merge pull request #5315 from VesnaT/remove_ordered
DiscreteVariable: Remove 'ordered' argument
2 parents 7f3e876 + 8b1f8d1 commit 69e580d

File tree

3 files changed

+12
-43
lines changed

3 files changed

+12
-43
lines changed

Orange/data/tests/test_variable.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -498,16 +498,6 @@ def test_copy_checks_len_values(self):
498498
var2 = var.copy(values=("W", "M"))
499499
self.assertEqual(var2.values, ("W", "M"))
500500

501-
def test_remove_ordered(self):
502-
"""
503-
ordered is deprecated when this test starts to fail remove ordered
504-
parameter. Remove also this test.
505-
Ordered parameter should still be allowed in __init__ for backward
506-
compatibilities in data-sets pickled with older versions, I suggest
507-
adding **kwargs which is ignored
508-
"""
509-
self.assertLess(Orange.__version__, "3.29.0")
510-
511501
def test_pickle_backward_compatibility(self):
512502
"""
513503
Test that pickle made with an older version of Orange are correctly
@@ -522,11 +512,9 @@ def test_pickle_backward_compatibility(self):
522512
this_dir, "..", "..", "tests", "datasets"
523513
)
524514
# pickle with values as list
525-
with self.assertWarns(OrangeDeprecationWarning):
526-
Table(os.path.join(datasets_dir, "sailing-orange-3-20.pkl"))
515+
Table(os.path.join(datasets_dir, "sailing-orange-3-20.pkl"))
527516
# pickle with values as tuple list
528-
with self.assertWarns(OrangeDeprecationWarning):
529-
Table(os.path.join(datasets_dir, "iris-orange-3-25.pkl"))
517+
Table(os.path.join(datasets_dir, "iris-orange-3-25.pkl"))
530518

531519

532520
@variabletest(ContinuousVariable)

Orange/data/variable.py

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ def make_variable(cls, compute_value, *args):
3434
if compute_value is not None:
3535
return cls(*args, compute_value=compute_value)
3636
else:
37-
# For compatibility with old pickles
37+
# For compatibility with old pickles: remove the second arg if it's
38+
# bool `compute_value` (args[3]) can't be bool, so this should be safe
39+
if len(args) > 2 and isinstance(args[2], bool):
40+
args = args[:2] + args[3:]
3841
return cls(*args)
3942

4043

@@ -626,8 +629,7 @@ class DiscreteVariable(Variable):
626629
presorted_values = []
627630

628631
def __init__(
629-
self, name="", values=(), ordered=None, compute_value=None,
630-
*, sparse=False
632+
self, name="", values=(), compute_value=None, *, sparse=False
631633
):
632634
""" Construct a discrete variable descriptor with the given values. """
633635
values = tuple(values) # some people (including me) pass a generator
@@ -638,23 +640,6 @@ def __init__(
638640
self._values = values
639641
self._value_index = {value: i for i, value in enumerate(values)}
640642

641-
if ordered is not None:
642-
warnings.warn(
643-
"ordered is deprecated and does not have effect. It will be "
644-
"removed in future versions.",
645-
OrangeDeprecationWarning
646-
)
647-
648-
@property
649-
def ordered(self):
650-
warnings.warn(
651-
"ordered is deprecated. It will be removed in future versions.",
652-
# DeprecationWarning warning is used instead of OrangeDeprecation
653-
# warning otherwise tests fail (__repr__ still asks for ordered)
654-
DeprecationWarning
655-
)
656-
return None
657-
658643
@property
659644
def values(self):
660645
return self._values

Orange/tests/test_io.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from Orange.data.io import FileFormat, TabReader, CSVReader, PickleReader
1616
from Orange.data.io_base import PICKLE_PROTOCOL
1717
from Orange.data.table import get_sample_datasets_dir
18-
from Orange.data import Table, Variable
18+
from Orange.data import Table
1919
from Orange.tests import test_dirname
2020
from Orange.util import OrangeDeprecationWarning
2121

@@ -173,16 +173,12 @@ def test_load_pickle(self):
173173
# load pickles created with Orange 3.20
174174
# in next version there is a change in variables.py - line 738
175175
# which broke back compatibility - tests introduced after the fix
176-
with self.assertWarns(OrangeDeprecationWarning):
177-
data1 = Table("datasets/sailing-orange-3-20.pkl")
178-
with self.assertWarns(OrangeDeprecationWarning):
179-
data2 = Table("datasets/sailing-orange-3-20.pkl.gz")
176+
data1 = Table("datasets/sailing-orange-3-20.pkl")
177+
data2 = Table("datasets/sailing-orange-3-20.pkl.gz")
180178

181179
# load pickles created with Orange 3.21
182-
with self.assertWarns(OrangeDeprecationWarning):
183-
data3 = Table("datasets/sailing-orange-3-21.pkl")
184-
with self.assertWarns(OrangeDeprecationWarning):
185-
data4 = Table("datasets/sailing-orange-3-21.pkl.gz")
180+
data3 = Table("datasets/sailing-orange-3-21.pkl")
181+
data4 = Table("datasets/sailing-orange-3-21.pkl.gz")
186182

187183
examples_count = 20
188184
self.assertEqual(examples_count, len(data1))

0 commit comments

Comments
 (0)