Source code for plynx.utils.thumbnails

"""Thumbnail utils"""
import logging
from typing import Optional

import plynx.db.node
import plynx.utils.plugin_manager
from plynx.constants import NodeRunningStatus


[docs]def get_thumbnail(output: plynx.db.node.Output) -> Optional[str]: """Apply a single thumbnail""" cls = plynx.utils.plugin_manager.get_resource_manager().kind_to_resource_class[output.file_type] if not cls.DISPLAY_THUMBNAIL: return None return cls.thumbnail(output)
[docs]def apply_thumbnails(node: plynx.db.node.Node): """ Fill thumbnail field of every subnode """ sub_nodes_parameter = node.get_parameter_by_name_safe('_nodes') if not sub_nodes_parameter: logging.warning("no subnodes found in `apply_thumbnails`") return sub_nodes = sub_nodes_parameter.value.value for sub_node in sub_nodes: if NodeRunningStatus.is_succeeded(sub_node.node_running_status): for output in sub_node.outputs: output.thumbnail = get_thumbnail(output) if sub_node._cached_node: for output in sub_node._cached_node.outputs: output.thumbnail = get_thumbnail(output)