biolab / biolab/orange3

Widgets fail with a dataset with hidden variables on the input.

Open
#6,367 1 comment 0 reactions 0 assignees View on GitHub
bug meal
Dominant language
Python
Stars
5.7k
Forks
1.1k
Avg merge
12d 2h
Merged PRs (30d)
1

Description

##### Description

Some widgets fail when a dataset with hidden variables at the input. It can be reproduced with data from the Image Embedding widget. Currently, the following widgets are discovered to fail:

- [ ] Scatter Plot fail when I use Find informative projections, including hidden variables. It fails when I click on a combination that includes the hidden variable. See screenshot. My suggestion is to exclude hidden variables from the informative projections search.
![Screenshot 2023-03-23 at 16 10 06](https://user-images.githubusercontent.com/6421558/227249042-ca9f6d4d-87ab-47d5-921e-4af4ecc1ae2a.png)

- [x] Group By fail immediately when I connect the data with hidden variables.

Traceback (most recent call last):
File "/Users/primoz/python-projects/orange-canvas-core/orangecanvas/scheme/signalmanager.py", line 1047, in __process_next
if self.__process_next_helper(use_max_active=True):
File "/Users/primoz/python-projects/orange-canvas-core/orangecanvas/scheme/signalmanager.py", line 1085, in __process_next_helper
self.process_node(selected_node)
File "/Users/primoz/python-projects/orange-canvas-core/orangecanvas/scheme/signalmanager.py", line 713, in process_node
self.send_to_node(node, signals_in)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/workflow/widgetsscheme.py", line 806, in send_to_node
self.process_signals_for_widget(node, widget, signals)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/workflow/widgetsscheme.py", line 820, in process_signals_for_widget
process_signals_for_widget(widget, signals, workflow)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/functools.py", line 889, in wrapper
return dispatch(args[0].__class__)(*args, **kw)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/workflow/widgetsscheme.py", line 921, in process_signals_for_widget
process_signal_input(input_meta, widget, signal, workflow)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/functools.py", line 889, in wrapper
return dispatch(args[0].__class__)(*args, **kw)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/workflow/widgetsscheme.py", line 884, in process_signal_input_default
notify_input_helper(
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/functools.py", line 889, in wrapper
return dispatch(args[0].__class__)(*args, **kw)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/utils/signals.py", line 692, in set_input_helper
handler(*args)
File "/Users/primoz/miniconda3/envs/orange3/lib/python3.10/site-packages/orangewidget/utils/signals.py", line 205, in summarize_wrapper
method(widget, value)
File "/Users/primoz/python-projects/orange3/Orange/widgets/data/owgroupby.py", line 493, in set_data
self._set_gb_selection()
File "/Users/primoz/python-projects/orange3/Orange/widgets/data/owgroupby.py", line 534, in _set_gb_selection
index = values.index(val)
ValueError: ContinuousVariable(name='n0', number_of_decimals=3) is not in list

- [X] We should also test other widgets using hidden variables - it seems to be OK

### AttributeList issue - @janezd's comment:
- [ ] Scatter Plot - Fails when hidden features are on input. Fixed in #6531
- [ ] Siewe - Do not fail, but the plot is present. It would be better without a plot since the plot does show input features.
- [X] Aggregate Columns

Contributor guide

Open the contributing guide

Research direction

Reproduce the failures using data from the Image Embedding widget, then start with Orange/widgets/data/owgroupby.py, especially set_data and _set_gb_selection, where the traceback ends. Check the remaining Scatter Plot and Siewe cases listed in the issue; done means widgets handle hidden variables without failing or showing an inappropriate plot, while noting that Scatter Plot work was reported fixed in #6531.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-visualization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.