chase: Handle both CSV schemata
Apparently, Chase has switched back to the CSV schema without the Card column at the beginning. Just in case they decide to flip-flop on that field forever, we better try to handle both cases.
This commit is contained in:
10
xactfetch.py
10
xactfetch.py
@@ -638,6 +638,16 @@ class Chase:
|
||||
def firefly_import(self, csv: Path, account: int, token: str) -> None:
|
||||
config = copy.deepcopy(self.IMPORT_CONFIG)
|
||||
config['default_account'] = account
|
||||
with csv.open('r', encoding='utf-8') as f:
|
||||
headers = f.readline()
|
||||
if headers.startswith('Card'):
|
||||
log.debug('Detected CSV schema with Card column')
|
||||
elif headers.count(',') == 6:
|
||||
log.debug('Detected CSV schema without Card column')
|
||||
config['roles'].pop(0)
|
||||
config['do_mapping'].pop(0)
|
||||
else:
|
||||
raise ValueError(f'Unexpected CSV schema: {headers}')
|
||||
firefly_import(csv, config, token)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user