Maybe this will cause more problems than it solves (I am very unfamiliar
with the beangrow code), but I ran into this problem myself and added the
following 2 lines to beangrow to make it work.
Hope this helps.
try:
return price_map[base_quote]
except KeyError as exc:
base, quote = base_quote
* # Add this if base == quote: return
[("1970-01-01", 1)]; # End*
prices = price_map.get((quote, base), None)
if prices:
return prices
else:
raise
Le dimanche 30 mars 2025 à 20:52:52 UTC+2, Chary Ev2geny a écrit :
> Ok,
>
> thanks for clarification
>
> On Saturday, March 29, 2025 at 11:49:06 PM UTC+1 [email protected] wrote:
>
>>
>> I ran into this myself when I first tried using beangrow. Debugging into
>> the code a bit, I believe the problem is that beangrow doesn't support
>> investments with the "core" currency (i.e. USD). If you look at the example
>> ledger file and config in the beangrow repo, you'll see that all of the
>> configured investments are for a non-USD commodity.
>>
>>
>> On Wednesday, March 19, 2025 at 7:03:05 AM UTC-6 Chary Ev2geny wrote:
>>
>>> Dear all,
>>>
>>> I struggling to run beangrow for the following configuration:
>>>
>>> Ledger
>>>
>>>
>>> 2019-12-31 open Assets:Cash
>>> 2019-12-31 open Equity:Initial-balance
>>> 2019-12-31 open Assets:Investments
>>> 2019-12-31 open Income:Investments-Gains
>>>
>>> 2019-12-31 commodity HOO
>>> 2019-12-31 commodity USD
>>>
>>>
>>> 2019-12-31 * "Initial balance"
>>> Assets:Cash 100 USD
>>> Equity:Initial-balance -100 USD
>>>
>>> 2020-01-01 price HOO 10 USD
>>>
>>> 2020-01-01 * "Investing"
>>> Assets:Investments 100 USD
>>> Assets:Cash -100 USD
>>>
>>> 2020-12-31 * "Y2020 accumulated gains from investments"
>>> Assets:Investments 100 USD
>>> Income:Investments-Gains -100 USD
>>>
>>>
>>> Configuration file
>>>
>>>
>>> investments {
>>> investment {
>>> currency: "USD"
>>> asset_account: "Assets:Investments"
>>> cash_accounts: "Assets:Cash"
>>> }
>>> }
>>>
>>>
>>> groups {
>>> group {
>>> name: "MyInvest"
>>> investment: "Assets:Investments"
>>> }
>>>
>>> }
>>> When I run beangrow, I get the following errors:
>>>
>>> C:\_code\py\beangrow>uv run beangrow-returns
>>> C:\_code\pytest\beangrouw_exp\test.bean
>>> C:\_code\pytest\beangrouw_exp\test.pbtxt
>>> C:\_code\pytest\beangrouw_exp\reports
>>> Traceback (most recent call last):
>>> File "<frozen runpy>", line 198, in _run_module_as_main
>>> File "<frozen runpy>", line 88, in _run_code
>>> File
>>> "C:\_code\py\beangrow\.venv\Scripts\beangrow-returns.exe\__main__.py", line
>>> 10, in <module>
>>> File "C:\_code\py\beangrow\beangrow\compute_returns.py", line 94, in
>>> main
>>> reports.generate_price_pages(account_data_map,
>>> File "C:\_code\py\beangrow\beangrow\reports.py", line 685, in
>>> generate_price_pages
>>> all_prices = prices.get_all_prices(price_map, base_quote)
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> File
>>> "C:\_code\py\beangrow\.venv\Lib\site-packages\beancount\core\prices.py",
>>> line 309, in get_all_prices
>>> return _lookup_price_and_inverse(price_map, base_quote)
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> File
>>> "C:\_code\py\beangrow\.venv\Lib\site-packages\beancount\core\prices.py",
>>> line 284, in _lookup_price_and_inverse
>>> return price_map[base_quote]
>>> ~~~~~~~~~^^^^^^^^^^^^
>>> KeyError: ('USD', 'USD')
>>>
>>> Any suggestions how to fix?
>>>
>>
--
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 visit
https://groups.google.com/d/msgid/beancount/d99b99af-2c22-43d4-a7c7-4b1a828b261an%40googlegroups.com.