Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge branch 'develop' into bugfix/extract_oiio_transcode
Browse files Browse the repository at this point in the history
  • Loading branch information
tokejepsen committed Jan 25, 2024
2 parents 560698b + 6ddc8d9 commit d6b05c7
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 93 deletions.

This file was deleted.

65 changes: 50 additions & 15 deletions openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin,
env_allowed_keys = []
env_search_replace_values = {}
workfile_dependency = True
use_published_workfile = True

@classmethod
def get_attribute_defs(cls):
Expand Down Expand Up @@ -85,8 +86,13 @@ def get_attribute_defs(cls):
),
BoolDef(
"workfile_dependency",
default=True,
default=cls.workfile_dependency,
label="Workfile Dependency"
),
BoolDef(
"use_published_workfile",
default=cls.use_published_workfile,
label="Use Published Workfile"
)
]

Expand Down Expand Up @@ -125,20 +131,11 @@ def process(self, instance):
render_path = instance.data['path']
script_path = context.data["currentFile"]

for item_ in context:
if "workfile" in item_.data["family"]:
template_data = item_.data.get("anatomyData")
rep = item_.data.get("representations")[0].get("name")
template_data["representation"] = rep
template_data["ext"] = rep
template_data["comment"] = None
anatomy_filled = context.data["anatomy"].format(template_data)
template_filled = anatomy_filled["publish"]["path"]
script_path = os.path.normpath(template_filled)

self.log.info(
"Using published scene for render {}".format(script_path)
)
use_published_workfile = instance.data["attributeValues"].get(

This comment has been minimized.

Copy link
@BigRoy

BigRoy Jan 25, 2024

Collaborator

Out of curiosity - should we also remove the fact that these values get stored into attributeValues. The original data for the instance attribute is already stored in the instance.data.

Storing it also to attributeValues makes it feel like you're doing something else with that data - which you aren't - or makes it feel like you might be accessing it on other plugins which I think you're also not doing.

How about just:

attr_values = self.get_attr_values_from_data(instance.data)

And if you need it again in payload_submit either use that method again OR just pass it along as an argument explicitly?

This comment has been minimized.

Copy link
@tokejepsen

tokejepsen Jan 25, 2024

Author Member

This is from #6146
Sure we can refactor, but might be better to work on getting this plugin to inherit from AbstractDeadline.

This comment has been minimized.

Copy link
@BigRoy

BigRoy Jan 25, 2024

Collaborator

Yup, might be even better. Just wanted to mention it since it seemed a bit off to store it there. 👍 Probably best to track as a separate issue.

"use_published_workfile", self.use_published_workfile
)
if use_published_workfile:
script_path = self._get_published_workfile_path(context)

# only add main rendering job if target is not frames_farm
r_job_response_json = None
Expand Down Expand Up @@ -197,6 +194,44 @@ def process(self, instance):
families.insert(0, "prerender")
instance.data["families"] = families

def _get_published_workfile_path(self, context):
"""This method is temporary while the class is not inherited from
AbstractSubmitDeadline"""
for instance in context:
if (
instance.data["family"] != "workfile"
# Disabled instances won't be integrated
or instance.data("publish") is False
):
continue
template_data = instance.data["anatomyData"]
# Expect workfile instance has only one representation
representation = instance.data["representations"][0]
# Get workfile extension
repre_file = representation["files"]
self.log.info(repre_file)
ext = os.path.splitext(repre_file)[1].lstrip(".")

# Fill template data
template_data["representation"] = representation["name"]
template_data["ext"] = ext
template_data["comment"] = None

anatomy = context.data["anatomy"]
# WARNING Hardcoded template name 'publish' > may not be used
template_obj = anatomy.templates_obj["publish"]["path"]

template_filled = template_obj.format(template_data)
script_path = os.path.normpath(template_filled)
self.log.info(
"Using published scene for render {}".format(
script_path
)
)
return script_path

return None

def payload_submit(
self,
instance,
Expand Down
2 changes: 2 additions & 0 deletions openpype/settings/defaults/project_settings/deadline.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@
"group": "",
"department": "",
"use_gpu": true,
"workfile_dependency": true,
"use_published_workfile": true,
"env_allowed_keys": [],
"env_search_replace_values": {},
"limit_groups": {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,16 @@
"key": "use_gpu",
"label": "Use GPU"
},
{
"type": "boolean",
"key": "workfile_dependency",
"label": "Workfile Dependency"
},
{
"type": "boolean",
"key": "use_published_workfile",
"label": "Use Published Workfile"
},
{
"type": "list",
"key": "env_allowed_keys",
Expand Down
4 changes: 4 additions & 0 deletions server_addon/deadline/server/settings/publish_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ class NukeSubmitDeadlineModel(BaseSettingsModel):
group: str = Field(title="Group")
department: str = Field(title="Department")
use_gpu: bool = Field(title="Use GPU")
workfile_dependency: bool = Field(title="Workfile Dependency")
use_published_workfile: bool = Field(title="Use Published Workfile")

env_allowed_keys: list[str] = Field(
default_factory=list,
Expand Down Expand Up @@ -382,6 +384,8 @@ class PublishPluginsModel(BaseSettingsModel):
"group": "",
"department": "",
"use_gpu": True,
"workfile_dependency": True,
"use_published_workfile": True,
"env_allowed_keys": [],
"env_search_replace_values": [],
"limit_groups": []
Expand Down
2 changes: 1 addition & 1 deletion server_addon/deadline/server/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.1.7"
__version__ = "0.1.8"

0 comments on commit d6b05c7

Please sign in to comment.