Skip to content

Commit 7954dd5

Browse files
janezdirgolic
andcommitted
Use automated summaries
Co-authored-by: Rafael Irgolic <hello@irgolic.com>
1 parent b4a9e28 commit 7954dd5

File tree

129 files changed

+53
-2577
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+53
-2577
lines changed

Orange/widgets/data/owcolor.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from Orange.widgets.gui import HorizontalGridDelegate
2020
from Orange.widgets.utils import itemmodels, colorpalettes
2121
from Orange.widgets.utils.widgetpreview import WidgetPreview
22-
from Orange.widgets.utils.state_summary import format_summary_details
2322
from Orange.widgets.report import colored_square as square
2423
from Orange.widgets.widget import Input, Output
2524

@@ -580,9 +579,6 @@ def __init__(self):
580579
gui.rubber(self.buttonsArea)
581580
gui.auto_apply(self.buttonsArea, self, "auto_apply")
582581

583-
self.info.set_input_summary(self.info.NoInput)
584-
self.info.set_output_summary(self.info.NoOutput)
585-
586582
@staticmethod
587583
def sizeHint(): # pragma: no cover
588584
return QSize(500, 570)
@@ -594,10 +590,8 @@ def set_data(self, data):
594590
self.cont_descs = []
595591
if data is None:
596592
self.data = self.domain = None
597-
self.info.set_input_summary(self.info.NoInput)
598593
else:
599594
self.data = data
600-
self.info.set_input_summary(len(data), format_summary_details(data))
601595
for var in chain(data.domain.variables, data.domain.metas):
602596
if var.is_discrete:
603597
self.disc_descs.append(DiscAttrDesc(var))
@@ -738,7 +732,6 @@ def make(variables):
738732

739733
if self.data is None:
740734
self.Outputs.data.send(None)
741-
self.info.set_output_summary(self.info.NoOutput)
742735
return
743736

744737
disc_dict = {desc.var.name: desc for desc in self.disc_descs}
@@ -748,8 +741,6 @@ def make(variables):
748741
new_domain = Orange.data.Domain(
749742
make(dom.attributes), make(dom.class_vars), make(dom.metas))
750743
new_data = self.data.transform(new_domain)
751-
self.info.set_output_summary(len(new_data),
752-
format_summary_details(new_data))
753744
self.Outputs.data.send(new_data)
754745

755746
def send_report(self):

Orange/widgets/data/owconcatenate.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
from Orange.widgets.utils.annotated_data import add_columns
2424
from Orange.widgets.utils.sql import check_sql_input
2525
from Orange.widgets.utils.widgetpreview import WidgetPreview
26-
from Orange.widgets.utils.state_summary import format_summary_details, \
27-
format_multiple_summaries
2826
from Orange.widgets.widget import Input, Output, Msg
2927

3028

@@ -145,9 +143,6 @@ def __init__(self):
145143
gui.comboBox(ibox, self, "source_column_role", items=self.id_roles,
146144
callback=self._source_changed))
147145

148-
self.info.set_input_summary(self.info.NoInput)
149-
self.info.set_output_summary(self.info.NoOutput)
150-
151146
ibox.layout().addLayout(form)
152147
mleft, mtop, mright, _ = ibox.layout().getContentsMargins()
153148
ibox.layout().setContentsMargins(mleft, mtop, mright, 4)
@@ -170,25 +165,8 @@ def set_more_data(self, data=None, sig_id=None):
170165
elif sig_id in self.more_data:
171166
del self.more_data[sig_id]
172167

