From e1a203125833d96844be994ee993724e8b532c50 Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Mon, 24 Aug 2020 20:27:03 +0100 Subject: [PATCH 1/2] Handle original file missing and destination file existing. --- pype/plugins/global/publish/integrate_new.py | 38 ++++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/pype/plugins/global/publish/integrate_new.py b/pype/plugins/global/publish/integrate_new.py index a3c2ffe52bb..24f5b7bddc9 100644 --- a/pype/plugins/global/publish/integrate_new.py +++ b/pype/plugins/global/publish/integrate_new.py @@ -6,6 +6,8 @@ import clique import errno import six +import re +import shutil from pymongo import DeleteOne, InsertOne import pyblish.api @@ -952,21 +954,35 @@ def handle_destination_files(self, integrated_file_sizes, mode): """ if integrated_file_sizes: for file_url, _file_size in integrated_file_sizes.items(): + if not os.path.exists(file_url): + self.log.debug( + "File {} was not found.".format(file_url) + ) + continue + try: if mode == 'remove': - self.log.debug("Removing file ...{}".format(file_url)) + self.log.debug("Removing file {}".format(file_url)) os.remove(file_url) if mode == 'finalize': - self.log.debug("Renaming file ...{}".format(file_url)) - import re - os.rename(file_url, - re.sub('\.{}$'.format(self.TMP_FILE_EXT), - '', - file_url) - ) - - except FileNotFoundError: - pass # file not there, nothing to delete + new_name = re.sub( + r'\.{}$'.format(self.TMP_FILE_EXT), + '', + file_url + ) + + if os.path.exists(new_name): + self.log.debug( + "Overwriting file {} to {}".format( + file_url, new_name + ) + ) + shutil.copy(file_url, new_name) + else: + self.log.debug( + "Renaming file {} to {}".format(file_url, new_name) + ) + os.rename(file_url, new_name) except OSError: self.log.error("Cannot {} file {}".format(mode, file_url), exc_info=True) From 432d715d2fe3fd8254d0e02bb5d3f910c4a7ecfb Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Mon, 24 Aug 2020 20:28:58 +0100 Subject: [PATCH 2/2] Houd --- pype/plugins/global/publish/integrate_new.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pype/plugins/global/publish/integrate_new.py b/pype/plugins/global/publish/integrate_new.py index 24f5b7bddc9..f92968e5546 100644 --- a/pype/plugins/global/publish/integrate_new.py +++ b/pype/plugins/global/publish/integrate_new.py @@ -980,7 +980,9 @@ def handle_destination_files(self, integrated_file_sizes, mode): shutil.copy(file_url, new_name) else: self.log.debug( - "Renaming file {} to {}".format(file_url, new_name) + "Renaming file {} to {}".format( + file_url, new_name + ) ) os.rename(file_url, new_name) except OSError: