From 0a0256e346abcd59a65569ef7160382e0a7fba07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Dornier?= Date: Fri, 30 Aug 2024 14:43:24 +0200 Subject: [PATCH 1/5] Add fileset folder creation --- .gitignore | 1 + src/omero/plugins/download.py | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 538840304..20edd9379 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ build dist/ target/ .DS_Store +.idea _build diff --git a/src/omero/plugins/download.py b/src/omero/plugins/download.py index d92af120a..9e4df1e71 100755 --- a/src/omero/plugins/download.py +++ b/src/omero/plugins/download.py @@ -90,6 +90,7 @@ def __call__(self, args): def download_fileset(self, conn, fileset, dir_path): self.ctx.out(f"Fileset: {fileset.id}") template_prefix = fileset.getTemplatePrefix() + dir_path = os.path.join(dir_path, f"Fileset_{fileset.id}") for orig_file in fileset.listFiles(): file_path = orig_file.path.replace(template_prefix, "") target_dir = os.path.join(dir_path, file_path) From fb11dc0ca13c6ba885e09d623e2ccc05f5fa9b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Dornier?= Date: Thu, 26 Sep 2024 10:22:18 +0200 Subject: [PATCH 2/5] fix backward compatibility issue raised by sbesson --- src/omero/plugins/download.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/omero/plugins/download.py b/src/omero/plugins/download.py index 9e4df1e71..7d5028592 100755 --- a/src/omero/plugins/download.py +++ b/src/omero/plugins/download.py @@ -87,10 +87,11 @@ def __call__(self, args): # only expect single file self.download_file(client, orig_file, target_file) - def download_fileset(self, conn, fileset, dir_path): + def download_fileset(self, conn, fileset, dir_path, insert_fileset_folder=False): self.ctx.out(f"Fileset: {fileset.id}") template_prefix = fileset.getTemplatePrefix() - dir_path = os.path.join(dir_path, f"Fileset_{fileset.id}") + if insert_fileset_folder: + dir_path = os.path.join(dir_path, f"Fileset_{fileset.id}") for orig_file in fileset.listFiles(): file_path = orig_file.path.replace(template_prefix, "") target_dir = os.path.join(dir_path, file_path) From ba7d9cce9a2a2eb8912164ed37eec89a098c36ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Dornier?= Date: Tue, 1 Oct 2024 09:15:07 +0200 Subject: [PATCH 3/5] Adding insert_fileset_param to the calling method --- src/omero/plugins/download.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/omero/plugins/download.py b/src/omero/plugins/download.py index 7d5028592..af5f8723a 100755 --- a/src/omero/plugins/download.py +++ b/src/omero/plugins/download.py @@ -61,6 +61,8 @@ def _configure(self, parser): "OriginalFile is assumed if : is omitted.") parser.add_argument( "filename", help="Local filename (or path for Fileset) to be saved to. '-' for stdout") + parser.add_argument( + "insert_fileset_folder", help="Adding 'Fileset_xxxx' folder in the download path", default="False") parser.set_defaults(func=self.__call__) parser.add_login_arguments() @@ -72,15 +74,20 @@ def __call__(self, args): conn = BlitzGateway(client_obj=client) conn.SERVICE_OPTS.setOmeroGroup(-1) + if args.insert_fileset_folder.lower() == "true": + insert_fileset_folder = True + else: + insert_fileset_folder = False + if dtype == "Fileset": fileset = self.get_object(conn, dtype, obj.id.val) - self.download_fileset(conn, fileset, args.filename) + self.download_fileset(conn, fileset, args.filename, insert_fileset_folder) elif dtype == "Image": image = self.get_object(conn, dtype, obj.id.val) fileset = image.getFileset() if fileset is None: self.ctx.die(602, 'Input image has no associated Fileset') - self.download_fileset(conn, fileset, args.filename) + self.download_fileset(conn, fileset, args.filename, insert_fileset_folder) else: orig_file = self.get_file(client.sf, dtype, obj.id.val) target_file = str(args.filename) From dd7654c540d523ece50f8b63c62503cd941861b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Dornier?= Date: Tue, 1 Oct 2024 09:15:40 +0200 Subject: [PATCH 4/5] remove unused imports --- src/omero/plugins/download.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/omero/plugins/download.py b/src/omero/plugins/download.py index af5f8723a..501928b3a 100755 --- a/src/omero/plugins/download.py +++ b/src/omero/plugins/download.py @@ -15,9 +15,7 @@ import sys import omero import os -import re from omero.cli import BaseControl, CLI, ProxyStringType -from omero.rtypes import unwrap from omero.gateway import BlitzGateway HELP = """Download a File, Image or Fileset with a specified ID to a target file From ed3c6840a5a48ed1a8fa7cd2fd286a185f6017c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Dornier?= Date: Thu, 3 Oct 2024 08:39:23 +0200 Subject: [PATCH 5/5] Use action store_true instead of default arg --- src/omero/plugins/download.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/omero/plugins/download.py b/src/omero/plugins/download.py index 501928b3a..c6e60cd45 100755 --- a/src/omero/plugins/download.py +++ b/src/omero/plugins/download.py @@ -60,7 +60,7 @@ def _configure(self, parser): parser.add_argument( "filename", help="Local filename (or path for Fileset) to be saved to. '-' for stdout") parser.add_argument( - "insert_fileset_folder", help="Adding 'Fileset_xxxx' folder in the download path", default="False") + "--insert_fileset_folder", action="store_true", help="Adding 'Fileset_xxxx' folder in the download path") parser.set_defaults(func=self.__call__) parser.add_login_arguments() @@ -72,7 +72,7 @@ def __call__(self, args): conn = BlitzGateway(client_obj=client) conn.SERVICE_OPTS.setOmeroGroup(-1) - if args.insert_fileset_folder.lower() == "true": + if args.insert_fileset_folder: insert_fileset_folder = True else: insert_fileset_folder = False