Skip to content

publish_plugins

FusionSubmitDeadlineModel

Bases: BaseSettingsModel

Fusion-specific settings

Source code in server/settings/publish_plugins.py
255
256
257
258
259
class FusionSubmitDeadlineModel(BaseSettingsModel):
    """Fusion-specific settings"""
    plugin: str = SettingsField("Fusion",
                                enum_resolver=fusion_deadline_plugin_enum,
                                title="Deadline Plugin")

HoudiniSubmitDeadlineModel

Bases: BaseSettingsModel

Houdini Export Job settings

Submitting from Houdini can be configured to first export a renderable scene file (e.g. usd, ifd, ass) instead of rendering directly from the Houdini file. These settings apply to this Houdini Export Job.

Source code in server/settings/publish_plugins.py
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
class HoudiniSubmitDeadlineModel(BaseSettingsModel):
    """Houdini Export Job settings

    Submitting from Houdini can be configured to first export a renderable
    scene file (e.g. `usd`, `ifd`, `ass`) instead of rendering directly from
    the Houdini file. These settings apply to this Houdini **Export Job**.
    """

    export_priority: int = SettingsField(title="Export Priority")
    export_chunk_size: int = SettingsField(title="Export Frames Per Task")
    export_group: str = SettingsField(title="Export Group")
    export_limits: str = SettingsField(
        title="Export Limit Groups",
        description=(
            "Enter a comma separated list of limits.\n"
            "Specifies the limit groups that this job is a member"
            " of (default = blank)."
        )
    )
    export_machine_limit: int = SettingsField(
        title="Export Machine Limit",
        description=(
            "Specifies the maximum number of machines this job can be"
            " rendered on at the same time (default = 0, which means"
            " unlimited)."
        )
    )

MayaSubmitDeadlineModel

Bases: BaseSettingsModel

Maya-specific settings

Source code in server/settings/publish_plugins.py
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
class MayaSubmitDeadlineModel(BaseSettingsModel):
    """Maya-specific settings"""

    import_reference: bool = SettingsField(
        title="Use Scene with Imported Reference"
    )
    tile_priority: int = SettingsField(title="Tile Priority")

    tile_assembler_plugin: str = SettingsField(
        title="Tile Assembler Plugin",
        enum_resolver=tile_assembler_enum,
    )

    scene_patches: list[ScenePatchesSubmodel] = SettingsField(
        default_factory=list,
        title="Scene patches",
    )
    strict_error_checking: bool = SettingsField(
        title="Disable Strict Error Check profiles"
    )

    @validator("scene_patches")
    def validate_unique_names(cls, value):
        ensure_unique_names(value)
        return value

NukeSubmitDeadlineModel

Bases: BaseSettingsModel

Nuke-specific settings

Source code in server/settings/publish_plugins.py
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
class NukeSubmitDeadlineModel(BaseSettingsModel):
    """Nuke-specific settings"""

    use_gpu: bool = SettingsField(True, title="Use GPU")
    continue_on_error: bool = SettingsField(
        False,
        title="Continue On Error",
        description=(
            "Whether to enable continue on error on Deadline's Nuke plug-in"
            " submission info by default in publish instance attributes."
        )
    )
    node_class_limit_groups: list[LimitGroupsSubmodel] = SettingsField(
        default_factory=list,
        title="Node based Limit Groups",
        description=
            "Provide list of Nuke node classes to get particular limit group. "
            "Example: 'OFX.absoft.neatvideo5_v5'"
    )

ProcessCacheJobFarmModel

Bases: BaseSettingsModel

Houdini cache submission settings

These settings apply only to Houdini cache publish jobs. Those are the publish jobs for any farm submitted caching, like for Alembic or VDB products.

Source code in server/settings/publish_plugins.py
312
313
314
315
316
317
318
319
320
321
322
323
class ProcessCacheJobFarmModel(BaseSettingsModel):
    """Houdini cache submission settings

    These settings apply only to Houdini cache publish jobs. Those are the
    **publish jobs** for any farm submitted caching, like for Alembic
    or VDB products.
    """

    deadline_priority: int = SettingsField(title="Priority")
    deadline_group: str = SettingsField(title="Group")
    deadline_pool: str = SettingsField(title="Pool")
    deadline_department: str = SettingsField(title="Department")

ProcessSubmittedJobOnFarmModel

Bases: BaseSettingsModel

Publish job settings

