data
logger
¶
pretty_print_data(kiara, value_id, target_type='terminal_renderable', **render_config)
¶
Source code in kiara/utils/data.py
def pretty_print_data(
kiara: "Kiara",
value_id: uuid.UUID,
target_type="terminal_renderable",
**render_config: Any,
) -> Any:
value = kiara.data_registry.get_value(value_id=value_id)
op_type: PrettyPrintOperationType = kiara.operation_registry.get_operation_type("pretty_print") # type: ignore
try:
op: Optional[Operation] = op_type.get_operation_for_render_combination(
source_type=value.value_schema.type, target_type=target_type
)
except Exception as e:
logger.debug(
"error.pretty_print",
source_type=value.value_schema.type,
target_type=target_type,
error=e,
)
op = None
if target_type == "terminal_renderable":
try:
op = op_type.get_operation_for_render_combination(
source_type="any", target_type="string"
)
except Exception:
pass
if op is None:
raise Exception(
f"Can't find operation to render '{value.value_schema.type}' as '{target_type}."
)
result = op.run(kiara=kiara, inputs={"value": value})
rendered = result.get_value_data("rendered_value")
return rendered
render_value(kiara, value_id, target_type='terminal_renderable', render_instruction=None)
¶
Source code in kiara/utils/data.py
def render_value(
kiara: "Kiara",
value_id: uuid.UUID,
target_type="terminal_renderable",
render_instruction: Optional[RenderInstruction] = None,
) -> RenderValueResult:
value = kiara.data_registry.get_value(value_id=value_id)
op_type: RenderValueOperationType = kiara.operation_registry.get_operation_type("render_value") # type: ignore
ops = op_type.get_render_operations_for_source_type(value.data_type_name)
if target_type not in ops.keys():
if not ops:
msg = f"No render operations registered for source type '{value.data_type_name}'."
else:
msg = f"Registered target types for source type '{value.data}': {', '.join(ops.keys())}."
raise Exception(
f"No render operation for source type '{value.data_type_name}' to target type '{target_type}' registered. {msg}"
)
op = ops[target_type]
result = op.run(
kiara=kiara, inputs={"value": value, "render_instruction": render_instruction}
)
return RenderValueResult(
rendered=result.get_value_data("rendered_value"),
metadata=result.get_value_data("render_metadata"),
)