From 522d7aa597130a82d957db7ac4dd60f399b3aaf7 Mon Sep 17 00:00:00 2001
From: ptresson <paul.tresson@ird.fr>
Date: Fri, 7 Mar 2025 11:22:27 +0100
Subject: [PATCH] add exception handling during merging of temp files. Should
 be a temporary fix to #45

---
 encoder.py | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/encoder.py b/encoder.py
index af77533..6980bbf 100644
--- a/encoder.py
+++ b/encoder.py
@@ -617,12 +617,19 @@ class EncoderAlgorithm(IAMAPAlgorithm):
 
                 dst_path = Path(os.path.join(self.output_subdir, "merged_tmp.tif"))
 
-                merge_tiles(
-                    tiles=all_tiles,
-                    dst_path=dst_path,
-                    method=self.merge_method,
-                )
-                self.remove_temp_files()
+                try:
+                    merge_tiles(
+                        tiles=all_tiles,
+                        dst_path=dst_path,
+                        method=self.merge_method,
+                    )
+                    self.remove_temp_files()
+                    
+                # overwritting merged_tmp.tif may be impossible in windows (e.g. if an antivirus is analysing the newly created data)
+                # then, merging and cleaning is impossible
+                except rasterio._err.CPLE_AppDefinedError as e :
+                    feedback.pushWarning(f"Unable to cleaning temporary files ! Try to delete them latter at {self.output_subdir}")
+
                 self.all_encoding_done = True
 
             # Update the progress bar
-- 
GitLab