from beancount.ingest import importer from beancount.core import data from beancount.core.number import D import csv class MyCSVImporter(importer.ImporterProtocol): """A Beancount importer for CSV files""" def identify(self, file): return file.name.endswith('.csv') def file_account(self, file): return "Assets:Bank:POSTBANK" def file_date(self, file): """Returns the unique date of the file, if any.""" # Optioneel: als je bestandsnaam een datum bevat return None def file_name(self, file): """Returns the unique name of the file, if any.""" # Optioneel: als je een unieke naam wilt baseren op het bestand return None def extract(self, file, existing_entries=None): entries = [] print(f"Start extracting from: {file.name}") print(f"Content will be processed from: {file.contents}") meta = data.new_metadata(file.name, 0) transaction = data.Transaction( meta=meta, date=data.D(2025, 7, 29), flag='*', payee="Dummy Payee", narration="Dummy narration - REPLACE this", tags=data.frozenset(['test']), links=data.frozenset(), postings=[ data.Postings("Assets:Bank:POSTBANK", D("-100.00"), data.get_currency_meta('EUR'), None, None, None), data.Postings("Expenses:Food", D("100.00"), data.get_currency_meta('EUR'), None, None, None), ] ) entries.append(transaction) return entries