Skip to content

Commit 9910f89

Browse files
committed
util.get_unique_names: Remove get_next_name
1 parent 6bc17b8 commit 9910f89

File tree

4 files changed

+11
-40
lines changed

4 files changed

+11
-40
lines changed

Orange/widgets/unsupervised/owkmeans.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
from Orange.clustering import KMeans
1111
from Orange.clustering.kmeans import KMeansModel, SILHOUETTE_MAX_SAMPLES
1212
from Orange.data import Table, Domain, DiscreteVariable, ContinuousVariable
13+
from Orange.data.util import get_unique_names
1314
from Orange.widgets import widget, gui
1415
from Orange.widgets.settings import Setting
15-
from Orange.widgets.utils.annotated_data import get_next_name, \
16+
from Orange.widgets.utils.annotated_data import \
1617
ANNOTATED_DATA_SIGNAL_NAME, add_columns
1718
from Orange.widgets.utils.concurrent import ThreadExecutor, FutureSetWatcher
1819
from Orange.widgets.utils.sql import check_sql_input
@@ -463,11 +464,12 @@ def send_data(self):
463464

464465
domain = self.data.domain
465466
cluster_var = DiscreteVariable(
466-
get_next_name(domain, "Cluster"),
467+
get_unique_names(domain, "Cluster"),
467468
values=["C%d" % (x + 1) for x in range(km.k)]
468469
)
469470
clust_ids = km(self.data)
470-
silhouette_var = ContinuousVariable(get_next_name(domain, "Silhouette"))
471+
silhouette_var = ContinuousVariable(
472+
get_unique_names(domain, "Silhouette"))
471473
if km.silhouette_samples is not None:
472474
self.Warning.no_silhouettes.clear()
473475
scores = np.arctan(km.silhouette_samples) / np.pi + 0.5

Orange/widgets/unsupervised/owlouvainclustering.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616

1717
from Orange.clustering.louvain import table_to_knn_graph, Louvain
1818
from Orange.data import Table, DiscreteVariable
19+
from Orange.data.util import get_unique_names
1920
from Orange.projection import PCA
2021
from Orange.widgets import widget, gui, report
2122
from Orange.widgets.settings import DomainContextHandler, ContextSetting, \
2223
Setting
23-
from Orange.widgets.utils.annotated_data import get_next_name, add_columns, \
24+
from Orange.widgets.utils.annotated_data import add_columns, \
2425
ANNOTATED_DATA_SIGNAL_NAME
2526
from Orange.widgets.utils.concurrent import FutureWatcher
2627
from Orange.widgets.utils.signals import Input, Output
@@ -358,7 +359,7 @@ def _send_data(self):
358359
new_partition = list(map(index_map.get, self.partition))
359360

360361
cluster_var = DiscreteVariable(
361-
get_next_name(domain, 'Cluster'),
362+
get_unique_names(domain, 'Cluster'),
362363
values=['C%d' % (i + 1) for i, _ in enumerate(np.unique(new_partition))]
363364
)
364365

Orange/widgets/utils/annotated_data.py

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
from itertools import chain
2-
31
import numpy as np
42
from Orange.data import Domain, DiscreteVariable
5-
from Orange.data.util import get_indices
3+
from Orange.data.util import get_unique_names
64

75
ANNOTATED_DATA_SIGNAL_NAME = "Data"
86
ANNOTATED_DATA_FEATURE_NAME = "Selected"
@@ -32,28 +30,8 @@ def add_columns(domain, attributes=(), class_vars=(), metas=()):
3230
return Domain(attributes, class_vars, metas)
3331

3432

35-
def get_next_name(names, name):
36-
"""
37-
Returns next 'possible' attribute name. The name should not be duplicated
38-
and is generated using name parameter, appended by smallest possible index.
39-
40-
:param names: list
41-
:param name: str
42-
:return: str
43-
"""
44-
if isinstance(names, Domain):
45-
names = [
46-
var.name
47-
for var in chain(names.attributes, names.class_vars, names.metas)
48-
]
49-
indexes = get_indices(names, name)
50-
if name not in names and not indexes:
51-
return name
52-
return "{} ({})".format(name, max(indexes, default=0) + 1)
53-
54-
5533
def _table_with_annotation_column(data, values, column_data, var_name):
56-
var = DiscreteVariable(get_next_name(data.domain, var_name), values)
34+
var = DiscreteVariable(get_unique_names(data.domain, var_name), values)
5735
class_vars, metas = data.domain.class_vars, data.domain.metas
5836
if not data.domain.class_vars:
5937
class_vars += (var, )

Orange/widgets/utils/tests/test_annotated_data.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,11 @@
55

66
from Orange.data import Table, Variable
77
from Orange.data.filter import SameValue
8-
from Orange.data.util import get_unique_names
98
from Orange.widgets.utils.annotated_data import (
10-
create_annotated_table, get_next_name,
11-
create_groups_table, ANNOTATED_DATA_FEATURE_NAME
9+
create_annotated_table, create_groups_table, ANNOTATED_DATA_FEATURE_NAME
1210
)
1311

1412

15-
class TestGetNextName(unittest.TestCase):
16-
def test_get_var_name(self):
17-
self.assertEqual(get_next_name(["a"], "XX"), "XX")
18-
self.assertEqual(get_next_name(["a", "XX"], "XX"), "XX (1)")
19-
self.assertEqual(get_next_name(["a", "XX (4)"], "XX"), "XX (5)")
20-
self.assertEqual(get_next_name(["a", "XX", "XX (4)"], "XX"), "XX (5)")
21-
22-
2313
class TestAnnotatedData(unittest.TestCase):
2414
def setUp(self):
2515
Variable._clear_all_caches() # pylint: disable=protected-access

0 commit comments

Comments
 (0)