From 49d537676db5739ebe96ac4528c60dac225524f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9ouven=20Assouly?= Date: Fri, 20 Mar 2020 17:54:00 +0100 Subject: [PATCH] SaveFileTask: Support saving to different files Patch originally written by Jeremy Stevens --- .../tasks/tasks/util/save_tasks.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/exopy_hqc_legacy/tasks/tasks/util/save_tasks.py b/exopy_hqc_legacy/tasks/tasks/util/save_tasks.py index 67feee1..06d9fae 100644 --- a/exopy_hqc_legacy/tasks/tasks/util/save_tasks.py +++ b/exopy_hqc_legacy/tasks/tasks/util/save_tasks.py @@ -297,12 +297,24 @@ def perform(self): """ Collect all data and write them to file. """ + # Enable saving to different files + filename = self.format_string(self.filename) + full_folder_path = self.format_string(self.folder) + # Normalize the path to be able to perform comparisons + full_path = os.path.realpath(os.path.join(full_folder_path, filename)) + + if not self.file_object: + self.initialized = False + elif self.file_object.name == full_path: + self.initialized = True + else: + self.file_object.close() + self.initialized = False + + self.old_file = filename + # Initialisation. if not self.initialized: - - full_folder_path = self.format_string(self.folder) - filename = self.format_string(self.filename) - full_path = os.path.join(full_folder_path, filename) try: self.file_object = open(full_path, 'wb') except IOError: