transactions[txn_id].append(txn) return transactions
"csv_columns": ["Date", "Description", "Amount", "Account"], "iif_targets": "DATE": "Date", "MEMO": "Description", "AMOUNT": "Amount", "ACCNT": "Account" , "transaction_group_key": ["Date", "Reference"] csv to iif converter
def reformat_date(date_str): # Supports YYYY-MM-DD or DD/MM/YYYY for fmt in ('%Y-%m-%d', '%d/%m/%Y', '%m/%d/%Y'): try: dt = datetime.strptime(date_str, fmt) return dt.strftime('%m/%d/%Y') except ValueError: continue raise ValueError(f"Date date_str not recognized") transactions[txn_id]
def generate_iif(transactions, output_file): with open(output_file, 'w', encoding='utf-16') as f: # IIF prefers UTF-16 f.write("!TRNS\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\tNAME\n") f.write("!SPL\tTRNSTYPE\tDATE\tACCNT\tAMOUNT\tMEMO\t\n") "iif_targets": "DATE": "Date"