Skip to content

publish_plugins

FusionSubmitDeadlineModel

Bases: BaseSettingsModel

Fusion-specific settings

Source code in server/settings/publish_plugins.py
248
249
250
251
252
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
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
294
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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
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
255
256
257
258
259
260
261
262
263
264
265
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
297
298
299
300
301
302
303
304
305
306
307
308
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
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
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",
    )

    @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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
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
182
183
184
185
186
187
188
189
190
191
192
193
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"
        }
    ]