Open pallavg opened 7 months ago
Looks like 'price_map' has been changed to 'prices': https://github.com/beancount/fava/commit/4cdff4d13f0b2ff8dcb506695035ca3d2b42a330
Looks like more than just that:
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 96, in run
title, portfolio = self._account_metadata_pattern(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 231, in _account_metadata_pattern
portfolio_data = self._portfolio_data(selected_accounts, internal, mwr, twr, dividends)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 354, in _portfolio_data
row['mwr'], row['twr'] = self._calculate_irr_twr(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 383, in _calculate_irr_twr
mwr, twr = self.irr.calculate(
^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\irr.py", line 310, in calculate
converted = beancount.core.convert.convert_position(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\beancount\core\convert.py", line 177, in convert_position
return convert_amount(pos.units, target_currency, price_map,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\beancount\core\convert.py", line 202, in convert_amount
_, rate = prices.get_price(price_map, base_quote, date)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\beancount\core\prices.py", line 366, in get_price
price_list = _lookup_price_and_inverse(price_map, base_quote)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\beancount\core\prices.py", line 278, in _lookup_price_and_inverse
return price_map[base_quote]
~~~~~~~~~^^^^^^^^^^^^
TypeError: 'FavaPriceMap' object is not subscriptable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
te code
{% for title, data in extension.portfolio_accounts() %}
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 53, in portfolio_accounts
return portfolio_summary.run()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\drpal\Desktop\PyCharmProjects\work\venv\Lib\site-packages\fava_portfolio_summary\__init__.py", line 100, in run
raise Exception from _e
Exception
I was able to get this work by hacking the following:
__init__.py:
Change line to g.ledger.prices._map:
self.irr = IRR(self.ledger.all_entries, g.ledger.prices._map, self.operating_currency, errors=self.ledger.errors)
Change the query to follows. My naming conversion of Dividends is like Assets:Fidelity:401K:Dividends:VTI, etc so that I can group all the various tickers under dividends in the Balance sheets etc. So maybe you can relax the query condition a little?
query = (
f"SELECT SUM(CONVERT(COST(position),'{self.operating_currency}')) AS dividends "
#f"FROM HAS_ACCOUNT('{currency}') AND HAS_ACCOUNT('{parent_name}') WHERE LEAF(account) = 'Dividends'")
f"FROM HAS_ACCOUNT('{currency}') AND HAS_ACCOUNT('{parent_name}') WHERE account ~ 'Dividends'")
Change the line: need to add self.ledger.all_entries to the fava API
result = self.ledger.query_shell.execute_query(self.ledger.all_entries, query)
PortfolioSummary.html
Change line to: remove the last_segment argument
{{ account_macros.account_name(ledger, row.account ) }}
I have installed this plugin, but I'm running into an error when I launch the fava application. When I click the Portfolio Summary link, I get the following error in the backend:
Here are the list of dependencies I am using: