Source code for ewoksorange.gui.owwidgets.summarizers
"""
Summarizers for Orange signal display integration.
"""
from ...orange_version import ORANGE_VERSION
if ORANGE_VERSION == ORANGE_VERSION.oasys_fork:
summarize = None
PartialSummary = None
else:
from orangewidget.utils.signals import PartialSummary
from orangewidget.utils.signals import summarize
from ewokscore.variable import Variable
if summarize is not None:
[docs]
@summarize.register(Variable)
def summarize_variable(var: Variable) -> PartialSummary:
"""
Provide a short summary for a Ewoks Variable instance for the Orange UI.
:param var: The Variable to summarize.
:return: PartialSummary describing the variable.
"""
if not var.is_missing():
return summarize(var.value)
summary = details = str(var.value)
return PartialSummary(summary, details)
[docs]
@summarize.register(object)
def summarize_object(value: object) -> PartialSummary:
"""
Provide a default summary for arbitrary objects for the Orange UI.
:param value: The object to summarize.
:return: PartialSummary describing the object's type.
"""
value_type = type(value)
summary = value_type.__name__
details = f"{value_type.__module__}.{value_type.__name__}: \n{value!r}"
return PartialSummary(summary, details)
[docs]
@summarize.register(type)
def summarize_type(value: type) -> PartialSummary:
"""
Provide a default summary for arbitrary types for the Orange UI.
:param value: The type to summarize.
:return: PartialSummary describing the type.
"""
summary = value.__name__
details = f"{value.__module__}.{value.__name__}"
return PartialSummary(summary, details)