From c0a1abee23631c55dc39e16a5a4f6737988aebc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20LAURENT?= <francois.laurent@pasteur.fr>
Date: Tue, 29 Nov 2022 17:37:59 +0100
Subject: [PATCH] BackendExplorer.prepare_labels handles multiple directories
 (https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/issues/72)

---
 src/taggingbackends/explorer.py | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py
index 8f57e53..4680ab2 100644
--- a/src/taggingbackends/explorer.py
+++ b/src/taggingbackends/explorer.py
@@ -372,14 +372,14 @@ run `poetry add {pkg}` from directory: \n
                 source.unlink()
             check_permissions(destination)
 
-    def list_input_files(self, query=None):
-        return self.list_files(self.raw_data_dir(), query)
+    def list_input_files(self, **kwargs):
+        return self.list_files(self.raw_data_dir(), **kwargs)
 
-    def list_interim_files(self, query=None):
-        return self.list_files(self.interim_data_dir(), query)
+    def list_interim_files(self, **kwargs):
+        return self.list_files(self.interim_data_dir(), **kwargs)
 
-    def list_output_files(self, query=None):
-        return self.list_files(self.processed_data_dir(), query)
+    def list_output_files(self, **kwargs):
+        return self.list_files(self.processed_data_dir(), **kwargs)
 
     def list_model_files(self, query=None):
         return self.list_files(self.model_dir(), query)
@@ -399,11 +399,17 @@ run `poetry add {pkg}` from directory: \n
         if group_by_directories:
             files_ = defaultdict(list)
             for file in files:
-                files_[file.parent.name].append(file)
+                files_[str(file.parent)].append(file)
             files = dict(files_)
         return files
 
     def prepare_labels(self, input_files):
+        if isinstance(input_files, dict):
+            input_files_and_labels = dict()
+            for parent in input_files.keys():
+                input_files_and_labels[parent] = self.prepare_labels(input_files[parent])
+            return input_files_and_labels
+        #
         from .data.labels import Labels, labels_file_extension
         labels = Labels()
         # load and remove any *metadata* file.
-- 
GitLab