Skip to content

Commit

Permalink
feat: same optimisation as PR #1283 + recognize type from config files
Browse files Browse the repository at this point in the history
  • Loading branch information
KernAttila committed Mar 28, 2023
1 parent 5b00145 commit 3bbdf53
Showing 1 changed file with 20 additions and 33 deletions.
53 changes: 20 additions & 33 deletions cuesubmit/cuesubmit/Submission.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,46 +140,33 @@ def buildLayer(layerData, command, lastLayer=None):
layer.depend_on(lastLayer)
return layer


def buildMayaLayer(layerData, lastLayer):
"""Builds a PyOutline layer running a Maya command."""
mayaCmd = buildMayaCmd(layerData)
return buildLayer(layerData, mayaCmd, lastLayer)


def buildNukeLayer(layerData, lastLayer):
"""Builds a PyOutline layer running a Nuke command."""
nukeCmd = buildNukeCmd(layerData)
return buildLayer(layerData, nukeCmd, lastLayer)


def buildBlenderLayer(layerData, lastLayer):
"""Builds a PyOutline layer running a Blender command."""
blenderCmd = buildBlenderCmd(layerData)
return buildLayer(layerData, blenderCmd, lastLayer)


def buildShellLayer(layerData, lastLayer):
"""Builds a PyOutline layer running a shell command."""
return buildLayer(layerData, layerData.cmd['commandTextBox'], lastLayer)

def buildLayerCommand(layerData, silent=False):
"""Builds the command to be sent per jobType"""
if layerData.layerType in JobTypes.JobTypes.FROM_CONFIG_FILE:
command = buildDynamicCmd(layerData)
elif layerData.layerType == JobTypes.JobTypes.MAYA:
command = buildMayaCmd(layerData, silent)
elif layerData.layerType == JobTypes.JobTypes.SHELL:
command = layerData.cmd.get('commandTextBox') if silent else layerData.cmd['commandTextBox']
elif layerData.layerType == JobTypes.JobTypes.NUKE:
command = buildNukeCmd(layerData, silent)
elif layerData.layerType == JobTypes.JobTypes.BLENDER:
command = buildBlenderCmd(layerData, silent)
elif silent:
command = 'Error: unrecognized layer type {}'.format(layerData.layerType)
else:
raise ValueError('unrecognized layer type {}'.format(layerData.layerType))

return command

def submitJob(jobData):
"""Submits the job using the PyOutline API."""
ol = outline.Outline(
jobData['name'], shot=jobData['shot'], show=jobData['show'], user=jobData['username'])
lastLayer = None
for layerData in jobData['layers']:
if layerData.layerType == JobTypes.JobTypes.MAYA:
layer = buildMayaLayer(layerData, lastLayer)
elif layerData.layerType == JobTypes.JobTypes.SHELL:
layer = buildShellLayer(layerData, lastLayer)
elif layerData.layerType == JobTypes.JobTypes.NUKE:
layer = buildNukeLayer(layerData, lastLayer)
elif layerData.layerType == JobTypes.JobTypes.BLENDER:
layer = buildBlenderLayer(layerData, lastLayer)
else:
raise ValueError('unrecognized layer type %s' % layerData.layerType)
command = buildLayerCommand(layerData)
layer = buildLayer(layerData, command, lastLayer)
ol.add_layer(layer)
lastLayer = layer

Expand Down

0 comments on commit 3bbdf53

Please sign in to comment.