173-
def _set_input_summary(self):
174-
more_data = list(self.more_data.values()) if self.more_data else [None]
175-
n_primary = len(self.primary_data) if self.primary_data else 0
176-
n_more_data = [len(data) if data else 0 for data in more_data]
177-
178-
summary, details, kwargs = self.info.NoInput, "", {}
179-
if self.primary_data or self.more_data:
180-
summary = f"{self.info.format_number(n_primary)}, " \
181-
+ ", ".join(self.info.format_number(i) for i in n_more_data)
182-
details = format_multiple_summaries(
183-
[("Primary data", self.primary_data)]
184-
+ [("", data) for data in more_data]
185-
)
186-
kwargs = {"format": Qt.RichText}
187-
self.info.set_input_summary(summary, details, **kwargs)
188-
189168
def handleNewSignals(self):
190169
self.mergebox.setDisabled(self.primary_data is not None)
191-
self._set_input_summary()
192170
if self.incompatible_types():
193171
self.Error.bow_concatenation()
194172
else:
@@ -242,10 +220,8 @@ def apply(self):
242220
source_ids = np.array(list(flatten(
243221
[i] * len(table) for i, table in enumerate(tables)))).reshape((-1, 1))
244222
data[:, source_var] = source_ids
245-
self.info.set_output_summary(len(data), format_summary_details(data))
246223
else:
247224
data = None
248-
self.info.set_output_summary(self.info.NoOutput)
249225

250226
self.Outputs.data.send(data)
251227

Orange/widgets/data/owcontinuize.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from Orange.widgets.settings import Setting
1414
from Orange.widgets.utils.sql import check_sql_input
1515
from Orange.widgets.utils.widgetpreview import WidgetPreview
16-
from Orange.widgets.utils.state_summary import format_summary_details
1716
from Orange.widgets.widget import Input, Output
1817

1918

@@ -99,8 +98,6 @@ def __init__(self):
9998
gui.auto_apply(self.buttonsArea, self, "autosend")
10099

101100
self.data = None
102-
self.info.set_input_summary(self.info.NoInput)
103-
self.info.set_output_summary(self.info.NoOutput)
104101

105102
def settings_changed(self):
106103
self.commit()
@@ -111,12 +108,8 @@ def setData(self, data):
111108
self.data = data
112109
self.enable_normalization()
113110
if data is None:
114-
self.info.set_input_summary(self.info.NoInput)
115-
self.info.set_output_summary(self.info.NoOutput)
116111
self.Outputs.data.send(None)
117112
else:
118-
self.info.set_input_summary(len(data),
119-
format_summary_details(data))
120113
self.unconditional_commit()
121114

122115
def enable_normalization(self):
@@ -147,8 +140,6 @@ def commit(self):
147140
domain = continuizer(self.data)
148141
data = self.data.transform(domain)
149142
self.Outputs.data.send(data)
150-
self.info.set_output_summary(len(data),
151-
format_summary_details(data))
152143
else:
153144
self.Outputs.data.send(self.data) # None or empty data
154145

Orange/widgets/data/owcorrelations.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from Orange.widgets.utils.itemmodels import DomainModel
2626
from Orange.widgets.utils.signals import Input, Output
2727
from Orange.widgets.utils.widgetpreview import WidgetPreview
28-
from Orange.widgets.utils.state_summary import format_summary_details
2928
from Orange.widgets.visualize.utils import VizRankDialogAttrPair
3029
from Orange.widgets.widget import OWWidget, AttributeList, Msg
3130

@@ -297,9 +296,6 @@ def __init__(self):
297296
button_box = gui.hBox(self.buttonsArea)
298297
button_box.layout().addWidget(self.vizrank.button)
299298

300-
self.info.set_input_summary(self.info.NoInput)
301-
self.info.set_output_summary(self.info.NoOutput)
302-
303299
@staticmethod
304300
def sizeHint():
305301
return QSize(350, 400)
@@ -366,10 +362,6 @@ def set_data(self, data):
366362
self.Warning.not_enough_vars()
367363
else:
368364
self.cont_data = SklImpute()(cont_data)
369-
self.info.set_input_summary(len(data),
370-
format_summary_details(data))
371-
else:
372-
self.info.set_input_summary(self.info.NoInput)
373365
self.set_feature_model()
374366
self.openContext(self.cont_data)
375367
self.apply()
@@ -394,9 +386,6 @@ def apply(self):
394386

