uf.renderers#

Result rendering system for uf.

Provides smart rendering of function results based on their type, including tables, charts, DataFrames, JSON, and custom renderers.

Functions

get_global_renderer_registry()

Get the global renderer registry.

get_result_renderer(func)

Get the result renderer type for a function.

register_renderer(renderer[, priority])

Register a renderer in the global registry.

register_renderer_for_type(result_type, renderer)

Register a renderer for a specific type.

render_result(result[, renderer_type])

Render a result using the global registry.

result_renderer(renderer_type)

Decorator to specify result renderer for a function.

Classes

ChartRenderer()

Render data suitable for charts.

DataFrameRenderer()

Render pandas DataFrame.

HtmlRenderer()

Render HTML strings.

ImageRenderer()

Render image data.

JsonRenderer()

Render results as formatted JSON.

MarkdownRenderer()

Render markdown strings.

ResultRenderer()

Base class for result renderers.

ResultRendererRegistry()

Registry for result renderers.

TableRenderer()

Render list of dicts as a table.

class uf.renderers.ChartRenderer[source]#

Bases: ResultRenderer

Render data suitable for charts.

can_render(result)[source]#

Can render list of dicts with numeric values.

Return type:

bool

render(result)[source]#

Render as chart data.

Return type:

dict

class uf.renderers.DataFrameRenderer[source]#

Bases: ResultRenderer

Render pandas DataFrame.

can_render(result)[source]#

Can render pandas DataFrame.

Return type:

bool

render(result)[source]#

Render DataFrame as table.

Return type:

dict

class uf.renderers.HtmlRenderer[source]#

Bases: ResultRenderer

Render HTML strings.

can_render(result)[source]#

Can render strings that look like HTML.

Return type:

bool

render(result)[source]#

Render as HTML.

Return type:

dict

class uf.renderers.ImageRenderer[source]#

Bases: ResultRenderer

Render image data.

can_render(result)[source]#

Can render bytes that look like images.

Return type:

bool

render(result)[source]#

Render image as base64.

Return type:

dict

class uf.renderers.JsonRenderer[source]#

Bases: ResultRenderer

Render results as formatted JSON.

can_render(result)[source]#

Can render any JSON-serializable result.

Return type:

bool

render(result)[source]#

Render as formatted JSON.

Return type:

dict

class uf.renderers.MarkdownRenderer[source]#

Bases: ResultRenderer

Render markdown strings.

can_render(result)[source]#

Can render strings that look like markdown.

Return type:

bool

render(result)[source]#

Render as markdown.

Return type:

dict

class uf.renderers.ResultRenderer[source]#

Bases: object

Base class for result renderers.

Subclass this to create custom renderers for specific result types.

can_render(result)[source]#

Check if this renderer can handle the given result.

Parameters:

result (Any) – The function result to render

Return type:

bool

Returns:

True if this renderer can handle the result

render(result)[source]#

Render the result to a displayable format.

Parameters:

result (Any) – The function result to render

Returns:

  • ‘type’: Renderer type (e.g., ‘table’, ‘chart’, ‘json’)

  • ’data’: Rendered data

  • ’options’: Optional rendering options

Return type:

dict

class uf.renderers.ResultRendererRegistry[source]#

Bases: object

Registry for result renderers.

Manages a collection of renderers and selects the appropriate one for each result type.

register(renderer, priority=0)[source]#

Register a renderer.

Parameters:
  • renderer (ResultRenderer) – ResultRenderer instance

  • priority (int) – Higher priority renderers are tried first

Return type:

None

register_for_type(result_type, renderer)[source]#

Register a renderer for a specific type.

Parameters:
  • result_type (Type) – Python type to match

  • renderer (ResultRenderer) – ResultRenderer instance

Return type:

None

render(result, renderer_type=None)[source]#

Render a result using the appropriate renderer.

Parameters:
  • result (Any) – The function result to render

  • renderer_type (Optional[str]) – Optional specific renderer type to use

Return type:

dict

Returns:

Rendered result dictionary

class uf.renderers.TableRenderer[source]#

Bases: ResultRenderer

Render list of dicts as a table.

can_render(result)[source]#

Can render list of dictionaries.

Return type:

bool

render(result)[source]#

Render as table.

Return type:

dict

uf.renderers.get_global_renderer_registry()[source]#

Get the global renderer registry.

Return type:

ResultRendererRegistry

Returns:

The global ResultRendererRegistry instance

uf.renderers.get_result_renderer(func)[source]#

Get the result renderer type for a function.

Parameters:

func (Callable) – Function to check

Return type:

Optional[str]

Returns:

Renderer type string or None

uf.renderers.register_renderer(renderer, priority=0)[source]#

Register a renderer in the global registry.

Parameters:
  • renderer (ResultRenderer) – ResultRenderer instance

  • priority (int) – Higher priority renderers are tried first

Return type:

None

uf.renderers.register_renderer_for_type(result_type, renderer)[source]#

Register a renderer for a specific type.

Parameters:
  • result_type (Type) – Python type to match

  • renderer (ResultRenderer) – ResultRenderer instance

Return type:

None

uf.renderers.render_result(result, renderer_type=None)[source]#

Render a result using the global registry.

Parameters:
  • result (Any) – The function result to render

  • renderer_type (Optional[str]) – Optional specific renderer type to use

Return type:

dict

Returns:

Rendered result dictionary

uf.renderers.result_renderer(renderer_type)[source]#

Decorator to specify result renderer for a function.

Parameters:

renderer_type (str) – Type of renderer to use

Returns:

Decorator function

Example

>>> @result_renderer('table')
... def get_users() -> list[dict]:
...     return [{'name': 'Alice', 'age': 30}]