csv-diff icon indicating copy to clipboard operation
csv-diff copied to clipboard

Support for empty CSV files

Open gfiorav opened this issue 3 years ago • 1 comments

Thanks for this lib!

I've noticed that the compare method doesn't work if one of the csv files is empty.

Steps to reproduce

a.csv

id,foo,bar

b.csv

id,foo,bar
1,hey,ho
2,lets,go
from csv_diff import compare
from csv_diff import load_csv

diff: dict = compare(
    load_csv(open("a.csv"), key="id"),
    load_csv(open("b.csv"), key="id"),
)

for added_row in added:
     print(added_row)

Expected result

{"id": 1, "foo": "hey", "bar": "ho"}
{"id": 2, "foo": "lets", "bar": "go"}

Actual result

Traceback (most recent call last):
  File "REDACTED.py", line 165, in <module>
    diff: dict = compare(
  File "REDACTED/python3.9/site-packages/
csv_diff/__init__.py", line 58, in compare
    previous_columns = set(next(iter(previous.values())).keys())
StopIteration

I'm using Python 3.9.2.

gfiorav avatar Apr 07 '21 03:04 gfiorav

File "REDACTED/python3.9/site-packages/ csv_diff/__init__.py", line 58, in compare

previous_columns = set(next(iter(previous.values())).keys()) if previous else set()
current_columns = set(next(iter(current.values())).keys()) if current else set()

sid1333 avatar Apr 25 '22 15:04 sid1333