395387
def commit(self):
396388
self.Outputs.data.send(self.data)
397-
summary = len(self.data) if self.data else self.info.NoOutput
398-
details = format_summary_details(self.data) if self.data else ""
399-
self.info.set_output_summary(summary, details)
400389

401390
if self.data is None or self.cont_data is None:
402391
self.Outputs.features.send(None)

Orange/widgets/data/owcreateclass.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from Orange.widgets.settings import DomainContextHandler, ContextSetting
1616
from Orange.widgets.utils.itemmodels import DomainModel
1717
from Orange.widgets.utils.widgetpreview import WidgetPreview
18-
from Orange.widgets.utils.state_summary import format_summary_details
1918
from Orange.widgets.widget import Msg, Input, Output
2019

2120

@@ -269,9 +268,6 @@ def __init__(self):
269268

270269
gui.button(self.buttonsArea, self, "Apply", callback=self.apply)
271270

272-
self.info.set_input_summary(self.info.NoInput)
273-
self.info.set_output_summary(self.info.NoOutput)
274-
275271
# TODO: Resizing upon changing the number of rules does not work
276272
self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
277273

@@ -297,16 +293,12 @@ def set_data(self, data):
297293
self.closeContext()
298294
self.rules = {}
299295
self.data = data
300-
summary = len(data) if data else self.info.NoInput
301-
details = format_summary_details(data) if data else ""
302-
self.info.set_input_summary(summary, details)
303296
model = self.controls.attribute.model()
304297
model.set_domain(data.domain if data is not None else None)
305298
self.Warning.no_nonnumeric_vars(shown=data is not None and not model)
306299
if not model:
307300
self.attribute = None
308301
self.Outputs.data.send(None)
309-
self.info.set_output_summary(self.info.NoOutput)
310302
return
311303
self.attribute = model[0]
312304
self.openContext(data)
@@ -513,7 +505,6 @@ def apply(self):
513505
self.class_name = self.class_name.strip()
514506
if not self.attribute:
515507
self.Outputs.data.send(None)
516-
self.info.set_output_summary(self.info.NoOutput)
517508
return
518509
domain = self.data.domain
519510
if not self.class_name:
@@ -522,15 +513,11 @@ def apply(self):
522513
self.Error.class_name_duplicated()
523514
if not self.class_name or self.class_name in domain:
524515
self.Outputs.data.send(None)
525-
self.info.set_output_summary(self.info.NoOutput)
526516
return
527517
new_class = self._create_variable()
528518
new_domain = Domain(
529519
domain.attributes, new_class, domain.metas + domain.class_vars)
530520
new_data = self.data.transform(new_domain)
531-
summary = len(new_data) if new_data is not None else self.info.NoOutput
532-
details = format_summary_details(new_data) if new_data is not None else ""
533-
self.info.set_output_summary(summary, details)
534521
self.Outputs.data.send(new_data)
535522

536523
def _create_variable(self):

Orange/widgets/data/owcreateinstance.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
from Orange.widgets import gui
1818
from Orange.widgets.utils.itemmodels import TableModel
1919
from Orange.widgets.settings import Setting
20-
from Orange.widgets.utils.state_summary import format_summary_details, \
21-
format_multiple_summaries
2220
from Orange.widgets.utils.widgetpreview import WidgetPreview
2321
from Orange.widgets.widget import OWWidget, Input, Output, Msg
2422

@@ -527,8 +525,6 @@ def __init__(self):
527525
gui.rubber(self.buttonsArea)
528526
box = gui.auto_apply(self.buttonsArea, self, "auto_commit")
529527

530-
self._set_input_summary()
531-
self._set_output_summary()
532528
self.settingsAboutToBePacked.connect(self.pack_settings)
533529

534530
def __filter_edit_changed(self):
@@ -604,7 +600,6 @@ def _initialize_values(self, fun: str, indices: List[QModelIndex] = None):
604600
@Inputs.data
605601
def set_data(self, data: Table):
606602
self.data = data
607-
self._set_input_summary()
608603
self._set_model_data()
609604
self.unconditional_commit()
610605

