From 75eac78321df1247f549ca51410cddd447a49440 Mon Sep 17 00:00:00 2001 From: Jeff Hull Date: Tue, 20 Oct 2020 12:15:34 -0400 Subject: [PATCH 1/3] wip - scope the object search --- solvebio/resource/object.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/solvebio/resource/object.py b/solvebio/resource/object.py index 1aad7936..b9e44089 100644 --- a/solvebio/resource/object.py +++ b/solvebio/resource/object.py @@ -421,6 +421,11 @@ def objects(self, **params): def ls(self, **params): return self.objects(**params) + def search(self, query='', **params): + params['parent_object_id'] = self.parent_object_id + params['object_type'] = self.object_type + return super(Object, self).search(query, **params) + def __getattr__(self, name): """Shortcut to access attributes of the underlying Dataset resource""" from solvebio.resource import Dataset From dbf1283035634061762b858e89ef8dd071a4e7ee Mon Sep 17 00:00:00 2001 From: Jeff Hull Date: Tue, 20 Oct 2020 12:35:31 -0400 Subject: [PATCH 2/3] fix --- solvebio/resource/object.py | 38 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/solvebio/resource/object.py b/solvebio/resource/object.py index b9e44089..31cbe51e 100644 --- a/solvebio/resource/object.py +++ b/solvebio/resource/object.py @@ -388,7 +388,7 @@ def upload_file(cls, local_path, remote_path, vault_full_path, **kwargs): return obj - def _object_list_helper(self, **params): + def _object_list_helper(self, query='', **params): """Helper method to get objects within""" if not self.is_folder: @@ -403,28 +403,34 @@ def _object_list_helper(self, **params): else: params['parent_object_id'] = self.id + if query: + params['q'] = query + items = self.all(client=self._client, **params) return items - def files(self, **params): - return self._object_list_helper(object_type='file', **params) - - def folders(self, **params): - return self._object_list_helper(object_type='folder', **params) + def files(self, query='', **params): + query = query or params.pop('query', '') + params.pop('object_type', None) + return self._object_list_helper(object_type='file', query=query, **params) - def datasets(self, **params): - return self._object_list_helper(object_type='dataset', **params) + def folders(self, query='', **params): + query = query or params.pop('query', '') + params.pop('object_type', None) + return self._object_list_helper(object_type='folder', query=query, **params) - def objects(self, **params): - return self._object_list_helper(**params) + def datasets(self, query='', **params): + query = query or params.pop('query', '') + params.pop('object_type', None) + return self._object_list_helper(object_type='dataset', query=query, **params) - def ls(self, **params): - return self.objects(**params) + def objects(self, query='', **params): + query = query or params.pop('query', '') + return self._object_list_helper(query=query, **params) - def search(self, query='', **params): - params['parent_object_id'] = self.parent_object_id - params['object_type'] = self.object_type - return super(Object, self).search(query, **params) + def ls(self, query='', **params): + query = query or params.pop('query', '') + return self.objects(query=query, **params) def __getattr__(self, name): """Shortcut to access attributes of the underlying Dataset resource""" From d988ebcf0984e7569696c6ab7abf91aaa5293ca0 Mon Sep 17 00:00:00 2001 From: Jeff Hull Date: Tue, 20 Oct 2020 13:01:10 -0400 Subject: [PATCH 3/3] simpler query override, add search --- solvebio/resource/object.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/solvebio/resource/object.py b/solvebio/resource/object.py index 31cbe51e..6244ea1d 100644 --- a/solvebio/resource/object.py +++ b/solvebio/resource/object.py @@ -388,7 +388,7 @@ def upload_file(cls, local_path, remote_path, vault_full_path, **kwargs): return obj - def _object_list_helper(self, query='', **params): + def _object_list_helper(self, **params): """Helper method to get objects within""" if not self.is_folder: @@ -403,35 +403,43 @@ def _object_list_helper(self, query='', **params): else: params['parent_object_id'] = self.id - if query: - params['q'] = query - items = self.all(client=self._client, **params) return items def files(self, query='', **params): - query = query or params.pop('query', '') + if query: + params['query'] = query params.pop('object_type', None) - return self._object_list_helper(object_type='file', query=query, **params) + return self._object_list_helper(object_type='file', **params) def folders(self, query='', **params): - query = query or params.pop('query', '') + if query: + params['query'] = query params.pop('object_type', None) - return self._object_list_helper(object_type='folder', query=query, **params) + return self._object_list_helper(object_type='folder', **params) def datasets(self, query='', **params): - query = query or params.pop('query', '') + if query: + params['query'] = query params.pop('object_type', None) - return self._object_list_helper(object_type='dataset', query=query, **params) + return self._object_list_helper(object_type='dataset', **params) def objects(self, query='', **params): - query = query or params.pop('query', '') - return self._object_list_helper(query=query, **params) + if query: + params['query'] = query + return self._object_list_helper(**params) def ls(self, query='', **params): query = query or params.pop('query', '') return self.objects(query=query, **params) + def search(self, query='', **params): + query = query or params.pop('query', '') + # TODO + params['ancestor_id'] = self.id + params['limit'] = 1000 + return super(Object, self).search(query, **params) + def __getattr__(self, name): """Shortcut to access attributes of the underlying Dataset resource""" from solvebio.resource import Dataset