laborchestrator.workflowgraph module

This is a wrapper for a networkx workflow graph. It adds some convenient functionalities

class laborchestrator.workflowgraph.Assignment[source]

Bases: object

machine_assignments: Dict[str, str]
machine_prior: List[str]
start: datetime
class laborchestrator.workflowgraph.Edge(Head, Tail, WaitCost, MaxWaitingTime, MinWaitingTime)[source]

Bases: NamedTuple

Head: str

Alias for field number 0

MaxWaitingTime: float | None

Alias for field number 3

MinWaitingTime: float | None

Alias for field number 4

Tail: str

Alias for field number 1

WaitCost: float | None

Alias for field number 2

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {'MaxWaitingTime': None, 'MinWaitingTime': None, 'WaitCost': None}
_fields = ('Head', 'Tail', 'WaitCost', 'MaxWaitingTime', 'MinWaitingTime')
classmethod _make(iterable)

Make a new Edge object from a sequence or iterable

_replace(**kwds)

Return a new Edge object replacing specified fields with new values

class laborchestrator.workflowgraph.Graph(Nodes, Edges)[source]

Bases: NamedTuple

Edges: List[Edge]

Alias for field number 1

Nodes: List[Node]

Alias for field number 0

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('Nodes', 'Edges')
classmethod _make(iterable)

Make a new Graph object from a sequence or iterable

_replace(**kwds)

Return a new Graph object replacing specified fields with new values

class laborchestrator.workflowgraph.Node(Idx, Duration, RequiredResources, StartTime, Finish, WaitToStartCost)[source]

Bases: NamedTuple

Duration: float

Alias for field number 1

Finish: str

Alias for field number 4

Idx: str

Alias for field number 0

RequiredResources: List[Resource]

Alias for field number 2

StartTime: str

Alias for field number 3

WaitToStartCost: float | None

Alias for field number 5

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {'WaitToStartCost': None}
_fields = ('Idx', 'Duration', 'RequiredResources', 'StartTime', 'Finish', 'WaitToStartCost')
classmethod _make(iterable)

Make a new Node object from a sequence or iterable

_replace(**kwds)

Return a new Node object replacing specified fields with new values

class laborchestrator.workflowgraph.Resource(Type, Tag, Preferred)[source]

Bases: NamedTuple

Preferred: str

Alias for field number 2

Tag: str

Alias for field number 1

Type: str

Alias for field number 0

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('Type', 'Tag', 'Preferred')
classmethod _make(iterable)

Make a new Resource object from a sequence or iterable

_replace(**kwds)

Return a new Resource object replacing specified fields with new values

class laborchestrator.workflowgraph.WorkFlowGraph[source]

Bases: object

static add_waiting_dummies(g: Graph, processes: list[SMProcess])[source]
static create_schedule_from_sila_struct(schedule_response) Schedule[source]
static create_sila_structure_from_jobs(jobs: Iterable[ProcessStep], wfg: DiGraph)[source]