radioviz.typing.tool_types

Typing protocols for tools and related components.

This module defines minimal typing contracts used to decouple tool discovery and registration from concrete tool implementations while still enabling strict typing for in-house tools.

Classes

ToolProtocol(*args, **kwargs)

Minimal protocol implemented by tool definitions.

ToolSessionProtocol(*args, **kwargs)

Minimal protocol for tool sessions tracked during workspace restoration.

class radioviz.typing.tool_types.ToolProtocol(*args, **kwargs)[source]

Bases: Protocol

Minimal protocol implemented by tool definitions.

This protocol is used for plugin discovery where strict generic typing may not be available.

Variables:
  • tool_id (str) – Unique identifier for the tool.

  • name (str) – Human-readable tool name.

  • description (str) – Short description for the UI.

  • windows_to_be_registered (list[WindowSpec]) – Window specs registered by the tool.

  • overlays_to_be_registered (list[OverlaySpec]) – Overlay specs registered by the tool.

create_controller(ctx: ToolContext) ToolController[Any, Any][source]

Create the tool controller for this tool.

Parameters:

ctx (ToolContext) – Tool context providing access to application services.

Returns:

The controller instance for this tool.

Return type:

ToolController[Any, Any]

class radioviz.typing.tool_types.ToolSessionProtocol(*args, **kwargs)[source]

Bases: Protocol

Minimal protocol for tool sessions tracked during workspace restoration.

Variables:

session_id (UUID) – Unique identifier of the session.