labscheduler.sila_server.feature_implementations.schedulingservice_impl module

class labscheduler.sila_server.feature_implementations.schedulingservice_impl.SchedulingServiceImpl(parent_server: Server, scheduler_interface: SchedulerInterface)[source]

Bases: SchedulingServiceBase

ComputeSchedule(WorkflowGraph: WorkflowGraph, MaxComputationTime: float, *, metadata: MetadataDict, instance: ObservableCommandInstance) ComputeSchedule_Responses[source]

Takes a workflow graph (see parameter description) and computes a schedule for the currently configured lab environment (LabConfigurationController) with the currently selected algorithm. You have to give the maximum computation time.

Parameters:
  • WorkflowGraph – The workflow graph of an experiment in the required SiLA structure.

  • MaxComputationTime – Maximum computation time in seconds

  • metadata – The SiLA Client Metadata attached to the call

  • instance – The command instance, enabling sending status updates to subscribed clients

Returns:

A tuple with: - The computed schedule - A string indicating whether the schedule is “optimal”, “feasible”, or “infeasible”

SelectAlgorithm(AlgorithmName: str, *, metadata: MetadataDict) SelectAlgorithm_Responses[source]

Selects the algorithm to be used in the ComputeSchedule command

Parameters:
  • AlgorithmName – Name of the Algorithm

  • metadata – The SiLA Client Metadata attached to the call

_abc_impl = <_abc._abc_data object>
get_AvailableAlgorithms(*, metadata: MetadataDict) list[AlgorithmMetaData][source]

List of algorithm info for all available algorithms

Parameters:

metadata – The SiLA Client Metadata attached to the call

Returns:

List of algorithm info for all available algorithms

get_CurrentAlgorithm(*, metadata: MetadataDict) AlgorithmMetaData[source]

The currently selected algorithm

Parameters:

metadata – The SiLA Client Metadata attached to the call

Returns:

The currently selected algorithm