Skip to content

Commit

Permalink
Address feedback from PR.
Browse files Browse the repository at this point in the history
  • Loading branch information
robin-ynput committed Oct 23, 2024
1 parent 859db3e commit 7fd74fb
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 42 deletions.
11 changes: 0 additions & 11 deletions client/ayon_hiero/api/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,17 +93,6 @@ def install(self):
# register hiero events
events.register_hiero_events()

def uninstall(self):
"""
Uninstalling Hiero integration for avalon
"""
log.info("Deregistering Hiero plug-ins..")
pyblish.deregister_host("hiero")
pyblish.deregister_plugin_path(PUBLISH_PATH)
deregister_loader_plugin_path(LOAD_PATH)
deregister_creator_plugin_path(CREATE_PATH)

def get_context_data(self):
# TODO: implement to support persisting context attributes
return {}
Expand Down
56 changes: 35 additions & 21 deletions client/ayon_hiero/api/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
LoaderPlugin,
)
from ayon_core.pipeline.load import get_representation_path_from_context
from ayon_core.settings import get_current_project_settings

from . import lib

Expand Down Expand Up @@ -388,7 +389,7 @@ def __init__(self, cls, context, path, **options):
""" Initialize object
Arguments:
cls (avalon.api.Loader): plugin object
cls (ayon_core.api.Loader): plugin object
context (dict): loader plugin context
options (dict)[optional]: possible keys:
projectBinPath: "path/to/binItem"
Expand Down Expand Up @@ -599,6 +600,8 @@ def load(self):


class HiddenHieroCreator(HiddenCreator):
"""HiddenCreator class wrapper
"""
host_name = "hiero"
settings_category = "hiero"

Expand All @@ -615,10 +618,23 @@ def remove_instances(self, instances):
class HieroCreator(Creator):
"""Creator class wrapper
"""

host_name = "hiero"
settings_category = "hiero"

def create(self, subset_name, instance_data, pre_create_data):
def __init__(self, *args, **kwargs):
super(Creator, self).__init__(*args, **kwargs)
self.presets = get_current_project_settings()[
"hiero"]["create"].get(self.__class__.__name__, {})

def create(self, product_name, instance_data, pre_create_data):
"""Prepare data for new instance creation.
Args:
product_name(str): Product name of created instance.
instance_data(dict): Base data for instance.
pre_create_data(dict): Data based on pre creation attributes.
Those may affect how creator works.
"""
# adding basic current context resolve objects
self.project = lib.get_current_project()
self.sequence = lib.get_current_sequence()
Expand Down Expand Up @@ -658,9 +674,9 @@ class PublishClip:
rename_default = False
hierarchy_default = "{_folder_}/{_sequence_}/{_track_}"
clip_name_default = "shot_{_trackIndex_:0>3}_{_clipIndex_:0>4}"
subset_name_default = "<track_name>"
product_name_default = "<track_name>"
review_track_default = "< none >"
subset_family_default = "plate"
product_type_default = "plate"
count_from_default = 10
count_steps_default = 10
vertical_sync_default = False
Expand All @@ -682,7 +698,7 @@ def __init__(
self,
track_item,
pre_create_data=None,
avalon=None,
data=None,
rename_index=0):

self.rename_index = rename_index
Expand All @@ -706,9 +722,9 @@ def __init__(
self.track_name = str(track_name).replace(" ", "_")
self.track_index = int(track_item.parent().trackIndex())

# adding tag.family into tag
if avalon:
self.tag_data.update(avalon)
# adding instance_data["productType"] into tag
if data:
self.tag_data.update(data)

# add publish attribute to tag data
self.tag_data.update({"publish": True})
Expand Down Expand Up @@ -739,15 +755,15 @@ def convert(self):
if self.rename:
# rename track item
self.track_item.setName(new_name)
self.tag_data["asset"] = new_name
self.tag_data["folderName"] = new_name
else:
self.tag_data["asset"] = self.ti_name
self.tag_data["folderName"] = self.ti_name
self.tag_data["hierarchyData"]["shot"] = self.ti_name

# AYON unique identifier
folder_path = "/{}/{}".format(
self.tag_data["hierarchy"],
self.tag_data["asset"]
self.tag_data["folderName"]
)
self.tag_data["folderPath"] = folder_path

Expand Down Expand Up @@ -792,8 +808,8 @@ def get(key):
self.hierarchy = get("hierarchy") or self.hierarchy_default
self.count_from = get("countFrom") or self.count_from_default
self.count_steps = get("countSteps") or self.count_steps_default
self.subset_name = get("subsetName") or self.subset_name_default
self.subset_family = get("subsetFamily") or self.subset_family_default
self.product_name = get("productName") or self.product_name_default
self.product_type = get("productType") or self.product_type_default
self.vertical_sync = get("vSyncOn") or self.vertical_sync_default
self.driving_layer = get("vSyncTrack") or self.driving_layer_default
self.review_track = get("reviewTrack") or self.review_track_default
Expand All @@ -805,12 +821,12 @@ def get(key):
}

# build product name from layer name
if self.subset_name == "<track_name>":
self.subset_name = self.track_name
if self.product_name == "<track_name>":
self.product_name = self.track_name

# create product for publishing
self.product_name = (
self.subset_family + self.subset_name.capitalize()
self.product_type + self.product_name.capitalize()
)

def _replace_hash_to_expression(self, name, text):
Expand Down Expand Up @@ -898,7 +914,7 @@ def _convert_to_tag_data(self):
hero_data["productName"] = self.product_name + str(
self.track_index)
# in case track name and product name is the same then add
if self.subset_name == self.track_name:
if self.product_name == self.track_name:
hero_data["productName"] = self.product_name
# assign data to return hierarchy data to tag
tag_hierarchy_data = hero_data
Expand Down Expand Up @@ -930,9 +946,7 @@ def _solve_tag_hierarchy_data(self, hierarchy_formatting_data):
"parents": self.parents,
"hierarchyData": hierarchy_formatting_data,
"productName": self.product_name,
"productType": self.subset_family,
# TODO: investigate
# "families": [self.subset_family, self.data["productType"]]
"productType": self.product_type
}

def _convert_to_entity(self, src_type, template):
Expand Down
4 changes: 2 additions & 2 deletions client/ayon_hiero/plugins/create/create_shot_clip.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ def create(self, subset_name, instance_data, pre_create_data):
track_item,
pre_create_data=pre_create_data,
rename_index=idx,
avalon=instance_data)
data=instance_data)

track_item = publish_clip.convert()
if track_item is None:
Expand Down Expand Up @@ -642,7 +642,7 @@ def _collect_legacy_instance(self, track_item):
"tag.sourceResolution": ("sourceResolution", bool),
"tag.hierarchy": ("hierarchy", str),
"tag.hierarchyData": ("hierarchyData", json),
"tag.asset_name": ("asset", str),
"tag.asset_name": ("folderName", str),
"tag.active": ("active", bool),
"tag.productName": ("productName", str),
"tag.parents": ("parents", json),
Expand Down
11 changes: 3 additions & 8 deletions client/ayon_hiero/plugins/create/create_workfile.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# -*- coding: utf-8 -*-
"""Creator plugin for creating workfiles."""
import ayon_api

from ayon_core.pipeline.create import CreatedInstance, AutoCreator

from ayon_hiero.api import tags
Expand Down Expand Up @@ -58,12 +56,9 @@ def _create_new_instance(self):
host_name = self.create_context.host_name
variant = self.default_variant

folder_entity = ayon_api.get_folder_by_path(
project_name, folder_path
)
task_entity = ayon_api.get_task_by_name(
project_name, folder_entity["id"], task_name
)
folder_entity = self.create_context.get_current_folder_entity()
task_entity = self.create_context.get_current_task_entity()

product_name = self.get_product_name(
project_name,
folder_entity,
Expand Down

0 comments on commit 7fd74fb

Please sign in to comment.