This commit is contained in:
Jakub Ježek 2025-12-19 11:17:42 +01:00 committed by GitHub
commit 9d4b14df48
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 3 deletions

View file

@ -1,4 +1,5 @@
import os
import re
import copy
import clique
import pyblish.api
@ -101,7 +102,7 @@ class ExtractOIIOTranscode(publish.Extractor):
for idx, repre in enumerate(list(repres)):
self.log.debug("repre ({}): `{}`".format(idx + 1, repre["name"]))
if not self._repre_is_valid(repre):
if not self._repre_is_valid(repre, profile):
continue
added_representations = False
@ -279,6 +280,12 @@ class ExtractOIIOTranscode(publish.Extractor):
if "delete" in tags and "thumbnail" not in tags:
instance.data["representations"].remove(repre)
if (
added_review
and "review" not in instance.data["families"]
):
instance.data["families"].append("review")
instance.data["representations"].extend(new_representations)
def _rename_in_representation(self, new_repre, files_to_convert,
@ -376,7 +383,7 @@ class ExtractOIIOTranscode(publish.Extractor):
return profile
def _repre_is_valid(self, repre):
def _repre_is_valid(self, repre, profile):
"""Validation if representation should be processed.
Args:
@ -403,7 +410,23 @@ class ExtractOIIOTranscode(publish.Extractor):
"Skipped.".format(repre["name"]))
return False
return True
representations = profile["representations"]
repre_name = repre["name"]
# make sure if not representations than it will return True
result = [True]
# check if any of representation patterns match in repre_name
if representations:
result = []
for r_pattern in representations:
if re.match(r_pattern, repre_name):
result.append(True)
break
else:
result.append(False)
return any(result)
def _mark_original_repre_for_deletion(self, repre, profile, added_review):
"""If new transcoded representation created, delete old."""

View file

@ -605,6 +605,10 @@ class ExtractOIIOTranscodeProfileModel(BaseSettingsModel):
default_factory=list,
title="Product names"
)
representations: list[str] = SettingsField(
default_factory=list,
title="Representation names"
)
delete_original: bool = SettingsField(
True,
title="Delete Original Representation",