def create(cls, coverage: Union[CoverageType, str], id_: str, name: str, term: Union[Term, str], universe_identifier: Union[UniverseIdentifier, str], vendor: str, version: float, entitlements: Union[Entitlements, Dict] = None, description: str = None): """ Creates new factor risk model and uploads factor risk model object to Marquee :param coverage: coverage of risk model asset universe :param id_: risk model id (cannot be changed) :param name: risk model name :param term: horizon term :param universe_identifier: identifier used in asset universe upload (cannot be changed) :param vendor: risk model vendor :param version: version of model :param entitlements: entitlements associated with risk model :param description: risk model description :return: Factor Risk Model object """ new_model = RiskModelBuilder(coverage, id_, name, term, universe_identifier, vendor, version, entitlements=entitlements, description=description) GsRiskModelApi.create_risk_model(new_model) return FactorRiskModel(id_)
def update(self): """ Updates factor risk model object on Marquee """ updated_model = RiskModelBuilder(self.coverage, self.id, self.name, self.term, self.universe_identifier, self.vendor, self.version, description=self.description, entitlements=self.entitlements) GsRiskModelApi.update_risk_model(updated_model)
def upload(self): """ Upload current Factor Risk Model object to Marquee """ new_model = RiskModelBuilder(self.coverage, self.id, self.name, self.term, self.universe_identifier, self.vendor, self.version, entitlements=self.entitlements, description=self.description) GsRiskModelApi.create_risk_model(new_model)
def save(self): """ Upload current Risk Model object to Marquee """ model = RiskModelBuilder( self.coverage, self.id, self.name, self.term, self.universe_identifier, self.vendor, self.version, type_=self.type, description=self.description, entitlements=self.entitlements, expected_update_time=self.expected_update_time.strftime('%H:%M:%S') if self.expected_update_time else None) try: GsRiskModelApi.create_risk_model(model) except MqRequestError: GsRiskModelApi.update_risk_model(model)