Source code for tariochbctools.importers.general.priceLookup

from datetime import date

from beancount.core import amount, data, prices
from beancount.core.number import D


[docs] class PriceLookup: def __init__(self, existing: data.Entries, baseCcy: str): if existing: self.priceMap = prices.build_price_map(existing) else: self.priceMap = None self.baseCcy = baseCcy
[docs] def fetchPriceAmount(self, instrument: str, date: date) -> data.Amount: if self.priceMap: price = prices.get_price( self.priceMap, tuple([instrument, self.baseCcy]), date ) return price[1] else: return D(1)
[docs] def fetchPrice(self, instrument: str, date: date) -> data.Amount: if instrument == self.baseCcy: return None return amount.Amount(self.fetchPriceAmount(instrument, date), self.baseCcy)