def _handle_results(cls, request: RiskRequest, results: Iterable) -> dict: formatted_results = {} for risk_measure, position_results in zip(request.measures, results): for position, date_results in zip(request.positions, position_results): for as_of, date_result in zip( request.pricing_and_market_data_as_of, date_results): handler = result_handlers.get(date_result.get('$type')) # TODO Handle this better market = LiveMarket(request.pricing_location) if isinstance(as_of.market_data_as_of, dt.datetime)\ else ClosingMarket(request.pricing_location, as_of.market_data_as_of) risk_key = RiskKey(cls, as_of.pricing_date, market, request.parameters, request.scenario, risk_measure) try: result = handler( date_result, risk_key, position.instrument) if handler else date_result except Exception as e: result = ErrorValue(risk_key, str(e)) _logger.error(result) formatted_results[(risk_key, position.instrument)] = result return formatted_results
def __init__(self): from gs_quant.markets import LiveMarket super().__init__(LiveMarket(), measure_type=RiskMeasureType.PnlPredict, name=RiskMeasureType.PnlPredict.value)
def __init__(self): from gs_quant.markets import LiveMarket super().__init__(LiveMarket())