@@ -624,35 +619,13 @@ def _set_model_data(self):
624619
@Inputs.reference
625620
def set_reference(self, data: Table):
626621
self.reference = data
627-
self._set_input_summary()
628-
629-
def _set_input_summary(self):
630-
n_data = len(self.data) if self.data else 0
631-
n_refs = len(self.reference) if self.reference else 0
632-
summary, details, kwargs = self.info.NoInput, "", {}
633-
634-
if self.data or self.reference:
635-
summary = f"{self.info.format_number(n_data)}, " \
636-
f"{self.info.format_number(n_refs)}"
637-
data_list = [("Data", self.data), ("Reference", self.reference)]
638-
details = format_multiple_summaries(data_list)
639-
kwargs = {"format": Qt.RichText}
640-
self.info.set_input_summary(summary, details, **kwargs)
641-
642-
def _set_output_summary(self, data: Optional[Table] = None):
643-
if data:
644-
summary, details = len(data), format_summary_details(data)
645-
else:
646-
summary, details = self.info.NoOutput, ""
647-
self.info.set_output_summary(summary, details)
648622

649623
def commit(self):
650624
output_data = None
651625
if self.data:
652626
output_data = self._create_data_from_values()
653627
if self.append_to_data:
654628
output_data = self._append_to_data(output_data)
655-
self._set_output_summary(output_data)
656629
self.Outputs.data.send(output_data)
657630

658631
def _create_data_from_values(self) -> Table:

Orange/widgets/data/owcsvimport.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
from Orange.widgets.utils.settings import (
6767
QSettings_readArray, QSettings_writeArray
6868
)
69-
from Orange.widgets.utils.state_summary import format_summary_details
7069

7170
if typing.TYPE_CHECKING:
7271
# pylint: disable=invalid-name
@@ -714,8 +713,6 @@ def __init__(self, *args, **kwargs):
714713
self.summary_text.viewport().setAutoFillBackground(False)
715714
box.layout().addWidget(self.summary_text)
716715

717-
self.info.set_output_summary(self.info.NoOutput)
718-
719716
button_box = QDialogButtonBox(
720717
orientation=Qt.Horizontal,
721718
standardButtons=QDialogButtonBox.Cancel | QDialogButtonBox.Retry
@@ -1221,9 +1218,6 @@ def __handle_result(self, f):
12211218
self._update_status_messages(table)
12221219

12231220
def _update_status_messages(self, data):
1224-
summary = len(data) if data else self.info.NoOutput
1225-
details = format_summary_details(data) if data else ""
1226-
self.info.set_output_summary(summary, details)
12271221
if data is None:
12281222
return
12291223

Orange/widgets/data/owdatainfo.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from Orange.widgets import widget, gui
66
from Orange.widgets.utils.widgetpreview import WidgetPreview
7-
from Orange.widgets.utils.state_summary import format_summary_details
87
from Orange.widgets.widget import Input
98
from Orange.data.table import Table
109
from Orange.data import StringVariable, DiscreteVariable, ContinuousVariable
@@ -43,8 +42,6 @@ def __init__(self):
4342
bo = gui.vBox(self.controlArea, box)
4443
gui.label(bo, self, "%%(%s)s" % name)
4544

46-
self.info.set_input_summary(self.info.NoInput)
47-
4845
# ensure the widget has some decent minimum width.
4946
self.targets = "Categorical outcome with 123 values"
5047
self.layout().activate()
@@ -59,12 +56,9 @@ def __init__(self):
5956
def data(self, data):
6057
if data is None:
6158
self._clear_fields()
62-
self.info.set_input_summary(self.info.NoInput)
6359
else:
6460
self._set_fields(data)
6561
self._set_report(data)
66-
self.info.set_input_summary(data.approx_len(),
67-
format_summary_details(data))
6862

6963
def _clear_fields(self):
7064
self.data_set_name = ""

0 commit comments

Comments
 (0)