mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
fill both 'family' and 'productType'
This commit is contained in:
parent
4a7bc9a571
commit
3afa0e3bca
33 changed files with 67 additions and 31 deletions
|
|
@ -88,11 +88,13 @@ class CollectAERender(publish.AbstractCollectRender):
|
|||
raise ValueError("No file extension set in Render Queue")
|
||||
render_item = render_q[0]
|
||||
|
||||
product_type = "render"
|
||||
instance_families = inst.data.get("families", [])
|
||||
instance_families.append("render")
|
||||
instance_families.append(product_type)
|
||||
product_name = inst.data["productName"]
|
||||
instance = AERenderInstance(
|
||||
productType="render",
|
||||
productType=product_type,
|
||||
family=product_type,
|
||||
families=instance_families,
|
||||
version=version,
|
||||
time="",
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class CollectCelactionInstances(pyblish.api.ContextPlugin):
|
|||
"label": scene_file,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"representations": []
|
||||
})
|
||||
|
|
@ -86,6 +87,7 @@ class CollectCelactionInstances(pyblish.api.ContextPlugin):
|
|||
instance.data.update({
|
||||
"label": "{} - farm".format(product_name),
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"productName": product_name
|
||||
})
|
||||
|
|
|
|||
|
|
@ -356,6 +356,7 @@ class CollectTimelineInstances(pyblish.api.ContextPlugin):
|
|||
"productName": product_name,
|
||||
"folderPath": folder_path,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type]
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ class CollecTimelineOTIO(pyblish.api.ContextPlugin):
|
|||
"folderPath": folder_path,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,9 +59,10 @@ class CollectFusionRender(
|
|||
instance_families = inst.data.get("families", [])
|
||||
product_name = inst.data["productName"]
|
||||
instance = FusionRenderInstance(
|
||||
productType=product_type,
|
||||
tool=tool,
|
||||
workfileComp=comp,
|
||||
productType=product_type,
|
||||
family=product_type,
|
||||
families=instance_families,
|
||||
version=version,
|
||||
time="",
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ class CollectFarmRender(publish.AbstractCollectRender):
|
|||
name=node.split("/")[1],
|
||||
|
||||
productType="render.farm",
|
||||
family="render.farm",
|
||||
families=["render.farm"],
|
||||
farm=True,
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ class CollectInstances(pyblish.api.ContextPlugin):
|
|||
if product_type is None:
|
||||
product_type = data["family"]
|
||||
data["productType"] = product_type
|
||||
data["family"] = product_type
|
||||
|
||||
# skip render farm product type as it is collected separately
|
||||
if product_type == "renderFarm":
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class CollectPalettes(pyblish.api.ContextPlugin):
|
|||
instance.data.update({
|
||||
"id": id,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"folderPath": folder_path,
|
||||
"productName": "{}{}".format("palette", name)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ class CollectWorkfile(pyblish.api.ContextPlugin):
|
|||
"label": basename,
|
||||
"name": basename,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"representations": [],
|
||||
"folderPath": context.data["folderPath"]
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ class CollectFrameTagInstances(pyblish.api.ContextPlugin):
|
|||
"name": name,
|
||||
"label": "{} {}".format(name, product_data["frames"]),
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type, "frame"],
|
||||
"folderPath": product_data["folderPath"],
|
||||
"productName": name,
|
||||
|
|
|
|||
|
|
@ -209,6 +209,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin):
|
|||
"label": label,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type]
|
||||
})
|
||||
|
||||
|
|
@ -267,6 +268,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin):
|
|||
"label": label,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type, "clip"]
|
||||
})
|
||||
# remove review track attr if any
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ class PrecollectWorkfile(pyblish.api.ContextPlugin):
|
|||
),
|
||||
"item": project,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"representations": [workfile_representation, thumb_representation]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,10 +83,12 @@ class CollectUsdBootstrap(pyblish.api.InstancePlugin):
|
|||
)
|
||||
)
|
||||
|
||||
product_type = "usd.bootstrap"
|
||||
new = instance.context.create_instance(product_name)
|
||||
new.data["productName"] = product_name
|
||||
new.data["label"] = "{0} ({1})".format(product_name, asset_name)
|
||||
new.data["productType"] = "usd.bootstrap"
|
||||
new.data["productType"] = product_type
|
||||
new.data["family"] = product_type
|
||||
new.data["comment"] = "Automated bootstrap USD file."
|
||||
new.data["publishFamilies"] = ["usd"]
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ class CollectUsdLayers(pyblish.api.InstancePlugin):
|
|||
layer_inst = context.create_instance(name)
|
||||
|
||||
layer_inst.data["productType"] = product_type
|
||||
layer_inst.data["family"] = product_type
|
||||
layer_inst.data["families"] = [product_type]
|
||||
layer_inst.data["productName"] = "__stub__"
|
||||
layer_inst.data["label"] = label
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ class CollectRender(pyblish.api.InstancePlugin):
|
|||
instance.data["attachTo"] = []
|
||||
renderer_class = get_current_renderer()
|
||||
renderer = str(renderer_class).split(":")[0]
|
||||
product_type = "maxrender"
|
||||
# also need to get the render dir for conversion
|
||||
data = {
|
||||
"folderPath": instance.data["folderPath"],
|
||||
|
|
@ -99,8 +100,9 @@ class CollectRender(pyblish.api.InstancePlugin):
|
|||
"publish": True,
|
||||
"maxversion": str(get_max_version()),
|
||||
"imageFormat": img_format,
|
||||
"productType": 'maxrender',
|
||||
"families": ['maxrender'],
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"renderer": renderer,
|
||||
"source": filepath,
|
||||
"plugin": "3dsmax",
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class CollectVrayScene(pyblish.api.InstancePlugin):
|
|||
frame_end_handle = frame_end_render
|
||||
|
||||
# Get layer specific settings, might be overrides
|
||||
product_type = "vrayscene_layer"
|
||||
data = {
|
||||
"productName": layer_name,
|
||||
"layer": layer_name,
|
||||
|
|
@ -75,8 +76,9 @@ class CollectVrayScene(pyblish.api.InstancePlugin):
|
|||
layer=layer_name)),
|
||||
"renderer": renderer,
|
||||
# instance product type
|
||||
"productType": "vrayscene_layer",
|
||||
"families": ["vrayscene_layer"],
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"time": get_formatted_current_time(),
|
||||
"author": context.data["user"],
|
||||
# Add source to allow tracing back to the scene from
|
||||
|
|
|
|||
|
|
@ -128,18 +128,21 @@ class NukeRenderLocal(publish.Extractor,
|
|||
anatomy_data = instance.data["anatomyData"]
|
||||
# redefinition of families
|
||||
if "render.local" in families:
|
||||
instance.data["family"] = "render"
|
||||
instance.data["productType"] = "render"
|
||||
families.remove("render.local")
|
||||
families.insert(0, "render2d")
|
||||
anatomy_data["family"] = "render"
|
||||
anatomy_data["product"]["type"] = "render"
|
||||
elif "prerender.local" in families:
|
||||
instance.data["family"] = "prerender"
|
||||
instance.data["productType"] = "prerender"
|
||||
families.remove("prerender.local")
|
||||
families.insert(0, "prerender")
|
||||
anatomy_data["family"] = "prerender"
|
||||
anatomy_data["product"]["type"] = "prerender"
|
||||
elif "image.local" in families:
|
||||
instance.data["family"] = "image"
|
||||
instance.data["productType"] = "image"
|
||||
families.remove("image.local")
|
||||
anatomy_data["family"] = "image"
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ class ExtractReviewIntermediates(publish.Extractor):
|
|||
# TODO 'families' should not be included for filtering of outputs
|
||||
families = set(instance.data["families"])
|
||||
|
||||
# add main family to make sure all families are compared
|
||||
# Add product type to families
|
||||
families.add(instance.data["productType"])
|
||||
|
||||
task_type = instance.context.data["taskType"]
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ class CollectAutoImage(pyblish.api.ContextPlugin):
|
|||
instance.data["ids"] = publishable_ids
|
||||
instance.data["publish"] = True
|
||||
instance.data["creator_identifier"] = "auto_image"
|
||||
instance.data["family"] = product_type
|
||||
instance.data["families"] = [product_type]
|
||||
|
||||
if auto_creator["mark_for_review"]:
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ class CollectAutoReview(pyblish.api.ContextPlugin):
|
|||
"name": product_name,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"representations": [],
|
||||
"folderPath": folder_path,
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ class CollectAutoWorkfile(pyblish.api.ContextPlugin):
|
|||
"name": base_name,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"representations": [],
|
||||
"folderPath": folder_path
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ class CollectColorCodedInstances(pyblish.api.ContextPlugin):
|
|||
instance.data["folderPath"] = folder_path
|
||||
instance.data["task"] = task_name
|
||||
instance.data["layer"] = layer
|
||||
instance.data["family"] = product_type
|
||||
instance.data["families"] = [product_type]
|
||||
|
||||
return instance
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin):
|
|||
"folderPath": asset,
|
||||
"productName": product_name,
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": [product_type],
|
||||
"publish": get_publish_attribute(timeline_item)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -28,10 +28,11 @@ class PrecollectWorkfile(pyblish.api.ContextPlugin):
|
|||
instance_data = {
|
||||
"name": "{}_{}".format(asset_name, product_name),
|
||||
"label": "{} {}".format(current_asset_name, product_name),
|
||||
"item": project,
|
||||
"folderPath": current_asset_name,
|
||||
"productName": product_name,
|
||||
"item": project,
|
||||
"productType": "workfile",
|
||||
"family": "workfile",
|
||||
"families": []
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -113,14 +113,16 @@ class CollectTextureSet(pyblish.api.InstancePlugin):
|
|||
representation["stagingDir"] = staging_dir
|
||||
|
||||
# Clone the instance
|
||||
product_type = "image"
|
||||
image_instance = context.create_instance(image_product_name)
|
||||
image_instance[:] = instance[:]
|
||||
image_instance.data.update(copy.deepcopy(dict(instance.data)))
|
||||
image_instance.data["name"] = image_product_name
|
||||
image_instance.data["label"] = image_product_name
|
||||
image_instance.data["productName"] = image_product_name
|
||||
image_instance.data["productType"] = "image"
|
||||
image_instance.data["families"] = ["image", "textures"]
|
||||
image_instance.data["productType"] = product_type
|
||||
image_instance.data["family"] = product_type
|
||||
image_instance.data["families"] = [product_type, "textures"]
|
||||
image_instance.data["representations"] = [representation]
|
||||
|
||||
# Group the textures together in the loader
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ class CollectRenderInstances(pyblish.api.InstancePlugin):
|
|||
seq = s.get('sequence')
|
||||
seq_name = seq.get_name()
|
||||
|
||||
product_type = "render"
|
||||
new_product_name = f"{data.get('productName')}_{seq_name}"
|
||||
new_instance = context.create_instance(
|
||||
new_product_name
|
||||
|
|
@ -67,9 +68,10 @@ class CollectRenderInstances(pyblish.api.InstancePlugin):
|
|||
|
||||
new_data["folderPath"] = seq_name
|
||||
new_data["setMembers"] = seq_name
|
||||
new_data["productType"] = "render"
|
||||
new_data["productName"] = new_product_name
|
||||
new_data["families"] = ["render", "review"]
|
||||
new_data["productType"] = product_type
|
||||
new_data["family"] = product_type
|
||||
new_data["families"] = [product_type, "review"]
|
||||
new_data["parent"] = data.get("parent")
|
||||
new_data["level"] = data.get("level")
|
||||
new_data["output"] = s.get('output')
|
||||
|
|
|
|||
|
|
@ -188,7 +188,8 @@ class CollectSequencesFromJob(pyblish.api.ContextPlugin):
|
|||
|
||||
instance.data.update({
|
||||
"name": str(collection),
|
||||
"productType": families[0], # backwards compatibility / pyblish
|
||||
"productType": families[0],
|
||||
"family": families[0],
|
||||
"families": list(families),
|
||||
"productName": product_name,
|
||||
"folderPath": data.get(
|
||||
|
|
|
|||
|
|
@ -1193,14 +1193,14 @@ class CreatedInstance:
|
|||
|
||||
instance_data = copy.deepcopy(instance_data)
|
||||
|
||||
product_type = instance_data.get("productType", None)
|
||||
if not product_type:
|
||||
product_type = instance_data.get("family", None)
|
||||
product_type = instance_data.get("productType")
|
||||
if product_type is None:
|
||||
product_type = instance_data.get("family")
|
||||
if product_type is None:
|
||||
product_type = creator.product_type
|
||||
product_name = instance_data.get("productName", None)
|
||||
if not product_name:
|
||||
product_name = instance_data.get("subset", None)
|
||||
product_name = instance_data.get("productName")
|
||||
if product_name is None:
|
||||
product_name = instance_data.get("subset")
|
||||
|
||||
return cls(
|
||||
product_type, product_name, instance_data, creator
|
||||
|
|
|
|||
|
|
@ -801,8 +801,9 @@ def create_skeleton_instance_cache(instance):
|
|||
families = ["render", product_type]
|
||||
|
||||
instance_skeleton_data = {
|
||||
"productType": product_type,
|
||||
"productName": data["productName"],
|
||||
"productType": product_type,
|
||||
"family": product_type,
|
||||
"families": families,
|
||||
"folderPath": data["folderPath"],
|
||||
"frameStart": time_data.start,
|
||||
|
|
@ -1085,6 +1086,7 @@ def attach_instances_to_product(attach_to, instances):
|
|||
new_inst["version"] = attach_instance.get("version")
|
||||
new_inst["productName"] = attach_instance.get("productName")
|
||||
new_inst["productType"] = attach_instance.get("productType")
|
||||
new_inst["family"] = attach_instance.get("family")
|
||||
new_inst["append"] = True
|
||||
# don't set subsetGroup if we are attaching
|
||||
new_inst.pop("subsetGroup")
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class RenderInstance(object):
|
|||
time = attr.ib() # time of instance creation (get_formatted_current_time)
|
||||
source = attr.ib() # path to source scene file
|
||||
label = attr.ib() # label to show in GUI
|
||||
family = attr.ib() # product type for pyblish filtering
|
||||
productType = attr.ib() # product type
|
||||
productName = attr.ib() # product name
|
||||
folderPath = attr.ib() # folder path
|
||||
|
|
|
|||
|
|
@ -954,11 +954,11 @@ def get_publish_instance_families(instance):
|
|||
list[str]: List of families.
|
||||
"""
|
||||
|
||||
product_type = instance.data.get("productType")
|
||||
family = instance.data.get("family")
|
||||
families = set(instance.data.get("families") or [])
|
||||
output = []
|
||||
if product_type:
|
||||
output.append(product_type)
|
||||
families.discard(product_type)
|
||||
if family:
|
||||
output.append(family)
|
||||
families.discard(family)
|
||||
output.extend(families)
|
||||
return output
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ class CollectFromCreateContext(pyblish.api.ContextPlugin):
|
|||
"task": in_data["task"],
|
||||
"productName": product_name,
|
||||
"productType": in_data["productType"],
|
||||
"family": in_data["productType"],
|
||||
"families": instance_families,
|
||||
"representations": [],
|
||||
"thumbnailSource": thumbnail_path
|
||||
|
|
|
|||
|
|
@ -33,11 +33,7 @@ class InstanceItem:
|
|||
def __init__(self, instance_id, instance_data, logs_by_instance_id):
|
||||
self._id = instance_id
|
||||
self.label = instance_data.get("label") or instance_data.get("name")
|
||||
|
||||
family = instance_data.get("productType")
|
||||
if not family:
|
||||
family = instance_data.get("family")
|
||||
self.family = family
|
||||
self.family = instance_data.get("family")
|
||||
self.removed = not instance_data.get("exists", True)
|
||||
|
||||
logs = logs_by_instance_id.get(instance_id) or []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue