code tweaks according to big roy's comment

This commit is contained in:
moonyuet 2024-03-18 12:15:58 +01:00
parent 5c8a39e266
commit 587bfe462f
2 changed files with 14 additions and 15 deletions

View file

@ -12,19 +12,16 @@ from ayon_core.hosts.max.api.lib_rendersettings import RenderSettings
class ValidateRenderPasses(OptionalPyblishPluginMixin, class ValidateRenderPasses(OptionalPyblishPluginMixin,
pyblish.api.InstancePlugin): pyblish.api.InstancePlugin):
"""Validates Render Passes before Deadline Submission """Validates Render Passes before farm submission
""" """
order = ValidateContentsOrder order = ValidateContentsOrder
families = ["maxrender"] families = ["maxrender"]
hosts = ["max"] hosts = ["max"]
label = "Validate Render Passes" label = "Validate Render Passes"
optional = True
actions = [RepairAction] actions = [RepairAction]
def process(self, instance): def process(self, instance):
if not self.is_active(instance.data):
return
invalid = self.get_invalid(instance) invalid = self.get_invalid(instance)
if invalid: if invalid:
bullet_point_invalid_statement = "\n".join( bullet_point_invalid_statement = "\n".join(
@ -64,7 +61,7 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
Args: Args:
instance (pyblish.api.Instance): instance instance (pyblish.api.Instance): instance
filename (str): filename of the Max scene workfile_name (str): filename of the Max scene
Returns: Returns:
list: list of invalid filename which doesn't match list: list of invalid filename which doesn't match
@ -72,11 +69,11 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
""" """
invalid = [] invalid = []
file = rt.maxFileName file = rt.maxFileName
filename, ext = os.path.splitext(file) workfile_name, ext = os.path.splitext(file)
if filename not in rt.rendOutputFilename: if workfile_name not in rt.rendOutputFilename:
cls.log.error( cls.log.error(
"Render output folder must include" "Render output folder must include"
f" the max scene name {filename} " f" the max scene name {workfile_name} "
) )
invalid_folder_name = os.path.dirname( invalid_folder_name = os.path.dirname(
rt.rendOutputFilename).replace( rt.rendOutputFilename).replace(
@ -104,13 +101,11 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
render_elem_num = render_elem.NumRenderElements() render_elem_num = render_elem.NumRenderElements()
for i in range(render_elem_num): for i in range(render_elem_num):
renderlayer_name = render_elem.GetRenderElement(i) renderlayer_name = render_elem.GetRenderElement(i)
renderpass = str(renderlayer_name).split(":")[-1] renderpass = str(renderlayer_name).rsplit(":", 1)[-1]
rend_file = render_elem.GetRenderElementFilename(i) rend_file = render_elem.GetRenderElementFilename(i)
if not rend_file: if not rend_file:
cls.log.error( continue
f"No filepath for render element {renderpass}")
invalid.append((f"Invalid {renderpass}",
"No filepath"))
rend_fname, ext = os.path.splitext( rend_fname, ext = os.path.splitext(
os.path.basename(rend_file)) os.path.basename(rend_file))
invalid_filenames = cls.get_invalid_filenames( invalid_filenames = cls.get_invalid_filenames(
@ -123,6 +118,10 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
cls.log.debug( cls.log.debug(
"Renderpass validation does not support Arnold yet," "Renderpass validation does not support Arnold yet,"
" validation skipped...") " validation skipped...")
else:
cls.log.debug(
"Skipping render element validation "
f"for renderer : {renderer}")
return invalid return invalid
@classmethod @classmethod
@ -140,7 +139,7 @@ class ValidateRenderPasses(OptionalPyblishPluginMixin,
""" """
invalid = [] invalid = []
if instance.name not in file_name: if instance.name not in file_name:
cls.log.error("The renderpass should have instance name inside.") cls.log.error("The renderpass filename should contain the instance name.")
invalid.append((f"Invalid instance name", invalid.append((f"Invalid instance name",
file_name)) file_name))
if renderpass is not None: if renderpass is not None:

View file

@ -191,7 +191,7 @@ DEFAULT_PUBLISH_SETTINGS = {
}, },
"ValidateRenderPasses": { "ValidateRenderPasses": {
"enabled": True, "enabled": True,
"optional": True, "optional": False,
"active": True "active": True
}, },
"ExtractModelObj": { "ExtractModelObj": {