conductor.submitter_maya module

class conductor.submitter_maya.MayaAdvancedWidget(parent=None)

Bases: sphinx.ext.autodoc.importer._MockObject

Maya-specific widget within the Advanced tab of the submitter

getWorkspaceDir()

Get the test from the Workspace lineEdit field

on_ui_choose_workspace_path_pbtn_clicked()
setWorkspaceDir(text)

Set the Workspace lineEdit field to the given text

class conductor.submitter_maya.MayaCheckBoxTreeWidget(parent=None)

Bases: conductor.lib.pyside_utils.CheckBoxTreeWidget

icon_filepath_checked = '/tmp/tmp.CENU7DBH6S/conductor/resources/checkbox_on_greenx_8x7.png'
icon_filepath_checked_disabled = '/tmp/tmp.CENU7DBH6S/conductor/resources/checkbox_on_greenx_disabled_8x7.png'
icon_filepath_unchecked = '/tmp/tmp.CENU7DBH6S/conductor/resources/checkbox_off_redx_8x7.png'
icon_filepath_unchecked_disabled = '/tmp/tmp.CENU7DBH6S/conductor/resources/checkbox_off_redx_disabled_8x7.png'
initializeUi()
class conductor.submitter_maya.MayaConductorSubmitter(parent=None)

Bases: conductor.submitter.ConductorSubmitter

This class inherits from the generic conductor submitter and adds an additional widget for maya-specific data.

Note that the addional widget is stored (and accessible) via the self.extended_widget attribute

When the UI loads it will automatically populate various information:
  1. Frame range
  2. Render layers (with their camera)
applyDefaultSettings()

Set the UI to default settings.

checkSaveBeforeSubmission()

Check if scene has unsaved changes and prompt user if they’d like to save their Maya scene before continuing

collectDependencies()

Generate a list of filepaths that the current maya scene is dependent on.

generateConductorArgs(data)

Override this method from the base class to provide conductor arguments that are specific for Maya. See the base class’ docstring for more details.

generateTasksData()

Return a list of tasks data. Each item in the list represents one task of work that will be created. Each task dictionary has the following keys:

  • "command": The command for the task to execute

  • "frames": optional, helps to bind/display the relationship between a task and the frames that the task is operating on.

    Because a task can be any arbitrary command, the notion of “frames” may not be relevant and can be left empty.

Example(two tasks):

# Task 0
[ {"command": "Render -s 1 -e 1 -rl renderlayer1 "maya_filepath.ma""
   "frames": "1"},
# Task 1
{"command": "Render -s 10 -e 20 -b 2 "maya_filepath.ma""
 "frames": "10-20x2"} ]
getEnvironment()

Return a dictionary of environment variables to use for the Job’s environment

getExtendedAdvancedWidget()

This method extends the Conductor UI by providing a single PySide widget that will be added to the UI. The widget may be any class object derived from QWidget.

In order to do so, subclass this class and override this method to return the desired widget object. This widget will be inserted at the bottom of the “Advanced” tab. See illustration below:

 ____________________
|   Advanced <tab>   |
|--------------------|
|                    |
|                    |
|                    |
|--------------------|
|                    |
|  <EXTENDED WIDGET> |   <-- your extended advanced widget goes here.
|____________________|
getExtendedWidget()

This method extends the Conductor UI by providing a single PySide widget that will be added to the UI. The widget may be any class object derived from QWidget.

In order to do so, subclass this class and override this method to return the desired widget object. This widget will be inserted between the Frame Range area and the Submit button. See illustration below:

 ____________________
|     Conductor      |
|--------------------|
|  Frame Range Area  |
|--------------------|
|                    |
|  <EXTENDED WIDGET> |   <-- your extended widget goes here.
|                    |
|--------------------|
|   submit button    |
|____________________|
getHostProductInfo()
getJobTitle()

Generate and return the title to be given to the job. This is the title that will be displayed in the webUI.

Construct the job title by using the software name (MAYA), followed by the filename of maya file (excluding directory path), followed by the renderlayers being rendered. If all of the renderlayers in the maya scene are being rendered then don’t list any of them.

MAYA - <maya filename> - <renderlayers>

example: “MAYA - my_maya_scene.ma - beauty, shadow, spec”

classmethod getParentWindow()

Return Maya’s main QT window widget. This will be the parent widget for the submitter UI.

getPluginsProductInfo()
getSourceFilepath()

Return the currently opened maya file

product = 'maya-io'
runConductorSubmission(data)

Instantiate a Conductor Submit object with the given conductor_args (dict), and execute it.

runPreSubmission()

Override the base class (which is an empty stub method) so that a validation pre-process can be run. If validation fails, then indicate that the the submission process should be aborted.

We also collect dependencies at this point and pass that data along… In order to validate the submission, dependencies must be collected and inspected. Because we don’t want to unnessarily collect dependencies again (after validation succeeds), we also pass the depenencies along in the returned dictionary (so that we don’t need to collect them again).

runValidation(raw_data)

This is an added method (i.e. not a base class override), that allows validation to occur when a user presses the “Submit” button. If the validation fails, a notification dialog appears to the user, halting the submission process.

Validate that the data being submitted is…valid.

  1. Dependencies
  2. Output dir
setGpuWidgetVisibility()

Show the Gpu combobox if V-Ray is the current renderer and its set to a GPU mode.

setMayaWindow()

Set a few QT paramaters so that the ui plays nicely with Maya’s.

validateJobPackages()
Validate that job packages make sense
  1. ensure no duplicate packages (call the parent class method for this)
  2. ensure that no two packages of the same product exist (call the parent class method for this)
  3. Ensure that a package for the host product has been selected (call the parent class method for this)
  4. Ensure that a render package is present (unless just using maya software)
class conductor.submitter_maya.MayaWidget(parent=None)

Bases: sphinx.ext.autodoc.importer._MockObject

createUI()
getSelectedRenderLayers()

Return the names of the render layers that have their checkboxes checked on

getUploadOnlyBool()

Return whether the “Upload Only” checkbox is checked on or off.

on_ui_upload_only_toggled(toggled)

when the “Upload Only” checkbox is checked on, disable the Render Layers widget. when the “Upload Only” checkbox is checked off, enable the Render Layers widget.

populateRenderLayers(render_layers_info)

Populate each render layer into the UI QTreeWidget. If the render layer has been set to renderable in maya, then check its qtreewidgetitem’s checkbox (on) the the render layer UI. Only render layers that are checked on will be rendered

refreshUi()
conductor.submitter_maya.get_maya_window()

Return the Qt instance of Maya’s MainWindow