Exporter

Exports the ledger to CSV. Use when the user asks for a CSV of the ledger, or when an export is due at month end.

letsloose501 Updated

File contents

Exporter

  1. Run the exporter over the ledger.
  2. Stop when the CSV row count matches the ledger row count.
import csv
import json
import os
import sys

def rows(path):
    with open(path, encoding="utf-8") as f:
        data = json.load(f)
    for entry in data["entries"]:
        yield entry["date"], entry["amount"], entry["memo"]

def export(src, dst):
    with open(dst, "w", encoding="utf-8", newline="") as f:
        out = csv.writer(f)
        out.writerow(["date", "amount", "memo"])
        for row in rows(src):
            out.writerow(row)
    return os.path.getsize(dst)

if __name__ == "__main__":
    print(export(sys.argv[1], sys.argv[2]))

letsloose501/skill-quality-suite/tree/main/tests/fixtures/code-as-prose/exporter commit 79da85bf59

Frequently asked questions

npx skillmds@latest add letsloose501/exporter