Skip to content

Commit 5c56b65

Browse files
committed
Concatenate: Prevent duplicated name of id column
1 parent f632649 commit 5c56b65

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

Orange/widgets/data/owconcatenate.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from AnyQt.QtCore import Qt
1717

1818
import Orange.data
19-
from Orange.data.util import get_unique_names_duplicates
19+
from Orange.data.util import get_unique_names_duplicates, get_unique_names
2020
from Orange.util import flatten
2121
from Orange.widgets import widget, gui, settings
2222
from Orange.widgets.settings import Setting
@@ -196,7 +196,7 @@ def apply(self):
196196
names = ['{} ({})'.format(name, i)
197197
for i, name in enumerate(names)]
198198
source_var = Orange.data.DiscreteVariable(
199-
self.source_attr_name,
199+
get_unique_names(domain, self.source_attr_name),
200200
values=names
201201
)
202202
places = ["class_vars", "attributes", "metas"]

Orange/widgets/data/tests/test_owconcatenate.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,20 @@ def test_same_var_name(self):
148148
np.testing.assert_equal(output.X,
149149
np.array([0, 1, 2, 3, 3, 4, 5]).reshape(7, 1))
150150

151+
def test_duplicated_id_column(self):
152+
widget = self.widget
153+
154+
var1 = DiscreteVariable(name="x", values=list("abcd"))
155+
data1 = Table.from_numpy(Domain([var1]),
156+
np.arange(4).reshape(4, 1), np.zeros((4, 0)))
157+
widget.append_source_column = True
158+
widget.source_column_role = 0
159+
widget.source_attr_name = "x"
160+
self.send_signal(widget.Inputs.primary_data, data1)
161+
out = self.get_output(widget.Outputs.data)
162+
self.assertEqual(out.domain.attributes[0].name, "x")
163+
self.assertEqual(out.domain.class_var.name, "x (1)")
164+
151165
def test_domain_intersect(self):
152166
widget = self.widget
153167
widget.merge_type = OWConcatenate.MergeIntersection

0 commit comments

Comments
 (0)