Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 8.0-0

    Like the menu and panel plugin types, the submission plugins are written in Python 3. Each submission plugin is executed directly by the plugin system so, so for example, you can use Python to automate the building of parameters, pre-fill default values, or adapt to changes the user makes.

    At last count Qube! UI ships with 33 submission plugins that you can find in the plugins/submission directory under the application directory (or under QubeUI\bin on Windows). Looking through the submission dialogs for each type in the UI and then reading the corresponding section of it's plugin file is a good way to quickly find how to do what you need in a particular situation.

    The best place to start when creating a new submission plugin is to copy an existing one that's closest to what you intend to make. For the purposes of this documentation we'll start from scratch and create a new plugin for making proxy images using imagemagick.

    ...

    The command template works in the same way, where the parameter names act as the keys to the dictionary. In our example command template we make a new directory and then run magick to resize the images.

     

     

    Submission Plugin Functions

    add_submission_type

    Create a new submission plugin. Each plugin should have exactly one call to add_submission_type()

    ArgumentTypeDefaultComment
    typestring The type identifier for this submission plugin. The type identifier is used, among other reasons, to determine a job's submission type which allows the UI to open the correct submission dialog upon job resubmission.
    prototypestringcmdlineThe Qube! submission prototype.
    short_namestring An alternative, shorter name for the submission plugin type, used when UI space is tight.
    has_rangebooleanFalseWhether the plugin should display range related fields in the Qube Basics page.
    thread_controlstring An empty string or "false" hides the Threads per instance and Instances use all cores fields from the Qube Basics page. Any other value that is not "all" will hide the Instances use all cores field only.
    can_pad_framesbooleanFalseA value of True will include a Frame Padding field in the Qube Basics page.
    can_batchbooleanFalseAllows generation of partitions or chunks in the submitted job.
    pre_show_validatePython functionon_pre_show_validateThis Python function is called before pre_dialog and should return a boolean that determines whether the submission dialog should be shown.
    pre_dialogPython functionon_pre_dialogThis Python function is called immediately before the submission dialog is shown.
    post_dialogPython functionon_post_dialogThis Python function is called after the job is created and the submission dialog is closed but before submission.
    post_submitPython functionon_post_submitThis Python function is called after the job is submitted.
    installPython functioninstallThis Python function is called when selecting the corresponding menu item in the File->Install App UI menu.

    add_page

    Add a new page to the submission dialog and make it current. New fields are added to the current page.

    ArgumentPython TypeDefaultComment
    namestr 

    The name of the page.

    add_field

    Add a parameter to the current page.

    ArgumentPython TypeDefaultComment
    namestr 

    The name of the page.

     

    Supported Parameter types

    Common arguments

    ArgumentPython TypeDefaultComment
    namestr 

    The name of the parameter is used both as the label next to the parameter in the submission dialog and to refer to it elsewhere in the plugin. The name argument is required.

    typestrstringThe type of parameter, can be one of (bool, int, float, string, text, path, filename, list, combo, combo_file, combo_path, table, datetime, selectorString).
    requiredboolFalseWhether the parameter must be set with a valid value before submission.
    destinationstr Where to store the value in the job, for example package.mayaExecutable.
    argstr The command line argument associated with the parameter.
    defaultParameter type specific A pre-filled value.
    enabledboolTrueWhether the value is editable or grayed out.
    quoteboolFalseWhether the value of the parameter should be surrounded by double quotes.
    set_on_resubmitboolTrueWhen resubmitting a job the parameter's value is set to that of the value of the job being resubmitted.
    separatorstr,When a parameter has several values such as list selections this string is used as the separator.
    arg_value_separatorstr[a single space]The string used to separate the parameter's arg with its value. For example if the command line argument needs to be in the form myArg=myValue the arg_value_separator should be =.
    suppress_path_conversionN/AN/AIf this argument is set then the value (if it's a path or filename parameter) will not be surrounded by QB_CONVERT_PATH().
    on_changePython function taking 0 arguments The given function is called whenever the value of this parameter or any parameters in it's watch_list change.
    watch_listlist of str A list of references to other parameters in this plugin. The page name and parameter names are separated by two colons, for example ["Qube Basics::Threads per instance", "Qube Basics::Instances use all cores"].

    string

    A simple single line text field.

    ...