@@ -528,19 +528,19 @@ def save_user_meta(self):
528528
529529 def get_origin_analysis_trained_model (self ):
530530 """
531- Fetch details about the model in an analysis, this model has been exported from
531+ Fetch details about the model in an analysis, this model has been exported from. Returns None if the
532+ deployed trained model does not have a origin analysis trained model.
532533
533- :rtype: DSSTrainedModelDetails
534+ :rtype: DSSTrainedModelDetails | None
534535 """
535536 if self .saved_model is None :
536537 return self
537538 else :
538- if "smOrigin" not in self .get_raw ():
539- raise DataikuException ("Unknow " )
540- fmi = self .get_raw ()["smOrigin" ]["fullModelId" ]
541- origin_ml_task = DSSMLTask .from_full_model_id (self .saved_model .client , fmi ,
542- project_key = self .saved_model .project_key )
543- return origin_ml_task .get_trained_model_details (fmi )
539+ fmi = self .get_raw ().get ("smOrigin" , {}).get ("fullModelId" )
540+ if fmi is not None :
541+ origin_ml_task = DSSMLTask .from_full_model_id (self .saved_model .client , fmi ,
542+ project_key = self .saved_model .project_key )
543+ return origin_ml_task .get_trained_model_details (fmi )
544544
545545class DSSTreeNode (object ):
546546 def __init__ (self , tree , i ):
@@ -1446,10 +1446,13 @@ class DSSMLTask(object):
14461446
14471447 @staticmethod
14481448 def from_full_model_id (client , fmi , project_key = None ):
1449- match = re .match (u'A-([\w]+)-([\w]+)-([\w]+)-s\w+-pp\w+-m\w+' , fmi )
1450- if project_key is None :
1451- project_key = match .group (1 )
1452- return DSSMLTask (client , project_key , match .group (2 ), match .group (3 ))
1449+ match = re .match ("^A-(\w+)-(\w+)-(\w+)-(s[0-9]+)-(pp[0-9]+(-part-(\w+)|-base)?)-(m[0-9]+)$" , fmi )
1450+ if match is None :
1451+ return DataikuException ("Invalid model id: {}" .format (fmi ))
1452+ else :
1453+ if project_key is None :
1454+ project_key = match .group (1 )
1455+ return DSSMLTask (client , project_key , match .group (2 ), match .group (3 ))
14531456
14541457 """A handle to interact with a MLTask for prediction or clustering in a DSS visual analysis"""
14551458 def __init__ (self , client , project_key , analysis_id , mltask_id ):
0 commit comments