From cf3f968552e6dea555e843dbec84983793f4cfda Mon Sep 17 00:00:00 2001 From: William Moore Date: Wed, 27 Mar 2024 14:34:24 +0000 Subject: [PATCH 1/3] FilesetWrapper lazy loads Images and UsedFiles --- src/omero/gateway/__init__.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/omero/gateway/__init__.py b/src/omero/gateway/__init__.py index 2a4f1fdfb..f38d6415f 100644 --- a/src/omero/gateway/__init__.py +++ b/src/omero/gateway/__init__.py @@ -7552,15 +7552,41 @@ def _getQueryString(cls, opts=None): "join fetch usedFile.originalFile" return query, [], omero.sys.ParametersI() + def _loadImages(self): + """ Load the Images linked to this Fileset """ + params = omero.sys.ParametersI() + params.addId(self.getId()) + query_svc = self._conn.getQueryService() + query = "select image from Image as image where image.fileset.id=:id" + self._obj._imagesSeq = query_svc.findAllByQuery(query, params, + self._conn.SERVICE_OPTS) + self._obj._imagesLoaded = True + def copyImages(self): """ Returns a list of :class:`ImageWrapper` linked to this Fileset """ + if not self._obj._imagesLoaded: + self._loadImages() + return [ImageWrapper(self._conn, i) for i in self._obj.copyImages()] + def _loadUsedFiles(self): + """ Load the UsedFiles linked to this Fileset """ + params = omero.sys.ParametersI() + params.addId(self.getId()) + query_svc = self._conn.getQueryService() + query = "select fse from FilesetEntry as fse join fetch fse.originalFile where fse.fileset.id=:id" + self._obj._usedFilesSeq = query_svc.findAllByQuery(query, params, + self._conn.SERVICE_OPTS) + self._obj._usedFilesLoaded = True + def listFiles(self): """ Returns a list of :class:`OriginalFileWrapper` linked to this Fileset via Fileset Entries """ + if not self._obj._usedFilesLoaded: + self._loadUsedFiles() + return [OriginalFileWrapper(self._conn, f.originalFile) for f in self._obj.copyUsedFiles()] From b86cd89d59c9afd97d9db0385663efe02c388e44 Mon Sep 17 00:00:00 2001 From: William Moore Date: Thu, 28 Mar 2024 08:43:02 +0000 Subject: [PATCH 2/3] Remove Images and Files from FilesetWrapper._getQueryString() --- src/omero/gateway/__init__.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/omero/gateway/__init__.py b/src/omero/gateway/__init__.py index f38d6415f..2e45ae141 100644 --- a/src/omero/gateway/__init__.py +++ b/src/omero/gateway/__init__.py @@ -7546,10 +7546,7 @@ def _getQueryString(cls, opts=None): NB: No options supported for this class. :return: Tuple of string, list, ParametersI """ - query = "select obj from Fileset obj "\ - "left outer join fetch obj.images as image "\ - "left outer join fetch obj.usedFiles as usedFile " \ - "join fetch usedFile.originalFile" + query = "select obj from Fileset obj" return query, [], omero.sys.ParametersI() def _loadImages(self): From 5ad53ebee1b529384752bd13b853b45d14484e4c Mon Sep 17 00:00:00 2001 From: William Moore Date: Thu, 28 Mar 2024 10:23:37 +0000 Subject: [PATCH 3/3] remove _FilesetWrapper._getQueryString() --- src/omero/gateway/__init__.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/omero/gateway/__init__.py b/src/omero/gateway/__init__.py index 2e45ae141..921391743 100644 --- a/src/omero/gateway/__init__.py +++ b/src/omero/gateway/__init__.py @@ -7535,20 +7535,6 @@ class _FilesetWrapper (BlitzObjectWrapper): OMERO_CLASS = 'Fileset' - @classmethod - def _getQueryString(cls, opts=None): - """ - Used for building queries in generic methods such as - getObjects("Fileset"). - Returns a tuple of (query, clauses, params). - - :param opts: Dictionary of optional parameters. - NB: No options supported for this class. - :return: Tuple of string, list, ParametersI - """ - query = "select obj from Fileset obj" - return query, [], omero.sys.ParametersI() - def _loadImages(self): """ Load the Images linked to this Fileset """ params = omero.sys.ParametersI()