diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py index e0d1ba5c80421fe6b4347aafc0cd3f9a4b89fb61..3c67115f5fa3e99a60b0cf9c6f07a5dbb7ef6715 100644 --- a/src/taggingbackends/explorer.py +++ b/src/taggingbackends/explorer.py @@ -4,6 +4,7 @@ import pathlib import importlib import logging import subprocess +from collections import defaultdict class BackendExplorer: @@ -293,7 +294,7 @@ run `poetry add {pkg}` from directory: \n def list_model_files(self): return self.list_files(self.model_dir()) - def list_files(self, data_dir, relative=False): + def list_files(self, data_dir, relative=False, group_by_directories=False): files = [] dirs = [data_dir] while dirs: @@ -305,6 +306,11 @@ run `poetry add {pkg}` from directory: \n if relative: child = child.relative_to(data_dir) files.append(child) + if group_by_directories: + files_ = defaultdict(list) + for file in files: + files_[file.parent.name].append(file) + files = dict(files_) return files