|
1 | 1 | import time, warnings, sys, os.path as osp |
2 | | -from .dataset import DSSDataset, DSSManagedDatasetCreationHelper |
| 2 | +from .dataset import DSSDataset, DSSDatasetListItem, DSSManagedDatasetCreationHelper |
3 | 3 | from .recipe import DSSRecipe |
4 | 4 | from . import recipe |
5 | 5 | from .managedfolder import DSSManagedFolder |
@@ -208,15 +208,22 @@ def set_permissions(self, permissions): |
208 | 208 | # Datasets |
209 | 209 | ######################################################## |
210 | 210 |
|
211 | | - def list_datasets(self): |
| 211 | + def list_datasets(self, rtype="listitems"): |
212 | 212 | """ |
213 | | - List the datasets in this project |
214 | | - |
215 | | - :returns: The list of the datasets, each one as a dictionary. Each dataset dict contains at least a `name` field which is the name of the dataset |
216 | | - :rtype: list of dicts |
| 213 | + List the datasets in this project. |
| 214 | +
|
| 215 | + :param str rtype: How to return the list. Supported values are "listitems" and "objects". |
| 216 | + :returns: The list of the datasets. If "rtype" is "listitems", each one as a :class:`dataset.DSSDatasetListItem`. |
| 217 | + If "rtype" is "objects", each one as a :class:`dataset.DSSDataset` |
| 218 | + :rtype: list |
217 | 219 | """ |
218 | | - return self.client._perform_json( |
219 | | - "GET", "/projects/%s/datasets/" % self.project_key) |
| 220 | + items = self.client._perform_json("GET", "/projects/%s/datasets/" % self.project_key) |
| 221 | + if rtype == "listitems": |
| 222 | + return [DSSDatasetListItem(self.client, item) for item in items] |
| 223 | + elif rtype == "objects": |
| 224 | + return [DSSDataset(self.client, self.project_key, item["name"]) for item in items] |
| 225 | + else: |
| 226 | + raise ValueError("Unknown rtype") |
220 | 227 |
|
221 | 228 | def get_dataset(self, dataset_name): |
222 | 229 | """ |
|
0 commit comments