upgrade to beancount v3
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
from beancount import loader
|
||||
from beancount.query import query
|
||||
from beanquery import query
|
||||
from beancount.parser import printer
|
||||
import argparse
|
||||
from tabulate import tabulate
|
||||
from decimal import Decimal
|
||||
from beancount.core.amount import Amount, add, sub, mul
|
||||
from math import floor
|
||||
from beancount.core.amount import Amount, add, sub
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
||||
@@ -72,7 +71,7 @@ def get_debt_to_assets_ratio(balances, max):
|
||||
|
||||
def get_emergency_fund_ratio(balances, expenses, low, mid):
|
||||
liquid = 0
|
||||
living_expenses = expenses[0].position.get_only_position(
|
||||
living_expenses = expenses[0][0].get_only_position(
|
||||
).units.number / 12
|
||||
for account, balance in balances.items():
|
||||
if account.startswith("Assets:Liquid"):
|
||||
@@ -129,7 +128,7 @@ def get_solvency_ratio(balances, min):
|
||||
|
||||
|
||||
def get_interest_coverage_ratio(net_monthly_income, expenses, debt_payments, mortgage_payments, min):
|
||||
living_expenses = expenses[0].position.get_only_position().units.number
|
||||
living_expenses = expenses[0][0].get_only_position().units.number
|
||||
interest = debt_payments.number + mortgage_payments.number
|
||||
interest = interest if interest > 0 else 1
|
||||
result = round((net_monthly_income - living_expenses) / interest, 2)
|
||||
@@ -265,7 +264,7 @@ def get_balances(entries, options, date):
|
||||
entries, options, balance_query)
|
||||
balances = {}
|
||||
for row in rrows:
|
||||
balances[row.account] = row.position
|
||||
balances[row[0]] = row[1]
|
||||
return balances
|
||||
|
||||
|
||||
@@ -284,7 +283,7 @@ def get_income(entries, options, date):
|
||||
end_date} WHERE account ~ '^(Income:Work|Income:Savings|Income:Invest)' AND date >= {start_date}"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, income_query)
|
||||
net_monthly_income = rrows[0].position.get_only_position(
|
||||
net_monthly_income = rrows[0][0].get_only_position(
|
||||
).units.number * -1
|
||||
|
||||
start_date, end_date = get_last_year_timestamps(date)
|
||||
@@ -292,7 +291,7 @@ def get_income(entries, options, date):
|
||||
end_date} WHERE account ~ '^(Income:Work|Income:Savings|Income:Invest)' AND date >= {start_date}"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, income_query)
|
||||
net_yearly_income = rrows[0].position.get_only_position(
|
||||
net_yearly_income = rrows[0][0].get_only_position(
|
||||
).units.number * -1
|
||||
return net_monthly_income, net_yearly_income
|
||||
|
||||
@@ -308,7 +307,7 @@ def get_debt_payments(entries, options, date):
|
||||
entries, options, debt_payments_query)
|
||||
rtypes, rrows_mortgage = query.run_query(
|
||||
entries, options, mortgage_payments_query)
|
||||
debt_payments = rrows_debt[0].position.get_only_position().units if len(
|
||||
debt_payments = rrows_debt[0][0].get_only_position().units if len(
|
||||
rrows_debt) > 0 else Amount(Decimal(0), "EUR")
|
||||
mortgage_payments = rrows_mortgage[0].position.get_only_position(
|
||||
).units if len(rrows_mortgage) > 0 else Amount(Decimal(0), "EUR")
|
||||
@@ -321,13 +320,13 @@ def get_savings(entries, options, date):
|
||||
end_date} WHERE account ~ '^Assets:Invest:' AND date >= {start_date}"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, investments_query)
|
||||
result = rrows[0].position.get_only_position().units if len(
|
||||
result = rrows[0][0].get_only_position().units if len(
|
||||
rrows) > 0 else Amount(Decimal(0), "EUR")
|
||||
liabilities_query = f"SELECT convert(sum(position), \"EUR\") as position FROM date <= {
|
||||
end_date} WHERE account ~ '^Liabilities:Credit:Renta4:' AND date >= {start_date}"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, liabilities_query)
|
||||
liabilities = rrows[0].position.get_only_position().units if len(
|
||||
liabilities = rrows[0][0].get_only_position().units if len(
|
||||
rrows) > 0 else Amount(Decimal(0), "EUR")
|
||||
result = add(result, liabilities)
|
||||
return result
|
||||
@@ -345,7 +344,7 @@ def get_assets_pignorats(entries, options, date):
|
||||
date}) as price"
|
||||
rtypes, rrows = query.run_query(
|
||||
entries, options, pignorat_query)
|
||||
result = result + rrows[0].price * assets_pignorats[curr]
|
||||
result = result + rrows[0][0] * assets_pignorats[curr]
|
||||
return result
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user