diff --git a/pype/plugins/global/publish/submit_publish_job.py b/pype/plugins/global/publish/submit_publish_job.py index 7592423a08..7b5dac28d4 100644 --- a/pype/plugins/global/publish/submit_publish_job.py +++ b/pype/plugins/global/publish/submit_publish_job.py @@ -8,20 +8,6 @@ from avalon.vendor import requests, clique import pyblish.api -# regex for finding frame number in string -R_FRAME_NUMBER = re.compile(r'.+\.(?P[0-9]+)\..+') - -# mapping of instance properties to be transfered to new instance for every -# specified family -instance_transfer = { - "slate": ["slateFrame"], - "review": ["lutPath"], - "render.farm": ["bakeScriptPath", "bakeRenderPath", "bakeWriteNodeName"] - } - -# list of family names to transfer to new family if present -families_transfer = ["render2d", "ftrack", "slate"] - def _get_script(): """Get path to the image sequence script""" @@ -145,9 +131,6 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): - publishJobState (str, Optional): "Active" or "Suspended" This defaults to "Suspended" - This requires a "frameStart" and "frameEnd" to be present in instance.data - or in context.data. - """ label = "Submit image sequence jobs to Deadline or Muster" @@ -175,6 +158,20 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): # pool used to do the publishing job deadline_pool = "" + # regex for finding frame number in string + R_FRAME_NUMBER = re.compile(r'.+\.(?P[0-9]+)\..+') + + # mapping of instance properties to be transfered to new instance for every + # specified family + instance_transfer = { + "slate": ["slateFrame"], + "review": ["lutPath"], + "render.farm": ["bakeScriptPath", "bakeRenderPath", "bakeWriteNodeName"] + } + + # list of family names to transfer to new family if present + families_transfer = ["render2d", "ftrack", "slate"] + def _submit_deadline_post_job(self, instance, job): """ Deadline specific code separated from :meth:`process` for sake of @@ -289,12 +286,12 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): resource_files = [] r_filename = os.path.basename( representation.get("files")[0]) # first file - op = re.search(R_FRAME_NUMBER, r_filename) + op = re.search(self.R_FRAME_NUMBER, r_filename) pre = r_filename[:op.start("frame")] post = r_filename[op.end("frame"):] assert op is not None, "padding string wasn't found" for frame in list(r_col): - fn = re.search(R_FRAME_NUMBER, frame) + fn = re.search(self.R_FRAME_NUMBER, frame) # silencing linter as we need to compare to True, not to # type assert fn is not None, "padding string wasn't found" @@ -563,18 +560,13 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): } # transfer specific families from original instance to new render - if "render2d" in instance.data.get("families", []): - instance_skeleton_data["families"] += ["render2d"] - - if "ftrack" in instance.data.get("families", []): - instance_skeleton_data["families"] += ["ftrack"] - - if "slate" in instance.data.get("families", []): - instance_skeleton_data["families"] += ["slate"] + for item in self.families_transfer: + if item in instance.data.get("families", []): + instance_skeleton_data["families"] += [item] # transfer specific properties from original instance based on # mapping dictionary `instance_transfer` - for key, values in instance_transfer.items(): + for key, values in self.instance_transfer.items(): if key in instance.data.get("families", []): for v in values: instance_skeleton_data[v] = instance.data.get(v)