From c2b37588a647514f76cd6626fb239b9c0d21a203 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 17 Mar 2022 17:24:15 +0100 Subject: [PATCH 1/5] nuke: making better readability --- .../publish/extract_review_data_mov.py | 37 ++++--------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py index 544b9e04da..f5bb03fc69 100644 --- a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py +++ b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py @@ -51,39 +51,18 @@ class ExtractReviewDataMov(openpype.api.Extractor): f_subsets = o_data["filter"]["sebsets"] # test if family found in context - test_families = any([ - # first if exact family set is matching - # make sure only interesetion of list is correct - bool(set(families).intersection(f_families)), - # and if famiies are set at all - # if not then return True because we want this preset - # to be active if nothig is set - bool(not f_families) - ]) + # using intersection to make sure all defined + # families are present in combinantion + test_families = not f_families or any( + set(families).intersection(f_families)) # test task types from filter - test_task_types = any([ - # check if actual task type is defined in task types - # set in preset's filter - bool(task_type in f_task_types), - # and if taskTypes are defined in preset filter - # if not then return True, because we want this filter - # to be active if no taskType is set - bool(not f_task_types) - ]) + test_task_types = not f_task_types or any( + task_type in f_task_types) # test subsets from filter - test_subsets = any([ - # check if any of subset filter inputs - # converted to regex patern is not found in subset - # we keep strict case sensitivity - bool(next(( - s for s in f_subsets - if re.search(re.compile(s), subset) - ), None)), - # but if no subsets were set then make this acuntable too - bool(not f_subsets) - ]) + test_subsets = not f_subsets or any( + re.search(s, subset) for s in f_subsets) # we need all filters to be positive for this # preset to be activated From b2b129d9e89e6daf4e189055e6580310e718df4c Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 18 Mar 2022 13:49:03 +0100 Subject: [PATCH 2/5] nuke: simplification of simplified code --- .../publish/extract_review_data_mov.py | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py index f5bb03fc69..93615fb23d 100644 --- a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py +++ b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py @@ -53,27 +53,18 @@ class ExtractReviewDataMov(openpype.api.Extractor): # test if family found in context # using intersection to make sure all defined # families are present in combinantion - test_families = not f_families or any( - set(families).intersection(f_families)) + if f_families and not any( + set(families).intersection(f_families)): + continue # test task types from filter - test_task_types = not f_task_types or any( - task_type in f_task_types) + if f_task_types and not any( + task_type in f_task_types): + continue # test subsets from filter - test_subsets = not f_subsets or any( - re.search(s, subset) for s in f_subsets) - - # we need all filters to be positive for this - # preset to be activated - test_all = all([ - test_families, - test_task_types, - test_subsets - ]) - - # if it is not positive then skip this preset - if not test_all: + if f_subsets and not any( + re.search(s, subset) for s in f_subsets): continue self.log.info( From 945bdc5a9b8689110c7c6dfd3141b894ee441b50 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 18 Mar 2022 14:04:01 +0100 Subject: [PATCH 3/5] nuke: fixing any to bool - adding family to testing families - adding debug logging for filtering --- .../plugins/publish/extract_review_data_mov.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py index 93615fb23d..22ebdda05d 100644 --- a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py +++ b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py @@ -25,6 +25,8 @@ class ExtractReviewDataMov(openpype.api.Extractor): def process(self, instance): families = instance.data["families"] + families.append(instance.data["family"]) + task_type = instance.context.data["taskType"] subset = instance.data["subset"] self.log.info("Creating staging dir...") @@ -50,6 +52,18 @@ class ExtractReviewDataMov(openpype.api.Extractor): f_task_types = o_data["filter"]["task_types"] f_subsets = o_data["filter"]["sebsets"] + self.log.debug( + "f_families `{}` > families: {}".format( + f_families, families)) + + self.log.debug( + "f_task_types `{}` > task_type: {}".format( + f_task_types, task_type)) + + self.log.debug( + "f_subsets `{}` > subset: {}".format( + f_subsets, subset)) + # test if family found in context # using intersection to make sure all defined # families are present in combinantion @@ -58,7 +72,7 @@ class ExtractReviewDataMov(openpype.api.Extractor): continue # test task types from filter - if f_task_types and not any( + if f_task_types and not bool( task_type in f_task_types): continue From f03e5974931df57e3ac844e690d5f134754c52aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Je=C5=BEek?= Date: Fri, 18 Mar 2022 14:05:32 +0100 Subject: [PATCH 4/5] Update openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py Co-authored-by: Roy Nieterau --- openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py index 22ebdda05d..6f6e07fc28 100644 --- a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py +++ b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py @@ -66,7 +66,7 @@ class ExtractReviewDataMov(openpype.api.Extractor): # test if family found in context # using intersection to make sure all defined - # families are present in combinantion + # families are present in combination if f_families and not any( set(families).intersection(f_families)): continue From 76bef560a6650fcb4efa8a46c79ec8dda42ea4ff Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 21 Mar 2022 12:14:16 +0100 Subject: [PATCH 5/5] nuke: PR comments --- .../nuke/plugins/publish/extract_review_data_mov.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py index 6f6e07fc28..31a8ff18ee 100644 --- a/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py +++ b/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py @@ -24,8 +24,10 @@ class ExtractReviewDataMov(openpype.api.Extractor): outputs = {} def process(self, instance): - families = instance.data["families"] - families.append(instance.data["family"]) + families = set(instance.data["families"]) + + # add main family to make sure all families are compared + families.add(instance.data["family"]) task_type = instance.context.data["taskType"] subset = instance.data["subset"] @@ -67,13 +69,11 @@ class ExtractReviewDataMov(openpype.api.Extractor): # test if family found in context # using intersection to make sure all defined # families are present in combination - if f_families and not any( - set(families).intersection(f_families)): + if f_families and not families.intersection(f_families): continue # test task types from filter - if f_task_types and not bool( - task_type in f_task_types): + if f_task_types and task_type not in f_task_types: continue # test subsets from filter