Source code in server/settings/publish_plugins.py
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
class ProcessSubmittedJobOnFarmModel(BaseSettingsModel):
    """Publish job settings"""

    deadline_priority: int = SettingsField(title="Priority")
    deadline_group: str = SettingsField(title="Group")
    deadline_pool: str = SettingsField(title="Pool")
    deadline_department: str = SettingsField(title="Department")
    skip_integration_repre_list: list[str] = SettingsField(
        default_factory=list,
        title="Skip integration of representation with ext"
    )
    families_transfer: list[str] = SettingsField(
        default_factory=list,
        title=(
            "List of family names to transfer\n"
            "to generated instances (AOVs for example)."
        )
    )
    aov_filter: list[AOVFilterSubmodel] = SettingsField(
        default_factory=list,
        title="Reviewable products filter",
    )

    add_rendered_dependencies: bool = SettingsField(
        False,
        title="Add rendered files as Dependencies",
        description="Add all expected rendered files as job Dependencies."
                    "Publish job won't trigger until all files are present."
    )

    @validator("aov_filter")
    def validate_unique_names(cls, value):
        ensure_unique_names(value)
        return value

ValidateExpectedFilesModel

Bases: BaseSettingsModel

Validate render frames match the job's expected outputs.

Source code in server/settings/publish_plugins.py
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
class ValidateExpectedFilesModel(BaseSettingsModel):
    """Validate render frames match the job's expected outputs."""
    enabled: bool = SettingsField(True, title="Enabled")
    active: bool = SettingsField(True, title="Active")
    allow_user_override: bool = SettingsField(
        True, title="Allow user change frame range",
        description=(
            "Allow user to override the frame range of the job in Deadline "
            "Monitor and use this as the new expected files. "
            "This is useful when artist should be allowed control on the "
            "render frame range."
        )
    )
    families: list[str] = SettingsField(
        default_factory=list, title="Trigger on families"
    )
    targets: list[str] = SettingsField(
        default_factory=list, title="Trigger for plugins"
    )

extract_jobinfo_overrides_enum()

Enum of fields that could be overridden by artist in Publisher UI

Source code in server/settings/publish_plugins.py
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def extract_jobinfo_overrides_enum():
    """Enum of fields that could be overridden by artist in Publisher UI"""
    return [
        {"value": "department", "label": "Department"},
        {"value": "job_delay", "label": "Delay job (timecode dd:hh:mm:ss)"},
        {"value": "chunk_size", "label": "Frames per Task"},
        {"value": "group", "label": "Group"},
        {"value": "priority", "label": "Priority"},
        {"value": "limit_groups", "label": "Limit groups"},
        {"value": "primary_pool", "label": "Primary pool"},
        {"value": "secondary_pool", "label": "Secondary pool"},
        {"value": "machine_list", "label": "Machine List"},
        {"value": "machine_list_deny", "label": "Machine List is a Deny"},
        {"value": "concurrent_tasks", "label": "Number of Concurrent Tasks"},
        {"value": "publish_job_state", "label": "Publish Job State"},
    ]

fusion_deadline_plugin_enum()

Return a list of value/label dicts for the enumerator.

Returning a list of dicts is used to allow for a custom label to be displayed in the UI.

Source code in server/settings/publish_plugins.py
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
def fusion_deadline_plugin_enum():
    """Return a list of value/label dicts for the enumerator.

    Returning a list of dicts is used to allow for a custom label to be
    displayed in the UI.
    """
    return [
        {
            "value": "Fusion",
            "label": "Fusion"
        },
        {
            "value": "FusionCmd",
            "label": "FusionCmd"
        }
    ]

publish_job_state_enum()

Enum for initial state of publish job

Source code in server/settings/publish_plugins.py
48
49
50
51
52
53
def publish_job_state_enum():
    """Enum for initial state of publish job"""
    return [
        {"value": "active", "label": "Active"},
        {"value": "suspended", "label": "Suspended"},
    ]

tile_assembler_enum()

Return a list of value/label dicts for the enumerator.

Returning a list of dicts is used to allow for a custom label to be displayed in the UI.

Source code in server/settings/publish_plugins.py
189
190
191
192
193
194
195
196
197
198
199
200
def tile_assembler_enum():
    """Return a list of value/label dicts for the enumerator.

    Returning a list of dicts is used to allow for a custom label to be
    displayed in the UI.
    """
    return [
        {
            "value": "DraftTileAssembler",
            "label": "Draft Tile Assembler"
        }
    ]