New issue 347: Bean-query flatten features throws error
https://bitbucket.org/blais/beancount/issues/347/bean-query-flatten-features-throws-error
Trevor Davis:
According to this e-mail in the beancount mailing list you suggested that the "flatten" feature in ``bean-query`` now works:
https://groups.google.com/d/msg/beancount/p5_pEz3QiiA/SBk3sotfEQAJ
However when I tried to use it I get the following error:
``AttributeError: 'BQLShell' object has no attribute 'do_select'``
What I was trying to do was get a version of the "holdings" report with the decimal number of the units column extended from hundredths place to the thousandths place (i.e. report 5.235 shares at a given cost instead of 5.24 shares at a given cost). I need to manually compute capital gains in my HSA account since my provider doesn't track that information at all (but California in their infinite wisdom requires that I pay taxes on them) and right now it is a little bit of trial and error figuring out what my exact cost holdings in the HSA account are since the "holdings" report truncates a digit off my holdings and my provider doesn't track that at all since it isn't a federal requirement for them to do so.
```
$ cat minimal.beancount
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
option "operating_currency" "USD"
2018-01-01 open Assets:Brokerage
2018-01-01 open Equity:Transfer
2018-01-01 open Income:CG:ST
2018-01-01 * "" "Buy 5 Shares"
Assets:Brokerage 5 SHARE {100 USD}
Equity:Transfer
2018-02-05 * "" "Buy 5 Shares"
Assets:Brokerage 5 SHARE {200 USD}
Equity:Transfer
2018-03-05 * "" "Sell 3 Shares"
Assets:Brokerage -2 SHARE {100 USD} @ 150 USD
Assets:Brokerage -1 SHARE {200 USD} @ 150 USD
Income:CG:ST -50 USD
Equity:Transfer
$ bean-check minimal.beancount
$ bean-report minimal.beancount holdings
Account Units Currency Cost Currency Average Cost Price Book Value Market Value
---------------- ----- -------- ------------- ------------ ------ ---------- ------------
Assets:Brokerage 3.00 SHARE USD 100.00 150.00 300.00 450.00
Assets:Brokerage 4.00 SHARE USD 200.00 150.00 800.00 600.00
---------------- ----- -------- ------------- ------------ ------ ---------- ------------
$ bean-query minimal.beancount "select account, cost(sum(position)), value(sum(position)) where account ~ 'Assets:' group by account flatten"
Traceback (most recent call last):
File "/usr/lib/python3.6/cmd.py", line 214, in onecmd
func = getattr(self, 'do_' + cmd)
AttributeError: 'BQLShell' object has no attribute 'do_select'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/beancount-2.2.0_devel-py3.6-linux-x86_64.egg/beancount/query/shell.py", line 271, in run_parser
self.dispatch(statement)
File "/usr/local/lib/python3.6/dist-packages/beancount-2.2.0_devel-py3.6-linux-x86_64.egg/beancount/query/shell.py", line 251, in dispatch
return method(statement)
File "/usr/local/lib/python3.6/dist-packages/beancount-2.2.0_devel-py3.6-linux-x86_64.egg/beancount/query/shell.py", line 419, in on_Select
self.options_map)
File "/usr/local/lib/python3.6/dist-packages/beancount-2.2.0_devel-py3.6-linux-x86_64.egg/beancount/query/query_execute.py", line 380, in execute_query
result_types, result_rows = flatten_results(result_types, result_rows)
File "/usr/local/lib/python3.6/dist-packages/beancount-2.2.0_devel-py3.6-linux-x86_64.egg/beancount/query/query_execute.py", line 421, in flatten_results
value = value[irow] if irow < len(value) else None
KeyError: 0
```