when passing an empty but valid bank statement with smart importer, sklearn throws an error (see below). a simple if clause catching that case helps.
(Bean) path@machine:~/myfiles/path$ bean-extract Config.py ../download/ -f main.bean > importdump.bean
ERROR:root:Importer DKB CreditImporter.extract() raised an unexpected error: Found array with 0 sample(s) (shape=(0, 609)) while a minimum of 1 is required.
ERROR:root:Traceback: Traceback (most recent call last):
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/beancount/ingest/extract.py", line 193, in extract
allow_none_for_tags_and_links=allow_none_for_tags_and_links)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/beancount/ingest/extract.py", line 69, in extract_from_file
new_entries = importer.extract(file, kwargs)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/hooks.py", line 46, in patched_extract_method
importer, file, imported_entries, existing_entries
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 65, in call
return self.process_entries(imported_entries)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 145, in process_entries
list(filter_txns(imported_entries))
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 185, in process_transactions
predictions = self.pipeline.predict(transactions)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/utils/metaestimators.py", line 116, in
out = lambda *args, *kwargs: self.fn(obj, args, kwargs)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/pipeline.py", line 420, in predict
return self.steps[-1][-1].predict(Xt, **predict_params)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 594, in predict
y = super().predict(X)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 315, in predict
X = self._validate_for_predict(X)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 447, in _validate_for_predict
accept_large_sparse=False)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/utils/validation.py", line 586, in check_array
context))
ValueError: Found array with 0 sample(s) (shape=(0, 609)) while a minimum of 1 is required.
when passing an empty but valid bank statement with smart importer, sklearn throws an error (see below). a simple if clause catching that case helps.
(Bean) path@machine:~/myfiles/path$ bean-extract Config.py ../download/ -f main.bean > importdump.bean ERROR:root:Importer DKB CreditImporter.extract() raised an unexpected error: Found array with 0 sample(s) (shape=(0, 609)) while a minimum of 1 is required. ERROR:root:Traceback: Traceback (most recent call last): File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/beancount/ingest/extract.py", line 193, in extract allow_none_for_tags_and_links=allow_none_for_tags_and_links) File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/beancount/ingest/extract.py", line 69, in extract_from_file new_entries = importer.extract(file, kwargs) File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/hooks.py", line 46, in patched_extract_method importer, file, imported_entries, existing_entries File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 65, in call return self.process_entries(imported_entries) File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 145, in process_entries list(filter_txns(imported_entries)) File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/smart_importer/predictor.py", line 185, in process_transactions predictions = self.pipeline.predict(transactions) File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/utils/metaestimators.py", line 116, in
out = lambda *args, *kwargs: self.fn(obj, args, kwargs)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/pipeline.py", line 420, in predict
return self.steps[-1][-1].predict(Xt, **predict_params)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 594, in predict
y = super().predict(X)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 315, in predict
X = self._validate_for_predict(X)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/svm/_base.py", line 447, in _validate_for_predict
accept_large_sparse=False)
File "/home/path/miniconda3/envs/Bean/lib/python3.7/site-packages/sklearn/utils/validation.py", line 586, in check_array
context))
ValueError: Found array with 0 sample(s) (shape=(0, 609)) while a minimum of 1 is required.