from framework import component, autowired from api import PortfoliosHolder, PortfoliosRisk, RebalanceBuilder from portfolios.dao import robo_hold_portfolios as rhp import json @component(bean_name='next-re') class NextReblanceHolder(PortfoliosHolder): @autowired def __init__(self, rebalance: RebalanceBuilder): self._rebalance = rebalance def get_portfolios_weight(self, day, risk: PortfoliosRisk): hold = rhp.get_one(day, risk) if hold: result = json.loads(hold['portfolios']['weight']) return {int(x[0]): x[1] for x in result.items()} return None def has_hold(self, risk: PortfoliosRisk) -> bool: return rhp.get_count(risk=risk) > 0 def build_hold_portfolio(self, day, risk: PortfoliosRisk): pass