@@ -62,30 +62,46 @@ def __init__(self, client, project, managed_folder, host=None):
6262 "DSS_MLFLOW_INTERNAL_TICKET" : self .client .internal_ticket
6363 })
6464
65- if not isinstance (managed_folder , DSSManagedFolder ):
66- raise TypeError ('managed_folder must a DSSManagedFolder.' )
67-
6865 if not client ._session .verify :
6966 self .mlflow_env .update ({"MLFLOW_TRACKING_INSECURE_TLS" : "true" })
7067 elif isinstance (client ._session .verify , str ):
7168 self .mlflow_env .update ({"MLFLOW_TRACKING_SERVER_CERT_PATH" : client ._session .verify })
7269
70+ mf_full_id = None
71+ if isinstance (managed_folder , DSSManagedFolder ):
72+ mf_full_id = managed_folder .project .project_key + "." + managed_folder .id
73+ elif isinstance (managed_folder , str ):
74+ mf_full_id = managed_folder
75+ else :
76+ try :
77+ from dataiku import Folder
78+ if isinstance (managed_folder , Folder ):
79+ mf_full_id = managed_folder .name
80+ except ImportError :
81+ pass
82+
83+ if not mf_full_id :
84+ raise TypeError ('Type of managed_folder must be "str", "DSSManagedFolder" or "dataiku.Folder".' )
85+
86+ if not "." in mf_full_id :
87+ mf_full_id = self .project_key + "." + mf_full_id
88+
89+ mf_project = mf_full_id .split ("." )[0 ]
90+ mf_id = mf_full_id .split ("." )[1 ]
7391
74- mf_project = managed_folder .project .project_key
75- mf_id = managed_folder .id
7692 try :
7793 client .get_project (mf_project ).get_managed_folder (mf_id ).get_definition ()
7894 except DataikuException as e :
7995 if "NotFoundException" in str (e ):
80- logging .error ('The managed folder "%s" does not exist, please create it in your project flow before running this command.' % (mf_id ))
96+ logging .error ('The managed folder "%s" does not exist, please create it in your project flow before running this command.' % (mf_full_id ))
8197 raise
8298
8399 # Set host, tracking URI, project key and managed_folder_id
84100 self .mlflow_env .update ({
85101 "DSS_MLFLOW_PROJECTKEY" : self .project_key ,
86102 "MLFLOW_TRACKING_URI" : self .client .host + "/dip/publicapi" if host is None else host ,
87103 "DSS_MLFLOW_HOST" : self .client .host ,
88- "DSS_MLFLOW_MANAGED_FOLDER_ID" : mf_project + "." + mf_id
104+ "DSS_MLFLOW_MANAGED_FOLDER_ID" : mf_full_id
89105 })
90106
91107 os .environ .update (self .mlflow_env )
0 commit comments