Use run_query() instead: https://github.com/beancount/beancount/blob/master/beancount/query/query.py#L13
On Sun, Jan 17, 2021 at 12:18 PM Aaron Stacy <[email protected]> wrote: > Thanks Martin and Ben! > > The following gives me precisely what I need: > > select number(only("USD", sum(position))) > from open on 2020-10-01 close on 2020-11-01 > where > account ~ "My:Checking" and > number(units(position)) > 0 and > findfirst("Income:Hooli", other_accounts) != NULL > > EXCEPT I'd like a number in Python instead of text output in the terminal. > Cribbing from Ben's examples, I came up with the following to run it from > Python: > > from beancount.query.query_compile import compile > from beancount.query.query_env import FilterPostingsEnvironment, > FilterEntriesEnvironment, TargetsEnvironment > from beancount.query.query_execute import execute_query > from beancount.query.query_parser import Parser > from beancount.loader import load_file > > entries, errors, options = load_file('my.beancount') > text = '... the query from above ...' > ast = Parser().parse(text) > compiled = compile(ast, TargetsEnvironment(), > FilterPostingsEnvironment(), FilterEntriesEnvironment()) > columns, results = execute_query(compiled, entries, options) > > Thanks again for taking the time to help! > > On Sat, Jan 16, 2021 at 11:49 PM Martin Blais <[email protected]> wrote: > >> If you're only interested in income just filter the date interval you >> need. >> >> The "close" operation is essentially there to ensure that the balances of >> the assets/liabilities accounts are correct when you filter out >> transactions from the past, i.e., it just inserts a transfer from all of >> the past's net income to the balance sheet accounts at the head of the >> filtered transactions. >> >> >> On Sat, Jan 16, 2021 at 4:24 PM Aaron Stacy <[email protected]> >> wrote: >> >>> HI all! I'd like to make a customized income statement where some >>> accounts are added together. For example, I'd like to know all income for >>> the past month, whether it was Income:Hooli:Salary or Income:Hooli:RSU's. I >>> can get pretty close with the query: >>> >>> select account, sum(position) from open on 2020-12-01 close on >>> 2020-12-31 where account ~ "Income" group by account order by account; >>> >>> But then I need to go through and sum the specific accounts I happen to >>> care about. I'm comfortable importing beancount, using it to parse my >>> ledger, and iterating through expenses, but can someone point me to what >>> I'd do to get the open on/close on part? >>> >>> Thanks! >>> >>> -- >>> 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 [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beancount/26067fa0-0a9a-41ec-9b5d-2f62c9714ff0n%40googlegroups.com >>> <https://groups.google.com/d/msgid/beancount/26067fa0-0a9a-41ec-9b5d-2f62c9714ff0n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Beancount" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beancount/_XEernfER5w/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/CAK21%2BhNCseoKOVRPFUgpmKg3UM1VmcKonEDZA_Ck%2BCTrc%2BbhRA%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAK21%2BhNCseoKOVRPFUgpmKg3UM1VmcKonEDZA_Ck%2BCTrc%2BbhRA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beancount/CACjABkm2Gh3VXoJinXDMw224hSD%2B6z1LCQK_gRN3WsCVut7JzQ%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CACjABkm2Gh3VXoJinXDMw224hSD%2B6z1LCQK_gRN3WsCVut7JzQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhMnuezFxeoTJ6%2BDEat-njGpFNges2s9gPmEg3T5pg25pg%40mail.gmail.com.
