On Fri, Nov 26, 2021 at 09:08:18AM -0500, Martin Blais wrote:
> https://github.com/beancount/beancount/blob/master/beancount/ops/summarize.py#L589

Thanks a lot Martin, I didn't know about
beancount.ops.summarize.balance_by_accounts(), and now that I know it
helped me simplify some code I had around.

While I'm at it, the code in question compute the average daily balance
in a given account for a given year and currency (which matters for
fiscal reasons in Italy, don't ask...). The core of it looks like this:

    # XXX naive approach: we re-calculate realizations from the beginning of 
the ledger
    # to each day in the target year. It is acceptably fast, so we didn't 
bother making
    # it more efficient than this (for now).
    for day in tqdm(list(year_days(year))):
        inventory = balance_by_account(entries, date=day)[0][account]
        amount = inventory.get_currency_units(currency)
        balances.append(amount.number)

As per comment, it is good enough (takes ~20 seconds on my main ledger),
but it's not great. What would be the best way/internal API to implement
this "right", i.e., with a running balance that is updated with daily
batches of entries?

TIA,
Cheers
-- 
Stefano Zacchiroli . z...@upsilon.cc . upsilon.cc/zack          _. ^ ._
Full professor of Computer Science              o     o   o     \/|V|\/   
Télécom Paris, Polytechnic Institute of Paris     o     o o    </>   <\>
Co-founder & CTO Software Heritage            o o o     o       /\|^|/\
Former Debian Project Leader & OSI Board Director               '" V "'

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beancount+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/20211127101046.tw5yy4x6b4ooxvmp%40upsilon.cc.

Reply via email to