mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
use client functions to query data in standalone publisher plugins
This commit is contained in:
parent
153491f781
commit
9cb5372d69
4 changed files with 33 additions and 39 deletions
|
|
@ -3,7 +3,7 @@ import json
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
from openpype.lib import get_subset_name_with_asset_doc
|
from openpype.lib import get_subset_name_with_asset_doc
|
||||||
from openpype.pipeline import legacy_io
|
from openpype.client import get_asset_by_name
|
||||||
|
|
||||||
|
|
||||||
class CollectBulkMovInstances(pyblish.api.InstancePlugin):
|
class CollectBulkMovInstances(pyblish.api.InstancePlugin):
|
||||||
|
|
@ -24,12 +24,9 @@ class CollectBulkMovInstances(pyblish.api.InstancePlugin):
|
||||||
|
|
||||||
def process(self, instance):
|
def process(self, instance):
|
||||||
context = instance.context
|
context = instance.context
|
||||||
|
project_name = context.data["projectEntity"]["name"]
|
||||||
asset_name = instance.data["asset"]
|
asset_name = instance.data["asset"]
|
||||||
|
asset_doc = get_asset_by_name(project_name, asset_name)
|
||||||
asset_doc = legacy_io.find_one({
|
|
||||||
"type": "asset",
|
|
||||||
"name": asset_name
|
|
||||||
})
|
|
||||||
if not asset_doc:
|
if not asset_doc:
|
||||||
raise AssertionError((
|
raise AssertionError((
|
||||||
"Couldn't find Asset document with name \"{}\""
|
"Couldn't find Asset document with name \"{}\""
|
||||||
|
|
@ -52,7 +49,7 @@ class CollectBulkMovInstances(pyblish.api.InstancePlugin):
|
||||||
self.subset_name_variant,
|
self.subset_name_variant,
|
||||||
task_name,
|
task_name,
|
||||||
asset_doc,
|
asset_doc,
|
||||||
legacy_io.Session["AVALON_PROJECT"]
|
project_name
|
||||||
)
|
)
|
||||||
instance_name = f"{asset_name}_{subset_name}"
|
instance_name = f"{asset_name}_{subset_name}"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import re
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
from openpype.pipeline import legacy_io
|
from openpype.client import get_asset_by_id, get_project
|
||||||
|
|
||||||
|
|
||||||
class CollectHierarchyInstance(pyblish.api.ContextPlugin):
|
class CollectHierarchyInstance(pyblish.api.ContextPlugin):
|
||||||
|
|
@ -61,27 +61,32 @@ class CollectHierarchyInstance(pyblish.api.ContextPlugin):
|
||||||
**instance.data["anatomyData"])
|
**instance.data["anatomyData"])
|
||||||
|
|
||||||
def create_hierarchy(self, instance):
|
def create_hierarchy(self, instance):
|
||||||
parents = list()
|
asset_doc = instance.context.data["assetEntity"]
|
||||||
hierarchy = list()
|
project_doc = instance.context.data["projectEntity"]
|
||||||
visual_hierarchy = [instance.context.data["assetEntity"]]
|
project_name = project_doc["name"]
|
||||||
|
visual_hierarchy = [asset_doc]
|
||||||
|
current_doc = asset_doc
|
||||||
while True:
|
while True:
|
||||||
visual_parent = legacy_io.find_one(
|
visual_parent_id = current_doc["data"]["visualParent"]
|
||||||
{"_id": visual_hierarchy[-1]["data"]["visualParent"]}
|
visual_parent = None
|
||||||
)
|
if visual_parent_id:
|
||||||
if visual_parent:
|
visual_parent = get_asset_by_id(project_name, visual_parent_id)
|
||||||
visual_hierarchy.append(visual_parent)
|
|
||||||
else:
|
if not visual_parent:
|
||||||
visual_hierarchy.append(
|
visual_hierarchy.append(project_doc)
|
||||||
instance.context.data["projectEntity"])
|
|
||||||
break
|
break
|
||||||
|
visual_hierarchy.append(visual_parent)
|
||||||
|
current_doc = visual_parent
|
||||||
|
|
||||||
# add current selection context hierarchy from standalonepublisher
|
# add current selection context hierarchy from standalonepublisher
|
||||||
|
parents = list()
|
||||||
for entity in reversed(visual_hierarchy):
|
for entity in reversed(visual_hierarchy):
|
||||||
parents.append({
|
parents.append({
|
||||||
"entity_type": entity["data"]["entityType"],
|
"entity_type": entity["data"]["entityType"],
|
||||||
"entity_name": entity["name"]
|
"entity_name": entity["name"]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
hierarchy = list()
|
||||||
if self.shot_add_hierarchy:
|
if self.shot_add_hierarchy:
|
||||||
parent_template_patern = re.compile(r"\{([a-z]*?)\}")
|
parent_template_patern = re.compile(r"\{([a-z]*?)\}")
|
||||||
# fill the parents parts from presets
|
# fill the parents parts from presets
|
||||||
|
|
@ -129,9 +134,8 @@ class CollectHierarchyInstance(pyblish.api.ContextPlugin):
|
||||||
self.log.debug(f"Hierarchy: {hierarchy}")
|
self.log.debug(f"Hierarchy: {hierarchy}")
|
||||||
self.log.debug(f"parents: {parents}")
|
self.log.debug(f"parents: {parents}")
|
||||||
|
|
||||||
|
tasks_to_add = dict()
|
||||||
if self.shot_add_tasks:
|
if self.shot_add_tasks:
|
||||||
tasks_to_add = dict()
|
|
||||||
project_doc = legacy_io.find_one({"type": "project"})
|
|
||||||
project_tasks = project_doc["config"]["tasks"]
|
project_tasks = project_doc["config"]["tasks"]
|
||||||
for task_name, task_data in self.shot_add_tasks.items():
|
for task_name, task_data in self.shot_add_tasks.items():
|
||||||
_task_data = deepcopy(task_data)
|
_task_data = deepcopy(task_data)
|
||||||
|
|
@ -150,9 +154,7 @@ class CollectHierarchyInstance(pyblish.api.ContextPlugin):
|
||||||
task_name,
|
task_name,
|
||||||
list(project_tasks.keys())))
|
list(project_tasks.keys())))
|
||||||
|
|
||||||
instance.data["tasks"] = tasks_to_add
|
instance.data["tasks"] = tasks_to_add
|
||||||
else:
|
|
||||||
instance.data["tasks"] = dict()
|
|
||||||
|
|
||||||
# updating hierarchy data
|
# updating hierarchy data
|
||||||
instance.data["anatomyData"].update({
|
instance.data["anatomyData"].update({
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import collections
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
from pprint import pformat
|
from pprint import pformat
|
||||||
|
|
||||||
from openpype.pipeline import legacy_io
|
from openpype.client import get_assets
|
||||||
|
|
||||||
|
|
||||||
class CollectMatchingAssetToInstance(pyblish.api.InstancePlugin):
|
class CollectMatchingAssetToInstance(pyblish.api.InstancePlugin):
|
||||||
|
|
@ -119,8 +119,9 @@ class CollectMatchingAssetToInstance(pyblish.api.InstancePlugin):
|
||||||
|
|
||||||
def _asset_docs_by_parent_id(self, instance):
|
def _asset_docs_by_parent_id(self, instance):
|
||||||
# Query all assets for project and store them by parent's id to list
|
# Query all assets for project and store them by parent's id to list
|
||||||
|
project_name = instance.context.data["projectEntity"]["name"]
|
||||||
asset_docs_by_parent_id = collections.defaultdict(list)
|
asset_docs_by_parent_id = collections.defaultdict(list)
|
||||||
for asset_doc in legacy_io.find({"type": "asset"}):
|
for asset_doc in get_assets(project_name):
|
||||||
parent_id = asset_doc["data"]["visualParent"]
|
parent_id = asset_doc["data"]["visualParent"]
|
||||||
asset_docs_by_parent_id[parent_id].append(asset_doc)
|
asset_docs_by_parent_id[parent_id].append(asset_doc)
|
||||||
return asset_docs_by_parent_id
|
return asset_docs_by_parent_id
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
import pyblish.api
|
import pyblish.api
|
||||||
|
|
||||||
from openpype.pipeline import (
|
from openpype.client import get_assets
|
||||||
PublishXmlValidationError,
|
from openpype.pipeline import PublishXmlValidationError
|
||||||
legacy_io,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ValidateTaskExistence(pyblish.api.ContextPlugin):
|
class ValidateTaskExistence(pyblish.api.ContextPlugin):
|
||||||
|
|
@ -20,15 +18,11 @@ class ValidateTaskExistence(pyblish.api.ContextPlugin):
|
||||||
for instance in context:
|
for instance in context:
|
||||||
asset_names.add(instance.data["asset"])
|
asset_names.add(instance.data["asset"])
|
||||||
|
|
||||||
asset_docs = legacy_io.find(
|
project_name = context.data["projectEntity"]["name"]
|
||||||
{
|
asset_docs = get_assets(
|
||||||
"type": "asset",
|
project_name,
|
||||||
"name": {"$in": list(asset_names)}
|
asset_names=asset_names,
|
||||||
},
|
fields=["name", "data.tasks"]
|
||||||
{
|
|
||||||
"name": 1,
|
|
||||||
"data.tasks": 1
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
tasks_by_asset_names = {}
|
tasks_by_asset_names = {}
|
||||||
for asset_doc in asset_docs:
|
for asset_doc in asset_docs:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue