mdadash.backend.kernel.manager

Manager that manages the jupyter_client’s AsyncKernelManager

Classes

KernelManager(sm, sio)

Kernel Manager

class mdadash.backend.kernel.manager.KernelManager(sm: StateManager, sio: AsyncServer)[source]

Bases: object

Kernel Manager

This class is responsible for managing the AsyncKernelManager (async kernel) that runs all the MDAnalysis code. It takes care of starting the async kernel, stopping it and communicating with it. It interfaces with the CommHandler on the kernel side for messaging.

Parameters:
  • sm (StateManager) – Instance of the state manager

  • sio (socketio.AsyncServer) – Instance of the socket.io server

async add_widget_instance(uid: int, widget_name: str) dict[source]

Add widget instance

Parameters:
  • uid (int) – Universe ID (index into universes array)

  • widget_name (str) – Widget name to create an instance for

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async connect_to_simulations() dict[source]

Connect to the MD simulation

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async disconnect_from_simulations() dict[source]

Disconnect from the MD simulation

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async duplicate_widget_instance(uid: int, widget_uuid: str) dict[source]

Duplicate widget instance

Parameters:
  • uid (int) – Universe ID (index into universes array)

  • widget_uuid (str) – UUID of the widget instance to be duplicated

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async execute_code(code: str, timeout: int = 5) str[source]

Execute code in the kernel

Parameters:
  • code (str) – Code to execute in the kernel

  • timeout (int) – Timeout in seconds (default: 5)

Returns:

response – A string representation of the output of the code executed

Return type:

str

async get_available_widgets() dict[source]

Get list of available widgets

Returns:

response – List of widget names and descriptions

Return type:

dict

async get_widget_details(widget_uuid: str) dict[source]

Get widget details

Get the widget name, description and inputs

Parameters:

widget_uuid (str) – UUID of the widget instance

Returns:

response – Response dict containing name, desc and inputs

Return type:

dict

async pause_simulations() dict[source]

Pause MD simulations

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async remove_widget_instance(widget_uuid: str) dict[source]

Remove widget instance

Parameters:

widget_uuid (str) – UUID of the widget instance to be removed

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async resume_simulations() dict[source]

Resume MD simulations

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async send_message(msg_type: str, data: dict) None[source]

Send message to kernel and don’t await a response

Parameters:
  • msg_type (str) – A message type string that the kernel has a handler registered for

  • data (dict) – Dict that gets passed to the handler in the kernel

async send_message_await_response(msg_type: str, data: dict = None, timeout: int = 5) dict | None[source]

Send message to kernel and wait for a response (async)

Parameters:
  • msg_type (str) – A message type string that the kernel has a handler registered for

  • data (dict) – Dict that gets passed to the handler in the kernel (default: None)

  • timeout (int) – Timeout in seconds (default: 5)

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

message

An error message string when status is ‘error’

Return type:

dict

async set_widget_input(widget_uuid: str, attribute: str, value: Any) dict[source]

Set widget input

Set the widget input value for given attribute

Parameters:
  • widget_uuid (str) – UUID of the widget instance

  • attribute (str) – The attribtue to set in the instance

  • value (Any) – The value to set for the above attribute

Returns:

response – Response dict indicating status. This has the following keys:

status

String indication status: ‘ok’ or ‘error’

Return type:

dict

async start() None[source]

Start the async kernel

async stop() None[source]

Stop the async kernel