budget-bear/main.py
2022-10-30 02:20:51 -07:00

45 lines
1.4 KiB
Python
Executable File

import sys
import argparse
import os
import capital_one
import database
parser = argparse.ArgumentParser(prog="BudgetBear", description="Calculate a budget fit for a bear.")
parser.add_argument('files', type=str, nargs='+', help='File to parse transactions from.')
args = parser.parse_args()
username = 'ciphercules'
file_parsers = [capital_one.Parser()]
for f in args.files:
for file_parser in file_parsers:
# Use the first successful parser.
transactions = file_parser.parse(f)
if not transactions:
continue
# Add to database
database.instance.connect()
with database.instance.atomic():
# Add source file first.
source = database.Source.create(
filename=os.path.basename(f),
type=file_parser.source,
user=username
)
# Add each transaction
for transaction in transactions:
date, description, amount = transaction
database.Transaction.create(
user=username,
transaction_date=date,
description=description,
amount=amount,
source=source
)
database.instance.close()
# We successfully updated database with this parser, exit loop.
break