Skip to content

Commit a6ed8f8

Browse files
committed
fixes for python project folder api
1 parent f1042d8 commit a6ed8f8

2 files changed

Lines changed: 57 additions & 5 deletions

File tree

dataikuapi/dss/projectfolder.py

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def get_parent(self):
3131
if parent is None:
3232
return None
3333
else:
34-
return DSSProjectFolderSettings(self.client, parent)
34+
return DSSProjectFolder(self.client, parent)
3535

3636
def get_children(self):
3737
"""
@@ -45,9 +45,17 @@ def get_children(self):
4545
ret.append(DSSProjectFolder(self.client, child))
4646
return ret
4747

48-
def get_projects(self):
48+
def list_project_keys(self):
4949
"""
50-
Get this project folder's projects
50+
List the project keys of the projects that are stored in this project folder
51+
52+
:returns list: A list of project keys
53+
"""
54+
return self.client._perform_json("GET", "/project-folders/%s" % self.project_folder_id).get("projectKeys", [])
55+
56+
def list_projects(self):
57+
"""
58+
List the projects that are stored in this project folder
5159
5260
:returns list: A list of :class:`dataikuapi.dss.project.DSSProject` to interact with its projects
5361
"""
@@ -148,7 +156,7 @@ def project_move(self, project_key, destination):
148156
:param destination: the project folder to put this project into
149157
:type destination: A :class:`dataikuapi.dss.projectfolders.DSSProjectFolder`
150158
"""
151-
body = {
159+
body = {
152160
"destination": destination.project_folder_id
153161
}
154162
self.client._perform_json("POST", "/project-folders/%s/children/%s/move" % (self.project_folder_id, project_key), body = body)
@@ -172,6 +180,50 @@ def get_raw(self):
172180
"""
173181
return self.settings
174182

183+
def get_name(self):
184+
"""Get the name of the project folder
185+
186+
:returns str: the current name of the project folder
187+
"""
188+
return self.settings.get("name", None)
189+
190+
def set_name(self, name):
191+
"""Set the name of the project folder
192+
193+
:param str name: the new name of the project folder
194+
"""
195+
self.settings["name"] = name
196+
197+
def get_owner(self):
198+
"""Get the login of the owner of the project folder
199+
200+
:returns str: the current login owner of the project folder
201+
"""
202+
return self.settings.get("owner", None)
203+
204+
def set_owner(self, owner):
205+
"""Set the owner of the project folder
206+
207+
:param str owner: the new owner login of the project folder
208+
"""
209+
self.settings["owner"] = owner
210+
211+
def get_permissions(self):
212+
"""Get the permissions of the project folder
213+
Warning: the returned list is the direct object of the settings, modifying it will modify the current settings
214+
215+
:return list: the current permissions of the project folder
216+
"""
217+
return self.settings["permissions"]
218+
219+
def set_permissions(self, permissions):
220+
"""Set the permissions of the project folder
221+
222+
:param list permissions: the new permissions of the project folder
223+
"""
224+
self.settings["permissions"] = permissions
225+
175226
def save(self):
176227
"""Saves back the settings to the project folder"""
177228
self.client._perform_empty("PUT", "/project-folders/%s/settings" % (self.project_folder_id), body = self.settings)
229+

dataikuapi/dssclient.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def get_root_project_folder(self):
111111
112112
:returns: A :class:`dataikuapi.dss.projectfolder.DSSProjectFolder`to interact with this project folder
113113
"""
114-
project_folder_id = self.client._perform_json("GET", "/project-folders/")["id"]
114+
project_folder_id = self._perform_json("GET", "/project-folders/")["id"]
115115
return DSSProjectFolder(self, project_folder_id)
116116

117117
def get_project_folder(sefl, project_folder_id):

0 commit comments

Comments
 (0)