mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
refactoring complexity
This commit is contained in:
parent
c64040413d
commit
98dc353dcb
1 changed files with 53 additions and 26 deletions
|
|
@ -69,6 +69,14 @@ class CollectLook(pyblish.api.InstancePlugin):
|
|||
# Ignore specifically named sets (check with endswith)
|
||||
IGNORE = ["out_SET", "controls_SET", "_INST"]
|
||||
|
||||
def process(self, instance):
|
||||
"""Collect the Look in the instance with the correct layer settings"""
|
||||
|
||||
layer = instance.data.get("renderlayer", "defaultRenderLayer")
|
||||
with context.renderlayer(layer):
|
||||
self.log.info("Checking out layer: {0}".format(layer))
|
||||
self.collect(instance)
|
||||
|
||||
def collect(self, instance):
|
||||
|
||||
# Whether to log information verbosely
|
||||
|
|
@ -123,7 +131,7 @@ class CollectLook(pyblish.api.InstancePlugin):
|
|||
node_sets = [s for s in node_sets if s not in view_sets]
|
||||
|
||||
if verbose:
|
||||
self.log.debug("After filtering view sets {0}".format(node_sets))
|
||||
self.log.debug("After filtering view sets %s" % node_sets)
|
||||
|
||||
self.log.info("Found sets {0} for {1}".format(node_sets, node))
|
||||
|
||||
|
|
@ -140,30 +148,18 @@ class CollectLook(pyblish.api.InstancePlugin):
|
|||
|
||||
self.log.info("Gathering set relations..")
|
||||
for objset in sets:
|
||||
|
||||
self.log.debug("From %s.." % objset)
|
||||
content = cmds.sets(objset, query=True)
|
||||
objset_members = sets[objset]["members"]
|
||||
for member in cmds.ls(content, long=True, absoluteName=True):
|
||||
|
||||
node, components = (member.rsplit(".", 1) + [None])[:2]
|
||||
|
||||
# Only include valid members of the instance
|
||||
if node not in instance_lookup:
|
||||
if verbose:
|
||||
self.log.info("Skipping member %s" % member)
|
||||
member_data = self.collect_member_data(member,
|
||||
objset_members,
|
||||
instance_lookup,
|
||||
verbose)
|
||||
if not member_data:
|
||||
continue
|
||||
|
||||
if member in [m["name"] for m in sets[objset]["members"]]:
|
||||
continue
|
||||
|
||||
if verbose:
|
||||
self.log.debug("Such as %s.." % member)
|
||||
|
||||
member_data = {"name": node, "uuid": id_utils.get_id(node)}
|
||||
|
||||
# Include components information when components are assigned
|
||||
if components:
|
||||
member_data["components"] = components
|
||||
|
||||
sets[objset]["members"].append(member_data)
|
||||
|
||||
# Remove sets that didn't have any members assigned in the end
|
||||
|
|
@ -212,10 +208,41 @@ class CollectLook(pyblish.api.InstancePlugin):
|
|||
|
||||
self.log.info("Collected look for %s" % instance)
|
||||
|
||||
def process(self, instance):
|
||||
"""Collect the Look in the instance with the correct layer settings"""
|
||||
def collect_member_data(self, member, objset_members, instance_members,
|
||||
verbose=False):
|
||||
"""Get all information of the node
|
||||
Args:
|
||||
member (str): the name of the node to check
|
||||
objset_members (list): the objectSet members
|
||||
instance_members (set): the collected instance members
|
||||
verbose (bool): get debug information
|
||||
|
||||
Returns:
|
||||
dict
|
||||
|
||||
"""
|
||||
|
||||
node, components = (member.rsplit(".", 1) + [None])[:2]
|
||||
|
||||
# Only include valid members of the instance
|
||||
if node not in instance_members:
|
||||
if verbose:
|
||||
self.log.info("Skipping member %s" % member)
|
||||
return
|
||||
|
||||
if member in [m["name"] for m in objset_members]:
|
||||
return
|
||||
|
||||
if verbose:
|
||||
self.log.debug("Such as %s.." % member)
|
||||
|
||||
member_data = {"name": node, "uuid": id_utils.get_id(node)}
|
||||
|
||||
# Include components information when components are assigned
|
||||
if components:
|
||||
member_data["components"] = components
|
||||
|
||||
return member_data
|
||||
|
||||
|
||||
|
||||
layer = instance.data.get("renderlayer", "defaultRenderLayer")
|
||||
with context.renderlayer(layer):
|
||||
self.log.info("Checking out layer: {0}".format(layer))
|
||||
self.collect(instance)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue