schrodinger.application.bunsen.gui.dev_tools module

class schrodinger.application.bunsen.gui.dev_tools.HelloWorldTool(call_id: str, args: dict, parent=None)

Bases: Tool

PROVIDER = <schrodinger.application.bunsen.tool.Provider object>
NAME: str = 'hello_world'
DESCRIPTION: str = "A simple tool that returns 'Hello, world!'"
PARAMS: tuple[ToolParam, ...] = (ToolParam(name='name', type='string', description='Name to greet'),)
main(name: str)

The main function is responsible for calling self.sendResponse() itself or in a downstream callback or slot. This allows for both synchronous and asynchronous tool implementations.

class schrodinger.application.bunsen.gui.dev_tools.ProviderType

Bases: Enum

BMI = 1
FS = 2
MAESTRO = 3
class schrodinger.application.bunsen.gui.dev_tools.DevToolsWidget(*args, variant: enum.StrEnum | None = None, **kwargs)

Bases: BaseWidget

Collapsible developer tools section with provider toggles and a WebSocket message log.

initSetUp()

Creates widget from ui and stores it ui_widget.

Suggested subclass use: create and initialize subwidgets, and connect signals.

initLayOut()

Create a vertical layout for the widget (widget_layout) and populate it with two vertical sub-layouts: main_layout and bottom_layout.

If the user has specified the ui data member, insert the resultant ui_widget into main_layout.

If the widget already has a layout defined, this method will produce a warning (but not a traceback). main_layout and bottom_layout will be inserted into the existing widget layout, which will not be the same as widget_layout. It is therefore recommended that this mixin is used only with widgets that do not already have a layout.

Suggested subclass use: create, initialize, and populate layouts.

connectToClient(client: BunsenClient)

Subscribe to WebSocket signals on client.

Disconnects from any previously connected client first.

disconnectFromClient()
onMessageReceived(message: dict)
onWsConnected()
onWsDisconnected()