Merge Data crashes when given wrong input
- Dominant language
- Python
- Stars
- 5.7k
- Forks
- 1.1k
- Avg merge
- 12d 2h
- Merged PRs (30d)
- 1
Description
**What's wrong?**
Merge data crashes when given a wrong kind of input.
```
---------------------------- ValueError Exception -----------------------------
Traceback (most recent call last):
File "/Users/ajda/orange/orange3/Orange/data/table.py", line 310, in get_columns
shared = shared_cache[(col.compute_shared, source)]
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/misc/cache.py", line 76, in __getitem__
raise KeyError()
KeyError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/ajda/orange/orange-widget-base/orangewidget/gui.py", line 2265, in __call__
self.func(**kwds)
File "/Users/ajda/orange/orange3/Orange/widgets/data/owmergedata.py", line 354, in change_merging
self.commit.deferred()
File "/Users/ajda/orange/orange-widget-base/orangewidget/gui.py", line 2003, in conditional_commit
do_commit()
File "/Users/ajda/orange/orange-widget-base/orangewidget/gui.py", line 2011, in do_commit
commit.call()
File "/Users/ajda/orange/orange-widget-base/orangewidget/gui.py", line 1876, in call
acting_func(instance)
File "/Users/ajda/orange/orange3/Orange/widgets/data/owmergedata.py", line 400, in commit
merged = self.merge() if self.data and self.extra_data else None
^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/widgets/data/owmergedata.py", line 430, in merge
return self._join_table_by_indices(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/widgets/data/owmergedata.py", line 624, in _join_table_by_indices
extras = self.extra_data[rightu].transform(right_domain)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/data/table.py", line 874, in transform
return type(self).from_table(domain, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/data/table.py", line 836, in from_table
table_conversion.convert(source, row_indices,
File "/Users/ajda/orange/orange3/Orange/data/table.py", line 421, in convert
out = array_conv.get_columns(source, row_indices,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/data/table.py", line 312, in get_columns
shared = col.compute_shared(sourceri)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/projection/base.py", line 141, in __call__
return self.projection.transform(data.X)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/orange/orange3/Orange/projection/base.py", line 115, in transform
return self.proj.transform(X)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/miniconda3/envs/o3/lib/python3.11/site-packages/sklearn/utils/_set_output.py", line 319, in wrapped
data_to_wrap = f(self, X, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/miniconda3/envs/o3/lib/python3.11/site-packages/sklearn/decomposition/_base.py", line 138, in transform
X = validate_data(
^^^^^^^^^^^^^^
File "/Users/ajda/miniconda3/envs/o3/lib/python3.11/site-packages/sklearn/utils/validation.py", line 2944, in validate_data
out = check_array(X, input_name="X", **check_params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajda/miniconda3/envs/o3/lib/python3.11/site-packages/sklearn/utils/validation.py", line 1130, in check_array
raise ValueError(
ValueError: Found array with 0 sample(s) (shape=(0, 4)) while a minimum of 1 is required by PCA.
-------------------------------------------------------------------------------
```
**How can we reproduce the problem?**
File (iris) - PCA - Merge Data.
Then connect File data to Merge Data (Extra data output).
Change Merge Data to "Concatenate tables" option.
**What's your environment?**
- Operating system: OSX
- Orange version: 3.39.dev
- How you installed Orange: pip
Contributor guide
Assessment
This issue has not been assessed yet.