mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 22:02:15 +01:00
filled anatomyData in publish plugins
This commit is contained in:
parent
17af919d75
commit
7ec884f2d5
10 changed files with 76 additions and 31 deletions
|
|
@ -126,7 +126,8 @@ class CollectFarmRender(openpype.lib.abstract_collect_render.
|
|||
# because of using 'renderFarm' as a family, replace 'Farm' with
|
||||
# capitalized task name - issue of avalon-core Creator app
|
||||
subset_name = node.split("/")[1]
|
||||
task_name = context.data["anatomyData"]["task"].capitalize()
|
||||
task_name = context.data["anatomyData"]["task"][
|
||||
"name"].capitalize()
|
||||
replace_str = ""
|
||||
if task_name.lower() not in subset_name.lower():
|
||||
replace_str = task_name
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class CollectPalettes(pyblish.api.ContextPlugin):
|
|||
|
||||
# skip collecting if not in allowed task
|
||||
if self.allowed_tasks:
|
||||
task_name = context.data["anatomyData"]["task"].lower()
|
||||
task_name = context.data["anatomyData"]["task"]["name"].lower()
|
||||
if (not any([re.search(pattern, task_name)
|
||||
for pattern in self.allowed_tasks])):
|
||||
return
|
||||
|
|
|
|||
|
|
@ -49,10 +49,26 @@ class CollectHarmonyScenes(pyblish.api.InstancePlugin):
|
|||
|
||||
# fix anatomy data
|
||||
anatomy_data_new = copy.deepcopy(anatomy_data)
|
||||
|
||||
project_entity = context.data["projectEntity"]
|
||||
asset_entity = context.data["assetEntity"]
|
||||
|
||||
task_type = asset_entity["data"]["tasks"].get(task, {}).get("type")
|
||||
|
||||
if task_type:
|
||||
task_code = project_entity["config"]["tasks"][task_type][
|
||||
"short_name"]
|
||||
else:
|
||||
task_code = None
|
||||
|
||||
# updating hierarchy data
|
||||
anatomy_data_new.update({
|
||||
"asset": asset_data["name"],
|
||||
"task": task,
|
||||
"task": {
|
||||
"name": task,
|
||||
"type": task_type,
|
||||
"short": task_code,
|
||||
},
|
||||
"subset": subset_name
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class CollectHarmonyZips(pyblish.api.InstancePlugin):
|
|||
anatomy_data = instance.context.data["anatomyData"]
|
||||
repres = instance.data["representations"]
|
||||
files = repres[0]["files"]
|
||||
project_entity = context.data["projectEntity"]
|
||||
|
||||
if files.endswith(".zip"):
|
||||
# A zip file was dropped
|
||||
|
|
@ -45,14 +46,28 @@ class CollectHarmonyZips(pyblish.api.InstancePlugin):
|
|||
|
||||
self.log.info("Copied data: {}".format(new_instance.data))
|
||||
|
||||
task_type = asset_data["data"]["tasks"].get(task, {}).get("type")
|
||||
|
||||
if task_type:
|
||||
task_code = project_entity["config"]["tasks"][task_type][
|
||||
"short_name"]
|
||||
else:
|
||||
task_code = None
|
||||
|
||||
# fix anatomy data
|
||||
anatomy_data_new = copy.deepcopy(anatomy_data)
|
||||
# updating hierarchy data
|
||||
anatomy_data_new.update({
|
||||
"asset": asset_data["name"],
|
||||
"task": task,
|
||||
"subset": subset_name
|
||||
})
|
||||
anatomy_data_new.update(
|
||||
{
|
||||
"asset": asset_data["name"],
|
||||
"task": {
|
||||
"name": task,
|
||||
"type": task_type,
|
||||
"short": task_code,
|
||||
},
|
||||
"subset": subset_name,
|
||||
}
|
||||
)
|
||||
|
||||
new_instance.data["label"] = f"{instance_name}"
|
||||
new_instance.data["subset"] = subset_name
|
||||
|
|
|
|||
|
|
@ -31,8 +31,10 @@ class ExtractHarmonyZip(openpype.api.Extractor):
|
|||
|
||||
# Presets
|
||||
create_workfile = True
|
||||
default_task = "harmonyIngest"
|
||||
default_task_type = "Ingest"
|
||||
default_task = {
|
||||
"name": "harmonyIngest",
|
||||
"type": "Ingest",
|
||||
}
|
||||
default_task_status = "Ingested"
|
||||
assetversion_status = "Ingested"
|
||||
|
||||
|
|
@ -220,9 +222,9 @@ class ExtractHarmonyZip(openpype.api.Extractor):
|
|||
anatomy = openpype.api.Anatomy()
|
||||
project_entity = instance.context.data["projectEntity"]
|
||||
|
||||
task_name = instance.data.get("task")
|
||||
task_type = instance.data['tasks'].get(task_name, {}).get('type')
|
||||
task_short = project_entity['config']['tasks'][task_type]['short_name']
|
||||
task_name = instance.data.get("task").get("name")
|
||||
task_type = instance.data.get("task").get("type")
|
||||
task_short = instance.data.get("task").get("short")
|
||||
|
||||
data = {
|
||||
"root": api.registered_root(),
|
||||
|
|
|
|||
|
|
@ -1361,6 +1361,10 @@ def _prepare_last_workfile(data, workdir, workfile_template_key):
|
|||
anatomy = data["anatomy"]
|
||||
# Find last workfile
|
||||
file_template = anatomy.templates["work"]["file"]
|
||||
# Replace {task} by '{task[name]}' for backward compatibility
|
||||
if '{task}' in file_template:
|
||||
file_template = file_template.replace('{task}', '{task[name]}')
|
||||
|
||||
workdir_data.update({
|
||||
"version": 1,
|
||||
"user": get_openpype_username(),
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ class CollectFtrackApi(pyblish.api.ContextPlugin):
|
|||
"Checking entities of instance \"{}\"".format(str(instance))
|
||||
)
|
||||
instance_asset_name = instance.data.get("asset")
|
||||
instance_task_name = instance.data.get("task")
|
||||
instance_task_name = instance.data.get("task").get("name")
|
||||
|
||||
if not instance_asset_name and not instance_task_name:
|
||||
self.log.debug("Instance does not have set context keys.")
|
||||
|
|
|
|||
|
|
@ -54,6 +54,15 @@ class CollectAnatomyContextData(pyblish.api.ContextPlugin):
|
|||
if hierarchy_items:
|
||||
hierarchy = os.path.join(*hierarchy_items)
|
||||
|
||||
task_type = asset_entity['data']['tasks'].get(
|
||||
task_name, {}).get('type')
|
||||
|
||||
if task_type:
|
||||
task_code = project_entity['config']['tasks'][task_type][
|
||||
'short_name']
|
||||
else:
|
||||
task_code = None
|
||||
|
||||
context_data = {
|
||||
"project": {
|
||||
"name": project_entity["name"],
|
||||
|
|
@ -61,7 +70,11 @@ class CollectAnatomyContextData(pyblish.api.ContextPlugin):
|
|||
},
|
||||
"asset": asset_entity["name"],
|
||||
"hierarchy": hierarchy.replace("\\", "/"),
|
||||
"task": task_name,
|
||||
"task": {
|
||||
"name": task_name,
|
||||
"type": task_type,
|
||||
"short": task_code,
|
||||
},
|
||||
"username": context.data["user"],
|
||||
"app": context.data["hostName"]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -238,9 +238,9 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin):
|
|||
anatomy_updates["hierarchy"] = "/".join(parents)
|
||||
|
||||
# Task
|
||||
task_name = instance.data.get("task")
|
||||
if task_name:
|
||||
anatomy_updates["task"] = task_name
|
||||
task_info = instance.data.get("task")
|
||||
if task_info:
|
||||
anatomy_updates["task"] = task_info
|
||||
|
||||
# Additional data
|
||||
resolution_width = instance.data.get("resolutionWidth")
|
||||
|
|
|
|||
|
|
@ -171,19 +171,13 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
|
|||
anatomy_data["hierarchy"] = hierarchy
|
||||
|
||||
# Make sure task name in anatomy data is same as on instance.data
|
||||
task_name = instance.data.get("task")
|
||||
if task_name:
|
||||
anatomy_data["task"] = task_name
|
||||
task_info = instance.data.get("task")
|
||||
if task_info:
|
||||
anatomy_data["task"] = task_info
|
||||
else:
|
||||
# Just set 'task_name' variable to context task
|
||||
task_name = anatomy_data["task"]
|
||||
# Just set 'task_info' variable to context task
|
||||
task_info = anatomy_data["task"]
|
||||
|
||||
# Find task type for current task name
|
||||
# - this should be already prepared on instance
|
||||
asset_tasks = (
|
||||
asset_entity.get("data", {}).get("tasks")
|
||||
) or {}
|
||||
task_info = asset_tasks.get(task_name) or {}
|
||||
task_type = task_info.get("type")
|
||||
instance.data["task_type"] = task_type
|
||||
|
||||
|
|
@ -321,7 +315,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
|
|||
|
||||
key_values = {
|
||||
"families": family,
|
||||
"tasks": task_name,
|
||||
"tasks": task_info.get("name"),
|
||||
"hosts": instance.context.data["hostName"],
|
||||
"task_types": task_type
|
||||
}
|
||||
|
|
@ -804,7 +798,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
|
|||
# data?
|
||||
# - should we use context task in that case?
|
||||
task_name = (
|
||||
instance.data["anatomyData"]["task"]
|
||||
instance.data["anatomyData"]["task"].get("name")
|
||||
or io.Session["AVALON_TASK"]
|
||||
)
|
||||
task_type = instance.data["task_type"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue