@@ -62,30 +62,39 @@ 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 = managed_folder
71+ if isinstance(managed_folder, DSSManagedFolder):
72+ mf_full_id = managed_folder.project.project_key + "." + managed_folder.id
73+ elif hasattr(managed_folder, 'name'): # True if dataiku.Folder
74+ mf_full_id = managed_folder.name
75+
76+ if not isinstance(mf_full_id, str):
77+ raise TypeError('Type of managed_folder must be "str", "DSSManagedFolder" or "dataiku.Folder".')
78+
79+ if not "." in mf_full_id:
80+ mf_full_id = self.project_key + "." + mf_full_id
81+
82+ mf_project = mf_full_id.split(".")[0]
83+ mf_id = mf_full_id.split(".")[1]
7384
74- mf_project = managed_folder.project.project_key
75- mf_id = managed_folder.id
7685 try:
7786 client.get_project(mf_project).get_managed_folder(mf_id).get_definition()
7887 except DataikuException as e:
7988 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 ))
89+ logging.error('The managed folder "%s" does not exist, please create it in your project flow before running this command.' % (mf_full_id ))
8190 raise
8291
8392 # Set host, tracking URI, project key and managed_folder_id
8493 self.mlflow_env.update({
8594 "DSS_MLFLOW_PROJECTKEY": self.project_key,
8695 "MLFLOW_TRACKING_URI": self.client.host + "/dip/publicapi" if host is None else host,
8796 "DSS_MLFLOW_HOST": self.client.host,
88- "DSS_MLFLOW_MANAGED_FOLDER_ID": mf_project + "." + mf_id
97+ "DSS_MLFLOW_MANAGED_FOLDER_ID": mf_full_id
8998 })
9099
91100 os.environ.update(self.mlflow_env)
0 commit comments