Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge pull request #1484 from tokejepsen/2.x/feature/delete_old_versions
Browse files Browse the repository at this point in the history
  • Loading branch information
mkolar authored May 10, 2021
2 parents 5e7564f + d20722a commit 3b22cf1
Showing 1 changed file with 32 additions and 21 deletions.
53 changes: 32 additions & 21 deletions pype/plugins/global/load/delete_old_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
from pype.api import Anatomy


class DeleteOldVersions(api.Loader):
class DeleteOldVersions(api.SubsetLoader):

is_multiple_contexts_compatible = True
sequence_splitter = "__sequence_splitter__"

representations = ["*"]
families = ["*"]
Expand Down Expand Up @@ -258,9 +261,11 @@ def sort_func(ent):
)

if not version_ids:
msg = "Skipping processing. Nothing to delete."
msg = "Skipping processing. Nothing to delete on {}/{}".format(
asset["name"], subset["name"]
)
self.log.info(msg)
self.message(msg)
print(msg)
return

repres = list(self.dbcon.find({
Expand Down Expand Up @@ -396,25 +401,30 @@ def main(self, data, remove_publish_folder):
self.log.error(msg)
self.message(msg)

msg = "Total size of files: " + self.sizeof_fmt(size)
self.log.info(msg)
self.message(msg)
return size

def load(self, context, name=None, namespace=None, options=None):
def load(self, contexts, name=None, namespace=None, options=None):
try:
versions_to_keep = 2
remove_publish_folder = False
if options:
versions_to_keep = options.get(
"versions_to_keep", versions_to_keep
)
remove_publish_folder = options.get(
"remove_publish_folder", remove_publish_folder
)
size = 0
for count, context in enumerate(contexts):
versions_to_keep = 2
remove_publish_folder = False
if options:
versions_to_keep = options.get(
"versions_to_keep", versions_to_keep
)
remove_publish_folder = options.get(
"remove_publish_folder", remove_publish_folder
)

data = self.get_data(context, versions_to_keep)

data = self.get_data(context, versions_to_keep)
size += self.main(data, remove_publish_folder)
print("Progressing {}/{}".format(count + 1, len(contexts)))

self.main(data, remove_publish_folder)
msg = "Total size of files: " + self.sizeof_fmt(size)
self.log.info(msg)
self.message(msg)

except Exception:
self.log.error("Failed to delete versions.", exc_info=True)
Expand All @@ -436,6 +446,9 @@ class CalculateOldVersions(DeleteOldVersions):
def main(self, data, remove_publish_folder):
size = 0

if not data:
return size

if remove_publish_folder:
size = self.delete_whole_dir_paths(
data["dir_paths"].values(), delete=False
Expand All @@ -445,6 +458,4 @@ def main(self, data, remove_publish_folder):
data["dir_paths"], data["file_paths_by_dir"], delete=False
)

msg = "Total size of files: " + self.sizeof_fmt(size)
self.log.info(msg)
self.message(msg)
return size

0 comments on commit 3b22cf1

Please sign in to comment.