@@ -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+
0 commit comments