Skip to content

Commit cc33a76

Browse files
committed
OWOutliers: data info displayed in the status bar
1 parent b838a6d commit cc33a76

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

Orange/widgets/data/owoutliers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from Orange.widgets.utils.concurrent import TaskState, ConcurrentWidgetMixin
1919
from Orange.widgets.utils.sql import check_sql_input
2020
from Orange.widgets.utils.widgetpreview import WidgetPreview
21+
from Orange.widgets.utils.state_summary import format_summary_details
2122
from Orange.widgets.widget import Msg, Input, Output, OWWidget
2223

2324

@@ -265,7 +266,9 @@ def set_data(self, data):
265266
self.cancel()
266267
self.clear_messages()
267268
self.data = data
268-
self.info.set_input_summary(len(data) if data else self.info.NoOutput)
269+
summary = len(data) if data else self.info.NoInput
270+
details = format_summary_details(data) if data else ""
271+
self.info.set_input_summary(summary, details)
269272
self.enable_controls()
270273
self.unconditional_commit()
271274

@@ -294,7 +297,8 @@ def on_partial_result(self, _):
294297
def on_done(self, result: Results):
295298
inliers, outliers = result.inliers, result.outliers
296299
summary = len(inliers) if inliers else self.info.NoOutput
297-
self.info.set_output_summary(summary)
300+
details = format_summary_details(inliers) if inliers else ""
301+
self.info.set_output_summary(summary, details)
298302
self.n_inliers = len(inliers) if inliers else None
299303
self.n_outliers = len(outliers) if outliers else None
300304

Orange/widgets/data/tests/test_owoutliers.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from Orange.classification import LocalOutlierFactorLearner
99
from Orange.widgets.data.owoutliers import OWOutliers, run
1010
from Orange.widgets.tests.base import WidgetTest, simulate
11+
from Orange.widgets.utils.state_summary import format_summary_details
1112

1213

1314
class TestRun(unittest.TestCase):
@@ -132,16 +133,25 @@ def test_in_out_summary(self):
132133
info = self.widget.info
133134
self.assertEqual(info._StateInfo__input_summary.brief, "")
134135
self.assertEqual(info._StateInfo__output_summary.brief, "")
136+
self.assertEqual(info._StateInfo__input_summary.details, "No data on input")
137+
self.assertEqual(info._StateInfo__output_summary.details, "No data on output")
135138

136139
self.send_signal(self.widget.Inputs.data, self.iris)
137140
self.wait_until_finished()
138141
self.assertEqual(info._StateInfo__input_summary.brief, "150")
139142
self.assertIn(info._StateInfo__output_summary.brief, ["135", "136"])
143+
self.assertEqual(info._StateInfo__input_summary.details,
144+
format_summary_details(self.iris))
145+
output = self.get_output(self.widget.Outputs.inliers)
146+
self.assertEqual(info._StateInfo__output_summary.details,
147+
format_summary_details(output))
140148

141149
self.send_signal(self.widget.Inputs.data, None)
142150
self.wait_until_finished()
143151
self.assertEqual(info._StateInfo__input_summary.brief, "")
144152
self.assertEqual(info._StateInfo__output_summary.brief, "")
153+
self.assertEqual(info._StateInfo__input_summary.details, "No data on input")
154+
self.assertEqual(info._StateInfo__output_summary.details, "No data on output")
145155

146156
@patch("Orange.widgets.data.owoutliers.OWOutliers.MAX_FEATURES", 3)
147157
@patch("Orange.widgets.data.owoutliers.OWOutliers.commit", Mock())

0 commit comments

Comments
 (0)