Skip to content

publish_plugins

FusionSubmitDeadlineModel

Bases: BaseSettingsModel

Fusion-specific settings

Source code in server/settings/publish_plugins.py
247
248
249
250
251
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
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
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
254
255
256
257
258
259
260
261
262
263
264
class NukeSubmitDeadlineModel(BaseSettingsModel):
    """Nuke-specific settings"""

    use_gpu: bool = SettingsField(True, title="Use GPU")
    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
296
297
298
299
300
301
302
303
304
305
306
307
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
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
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
181
182
183
184
185
186
187
188
189
190
191
192
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"
        }
    ]