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.

param WorkflowGraph:

The workflow graph of an experiment in the required SiLA structure.

param MaxComputationTime:

Maximum computation time in seconds

param metadata:

The SiLA Client Metadata attached to the call

param instance:

The command instance, enabling sending status updates to subscribed clients

return:
  • Result: Returns the computed schedule together with a string 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