diff --git a/pype/plugins/global/publish/extract_json.py b/pype/plugins/global/_publish_unused/extract_json.py similarity index 100% rename from pype/plugins/global/publish/extract_json.py rename to pype/plugins/global/_publish_unused/extract_json.py diff --git a/pype/plugins/maya/publish/collect_model.py b/pype/plugins/maya/publish/collect_model.py index fa6a0eee1c..831399339b 100644 --- a/pype/plugins/maya/publish/collect_model.py +++ b/pype/plugins/maya/publish/collect_model.py @@ -26,4 +26,7 @@ class CollectModelData(pyblish.api.InstancePlugin): instance.data['endFrame'] = frame # make ftrack publishable - instance.data["families"] = ['ftrack'] + if instance.data.get('families'): + instance.data['families'].append('ftrack') + else: + instance.data['families'] = ['ftrack'] diff --git a/pype/plugins/maya/publish/collect_review.py b/pype/plugins/maya/publish/collect_review.py index 6ddb550a99..9fb054127e 100644 --- a/pype/plugins/maya/publish/collect_review.py +++ b/pype/plugins/maya/publish/collect_review.py @@ -4,7 +4,7 @@ import pymel.core as pm import pyblish.api import avalon.api -class CollectReviewData(pyblish.api.InstancePlugin): +class CollectReview(pyblish.api.InstancePlugin): """Collect Review data """ @@ -15,12 +15,9 @@ class CollectReviewData(pyblish.api.InstancePlugin): def process(self, instance): - # make ftrack publishable - instance.data["families"] = ['ftrack'] - context = instance.context + self.log.debug('instance: {}'.format(instance)) task = avalon.api.Session["AVALON_TASK"] - # pseudo code # get cameras members = instance.data['setMembers'] @@ -33,7 +30,7 @@ class CollectReviewData(pyblish.api.InstancePlugin): camera = cameras[0] self.log.debug('camera: {}'.format(camera)) - objectset = context.data['objectsets'] + objectset = instance.context.data['objectsets'] reviewable_subset = None reviewable_subset = list(set(members) & set(objectset)) @@ -41,18 +38,34 @@ class CollectReviewData(pyblish.api.InstancePlugin): assert len(reviewable_subset) <= 1, "Multiple subsets for review" self.log.debug('subset for review: {}'.format(reviewable_subset)) - for inst in context: - self.log.debug('instance: {}'.format(instance)) + i = 0 + for inst in instance.context: + data = instance.context[i].data + if inst.name == reviewable_subset[0]: - if inst.data.get('families'): - inst.data['families'].append('review') + if data.get('families'): + data['families'].append('review') else: - inst.data['families'] = ['review'] - inst.data['review_camera'] = camera - self.log.info('adding review family to {}'.format(reviewable_subset)) + data['families'] = ['review'] + self.log.debug('adding review family to {}'.format(reviewable_subset)) + data['review_camera'] = camera + data["publish"] = False + data['startFrameReview'] = instance.data['startFrame'] + data['endFrameReview'] = instance.data['endFrame'] + data['handles'] = instance.data['handles'] + data['step'] = instance.data['step'] + data['fps'] = instance.data['fps'] cmds.setAttr(str(instance) + '.active', 0) - inst.data['publish'] = 0 - inst.data['active'] = 0 + i += 1 + instance.context[i].data.update(data) + instance.data['remove'] = True else: instance.data['subset'] = task + 'Review' instance.data['review_camera'] = camera + instance.data['startFrameReview'] = instance.data['startFrame'] + instance.data['endFrameReview'] = instance.data['endFrame'] + + # make ftrack publishable + instance.data["families"] = ['ftrack'] + + cmds.setAttr(str(instance) + '.active', 1) diff --git a/pype/plugins/maya/publish/extract_quicktime.py b/pype/plugins/maya/publish/extract_quicktime.py index 91bfc9284b..16c8c08e52 100644 --- a/pype/plugins/maya/publish/extract_quicktime.py +++ b/pype/plugins/maya/publish/extract_quicktime.py @@ -37,8 +37,8 @@ class ExtractQuicktime(pype.api.Extractor): # if start and end frames cannot be determined, get them # from Maya timeline - start = instance.data.get("startFrame") - end = instance.data.get("endFrame") + start = instance.data.get("startFrameReview") + end = instance.data.get("endFrameReview") if start is None: start = cmds.playbackOptions(query=True, animationStartTime=True) if end is None: diff --git a/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py b/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py index 6ade81764b..7d2c126af9 100644 --- a/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py +++ b/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py @@ -23,6 +23,7 @@ class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin): version = (0, 1, 0) label = 'Mesh Edge Length Non Zero' actions = [pype.maya.action.SelectInvalidAction] + optional = True __tolerance = 1e-5 diff --git a/pype/plugins/maya/publish/validate_render_image_rule.py b/pype/plugins/maya/publish/validate_render_image_rule.py index 9a718afc13..377dbfeadc 100644 --- a/pype/plugins/maya/publish/validate_render_image_rule.py +++ b/pype/plugins/maya/publish/validate_render_image_rule.py @@ -9,7 +9,7 @@ def get_file_rule(rule): return mel.eval('workspace -query -fileRuleEntry "{}"'.format(rule)) -class ValidateRenderImageRule(pyblish.api.ContextPlugin): +class ValidateRenderImageRule(pyblish.api.InstancePlugin): """Validates "images" file rule is set to "renders/" """ @@ -19,7 +19,7 @@ class ValidateRenderImageRule(pyblish.api.ContextPlugin): hosts = ["maya"] families = ["renderlayer"] - def process(self, context): + def process(self, instance): assert get_file_rule("images") == "renders", ( "Workspace's `images` file rule must be set to: renders"