]> piware.de Git - bin.git/commitdiff
consors-report: Adjust to format change in May 2024
authorMartin Pitt <martin@piware.de>
Thu, 2 May 2024 05:54:03 +0000 (07:54 +0200)
committerMartin Pitt <martin@piware.de>
Thu, 2 May 2024 05:54:03 +0000 (07:54 +0200)
Consors changed back to semicolon separator (see commit 6da88a57b007c9),
and added a 9th field "Währung".

Convert the older CSVs with
```py
import csv
import sys

with open(sys.argv[1], 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    writer = csv.writer(sys.stdout, delimiter=';', quotechar='"')
    for row in reader:
        writer.writerow(row)
```

consors-report.py

index f76deb3ea6211cc68e5b117548f8ea5e028fb1a8..272b06b9097756fcaecf52082d5f03eb553ce55e 100755 (executable)
@@ -47,6 +47,8 @@ def get_category(item: str) -> str:
 
 def parse_entry(raw_fields: Iterable[str]) -> Entry:
     fields = [f.strip() for f in raw_fields]
+    # format change in May 2024, adds a 9th field "Währung"; ignore
+    fields = fields[:8]
     # last field is the value, parse as float
     value = float(fields.pop().replace('.', '').replace(',', '.'))
     # match on who, IBAN, type, or desc
@@ -64,7 +66,7 @@ def parse_csv(path: Path, date_filter: str) -> Iterable[Entry]:
         return filter_re.search(entry.date)
 
     with path.open() as f:
-        reader = csv.reader(f)
+        reader = csv.reader(f, delimiter=';')
         next(reader)  # skip header
         # first line is the column headers, chop it off
         entries = map(parse_entry, reader)