Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge pull request #3498 from pypeclub/feature/add_mismatch_target_pl…
Browse files Browse the repository at this point in the history
…ugins_to_report

NewPublisher: Keep plugins with mismatch target in report
  • Loading branch information
iLLiCiTiT authored Jul 14, 2022
2 parents c9c457f + 731aecd commit 8d0c694
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
10 changes: 10 additions & 0 deletions openpype/pipeline/create/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -736,6 +736,7 @@ def __init__(
self.manual_creators = {}

self.publish_discover_result = None
self.publish_plugins_mismatch_targets = []
self.publish_plugins = []
self.plugins_with_defs = []
self._attr_plugins_by_family = {}
Expand Down Expand Up @@ -858,6 +859,7 @@ def reset_plugins(self, discover_publish_plugins=True):
discover_result = DiscoverResult()
plugins_with_defs = []
plugins_by_targets = []
plugins_mismatch_targets = []
if discover_publish_plugins:
discover_result = publish_plugins_discover()
publish_plugins = discover_result.plugins
Expand All @@ -867,11 +869,19 @@ def reset_plugins(self, discover_publish_plugins=True):
plugins_by_targets = pyblish.logic.plugins_by_targets(
publish_plugins, list(targets)
)

# Collect plugins that can have attribute definitions
for plugin in publish_plugins:
if OpenPypePyblishPluginMixin in inspect.getmro(plugin):
plugins_with_defs.append(plugin)

plugins_mismatch_targets = [
plugin
for plugin in publish_plugins
if plugin not in plugins_by_targets
]

self.publish_plugins_mismatch_targets = plugins_mismatch_targets
self.publish_discover_result = discover_result
self.publish_plugins = plugins_by_targets
self.plugins_with_defs = plugins_with_defs
Expand Down
15 changes: 9 additions & 6 deletions openpype/tools/publisher/control.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,15 +154,20 @@ def __init__(self, controller):
self._all_instances_by_id = {}
self._current_context = None

def reset(self, context, publish_discover_result=None):
def reset(self, context, create_context):
"""Reset report and clear all data."""
self._publish_discover_result = publish_discover_result

self._publish_discover_result = create_context.publish_discover_result
self._plugin_data = []
self._plugin_data_with_plugin = []
self._current_plugin_data = {}
self._all_instances_by_id = {}
self._current_context = context

for plugin in create_context.publish_plugins_mismatch_targets:
plugin_data = self._add_plugin_data_item(plugin)
plugin_data["skipped"] = True

def add_plugin_iter(self, plugin, context):
"""Add report about single iteration of plugin."""
for instance in context:
Expand Down Expand Up @@ -205,6 +210,7 @@ def _create_plugin_data_item(self, plugin):
"name": plugin.__name__,
"label": label,
"order": plugin.order,
"targets": list(plugin.targets),
"instances_data": [],
"actions_data": [],
"skipped": False,
Expand Down Expand Up @@ -777,10 +783,7 @@ def _reset_publish(self):
# - pop the key after first collector using it would be safest option?
self._publish_context.data["create_context"] = self.create_context

self._publish_report.reset(
self._publish_context,
self.create_context.publish_discover_result
)
self._publish_report.reset(self._publish_context, self.create_context)
self._publish_validation_errors = []
self._publish_current_plugin_validation_errors = None
self._publish_error = None
Expand Down
10 changes: 8 additions & 2 deletions openpype/tools/publisher/publish_report_viewer/report_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,8 @@ def __init__(self, report_data):

logs = []
plugins_items_by_id = {}
plugins_id_order = []
for plugin_data in data["plugins_data"]:
item = PluginItem(plugin_data)
plugins_id_order.append(item.id)
plugins_items_by_id[item.id] = item
for instance_data_item in plugin_data["instances_data"]:
instance_id = instance_data_item["id"]
Expand All @@ -95,6 +93,14 @@ def __init__(self, report_data):
copy.deepcopy(log_item_data), item.id, instance_id
)
logs.append(log_item)
sorted_plugins = sorted(
plugins_items_by_id.values(),
key=lambda item: item.order
)
plugins_id_order = [
plugin_item.id
for plugin_item in sorted_plugins
]

logs_by_instance_id = collections.defaultdict(list)
for log_item in logs:
Expand Down

0 comments on commit 8d0c694

Please sign in to comment.