From 11a7e2292f46229d39da2dd0161eb7073788f4a4 Mon Sep 17 00:00:00 2001 From: Amir Mohammadi <amir.mohammadi@idiap.ch> Date: Tue, 2 Aug 2016 18:33:35 +0200 Subject: [PATCH] use the File.load method if possible. --- bob/bio/base/tools/FileSelector.py | 4 ++++ bob/bio/base/tools/preprocessor.py | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/bob/bio/base/tools/FileSelector.py b/bob/bio/base/tools/FileSelector.py index 2a3e56df..63313a7d 100644 --- a/bob/bio/base/tools/FileSelector.py +++ b/bob/bio/base/tools/FileSelector.py @@ -110,6 +110,10 @@ class FileSelector: """Returns the list of original data that can be used for preprocessing.""" return self.database.original_file_names(self.database.all_files(groups=groups)) + def original_data_list_files(self, groups = None): + """Returns the list of original data that can be used for preprocessing.""" + return (self.database.all_files(groups=groups), self.database.database.original_directory, self.database.database.original_extension) + def annotation_list(self, groups = None): """Returns the list of annotations objects.""" return self.database.all_files(groups=groups) diff --git a/bob/bio/base/tools/preprocessor.py b/bob/bio/base/tools/preprocessor.py index 01dea478..86ec390c 100644 --- a/bob/bio/base/tools/preprocessor.py +++ b/bob/bio/base/tools/preprocessor.py @@ -42,7 +42,7 @@ def preprocess(preprocessor, groups = None, indices = None, allow_missing_files fs = FileSelector.instance() # get the file lists - data_files = fs.original_data_list(groups=groups) + data_files, original_directory, original_extension = fs.original_data_list_files(groups=groups) preprocessed_data_files = fs.preprocessed_data_list(groups=groups) # select a subset of keys to iterate @@ -60,12 +60,16 @@ def preprocess(preprocessor, groups = None, indices = None, allow_missing_files # iterate over the selected files for i in index_range: preprocessed_data_file = preprocessed_data_files[i] - file_name = data_files[i] + file_object = data_files[i] + file_name = file_object.make_path(original_directory, original_extension) # check for existence if not utils.check_file(preprocessed_data_file, force, 1000): logger.debug("... Processing original data file '%s'", file_name) - data = preprocessor.read_original_data(file_name) + if hasattr(file_object, 'load'): + data = file_object.load(original_directory, original_extension) + else: + data = preprocessor.read_original_data(file_name) # create output directory before reading the data file (is sometimes required, when relative directories are specified, especially, including a .. somewhere) bob.io.base.create_directories_safe(os.path.dirname(preprocessed_data_file)) -- GitLab