jobshoplab.types package

Submodules

jobshoplab.types.action_types module

class ComponentTransition[source]

Bases: object

ComponentTransition(component_id: str, new_state: jobshoplab.types.state_types.TransportStateState | jobshoplab.types.state_types.MachineStateState | jobshoplab.types.state_types.BufferStateState, job_id: Optional[str])

component_id : str
new_state : TransportStateState | MachineStateState | BufferStateState
job_id : str | None
asdict()[source]
Return type:

dict

__init__(component_id, new_state, job_id)
Parameters:
component_id : str

new_state : TransportStateState | MachineStateState | BufferStateState

job_id : str | None

Return type:

None

class ActionFactoryInfo[source]

Bases: Enum

Valid = 'Valid'
NoMoreOperations = 'NoMoreOperations'
NoOperation = 'NoOperation'
Dummy = 'Dummy'
asdict()[source]
Return type:

str

class Action[source]

Bases: object

Action(transitions: tuple[jobshoplab.types.action_types.ComponentTransition, …], action_factory_info: jobshoplab.types.action_types.ActionFactoryInfo, time_machine: Callable)

transitions : tuple[ComponentTransition, ...]
action_factory_info : ActionFactoryInfo
time_machine : Callable
asdict()[source]
Return type:

dict

__init__(transitions, action_factory_info, time_machine)
Parameters:
transitions : tuple[ComponentTransition, ...]

action_factory_info : ActionFactoryInfo

time_machine : Callable

Return type:

None

jobshoplab.types.instance_config_types module

class TransportTypeConfig[source]

Bases: Enum

Enumeration for transport type configuration.

AGV = 'agv'
CONVEYOR = 'conveyor'
TELEPORTER = 'teleporter'
asdict()[source]
Return type:

str

class BufferTypeConfig[source]

Bases: Enum

Enumeration for buffer type configuration.

FIFO = 'fifo'
LIFO = 'lifo'
DUMMY = 'dummy'
FLEX_BUFFER = 'flex_buffer'
asdict()[source]
Return type:

str

class ProblemInstanceTypeConfig[source]

Bases: Enum

Enum class representing the problem instance types for job shop, flow shop, and open shop.

JOB_SHOP = 'job_shop'
FLOW_SHOP = 'flow_shop'
OPEN_SHOP = 'open_shop'
asdict()[source]
Return type:

str

class Product[source]

Bases: object

Data class representing a product.

id

The ID of the product.

Type:

str

name

The name of the product.

Type:

str

id : str
name : str
asdict()[source]
Return type:

dict

__init__(id, name)
Parameters:
id : str

name : str

Return type:

None

class ConsumptionConfig[source]

Bases: object

Data class representing the configuration for consumption.

idle : float
active : float
outage : float
setup : float
asdict()[source]
Return type:

dict

__init__(idle, active, outage, setup)
Parameters:
idle : float

active : float

outage : float

setup : float

Return type:

None

class DeterministicTimeConfig[source]

Bases: object

Data class representing the configuration for deterministic time.

time

The time value.

Type:

int

time : int
asdict()[source]
Return type:

dict

__init__(time)
Parameters:
time : int

Return type:

None

class OutageTypeConfig[source]

Bases: Enum

Enumeration for outage configuration types. .. attribute:: FAIL

The fail type.

type:

str

MAINTENANCE

The maintenance type.

Type:

str

RECHARGE

The recharge type.

Type:

str

FAIL = 'fail'
MAINTENANCE = 'maintenance'
RECHARGE = 'recharge'
asdict()[source]
Return type:

str

class OutageConfig[source]

Bases: object

Data class representing an outage.

frequency

The frequency of the outage.

Type:

DeterministicTimeConfig | StochasticFrequency

duration

The duration of the outage.

Type:

DeterministicTimeConfig | StochasticTimeConfig

id : str
frequency : DeterministicTimeConfig | StochasticTimeConfig
duration : DeterministicTimeConfig | StochasticTimeConfig
type : OutageTypeConfig
asdict()[source]
Return type:

dict

__init__(id, frequency, duration, type)
Parameters:
id : str

frequency : DeterministicTimeConfig | StochasticTimeConfig

duration : DeterministicTimeConfig | StochasticTimeConfig

type : OutageTypeConfig

Return type:

None

class BufferConfig[source]

Bases: object

Data class representing the configuration for a buffer.

id

The ID of the buffer.

Type:

str

type

The type of the buffer.

Type:

BufferTypeConfig

capacity

The capacity of the buffer.

Type:

int

resources

The resources required by the buffer.

Type:

tuple[ResourceConfig]

id : str
type : BufferTypeConfig
capacity : int
resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]
description : str | None = None
parent : str | None = None
asdict()[source]
Return type:

dict

__init__(id, type, capacity, resources, description=None, parent=None)
Parameters:
id : str

type : BufferTypeConfig

capacity : int

resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]

description : str | None

parent : str | None

Return type:

None

class TransportConfig[source]

Bases: object

Data class representing the configuration for a transport.

id

The ID of the transport.

Type:

str

type

The type of the transport.

Type:

TransportTypeConfig

outages

The outages of the transport.

Type:

tuple[OutageConfig]

resources

The resources required by the transport.

Type:

tuple[ResourceConfig]

id : str
type : TransportTypeConfig
outages : tuple[OutageConfig, ...]
resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]
buffer : BufferConfig
description : str | None = None
asdict()[source]
Return type:

dict

__init__(id, type, outages, resources, buffer, description=None)
Parameters:
id : str

type : TransportTypeConfig

outages : tuple[OutageConfig, ...]

resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]

buffer : BufferConfig

description : str | None

Return type:

None

class MachineConfig[source]

Bases: object

Data class representing the configuration for a machine.

id

The ID of the machine.

Type:

str

outages

The outages of the machine.

Type:

tuple[OutageConfig]

setup_times

The setup times for different product pairs.

Type:

dict[tuple[Product, Product], DeterministicTimeConfig | StochasticTimeConfig]

prebuffer

The prebuffer configuration.

Type:

BufferConfig

postbuffer

The postbuffer configuration.

Type:

BufferConfig

batches

The number of batches the machine can process.

Type:

int

resources

The resources required by the machine.

Type:

tuple[ResourceConfig]

id : str
outages : tuple[OutageConfig, ...]
setup_times : Mapping[tuple[str, str], DeterministicTimeConfig | StochasticTimeConfig]
prebuffer : BufferConfig
postbuffer : BufferConfig
batches : int
resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]
buffer : BufferConfig
description : str | None = None
asdict()[source]
Return type:

dict

__init__(id, outages, setup_times, prebuffer, postbuffer, batches, resources, buffer, description=None)
Parameters:
id : str

outages : tuple[OutageConfig, ...]

setup_times : Mapping[tuple[str, str], DeterministicTimeConfig | StochasticTimeConfig]

prebuffer : BufferConfig

postbuffer : BufferConfig

batches : int

resources : tuple[Literal['EnergyConsumption', 'Waste', 'C02Emission', 'FinancialCost'], ...]

buffer : BufferConfig

description : str | None

Return type:

None

class TwinMachineConfig[source]

Bases: object

Data class representing the configuration for twin machines.

id

The ID of the twin machines.

Type:

str

machines

The twin machines.

Type:

tuple[MachineConfig]

id : str
machines : tuple[MachineConfig, ...]
asdict()[source]
Return type:

dict

__init__(id, machines)
Parameters:
id : str

machines : tuple[MachineConfig, ...]

Return type:

None

class OperationConfig[source]

Bases: object

Data class representing the configuration for an operation.

id

The ID of the operation.

Type:

str

machine

The machine configuration for the operation.

Type:

MachineConfig | TwinMachineConfig

duration

The duration configuration for the operation.

Type:

DeterministicTimeConfig | StochasticTimeConfig

id : str
machine : str
duration : DeterministicTimeConfig | StochasticTimeConfig
tool : str
asdict()[source]
Return type:

dict

__init__(id, machine, duration, tool)
Parameters:
id : str

machine : str

duration : DeterministicTimeConfig | StochasticTimeConfig

tool : str

Return type:

None

class JobConfig[source]

Bases: object

Data class representing the configuration for a job.

id

The ID of the job.

Type:

str

product

The product associated with the job.

Type:

Product

operations

The operations that make up the job.

Type:

tuple[OperationConfig]

priority

The priority of the job, ranging from zero to one.

Type:

float

id : str
product : Product
operations : tuple[OperationConfig, ...]
priority : float
asdict()[source]
Return type:

dict

__init__(id, product, operations, priority)
Parameters:
id : str

product : Product

operations : tuple[OperationConfig, ...]

priority : float

Return type:

None

class ProblemInstanceConfig[source]

Bases: object

Data class representing the configuration for a problem instance.

type

The type of the problem instance.

Type:

ProblemInstanceTypeConfig

specification

The specification of the problem instance.

Type:

tuple[JobConfig]

type : ProblemInstanceTypeConfig
specification : tuple[JobConfig, ...]
asdict()[source]
Return type:

dict

__init__(type, specification)
Parameters:
type : ProblemInstanceTypeConfig

specification : tuple[JobConfig, ...]

Return type:

None

class LogisticsConfig[source]

Bases: object

LogisticsConfig(capacity: int, travel_times: Mapping[tuple[str, str], jobshoplab.types.instance_config_types.DeterministicTimeConfig | jobshoplab.types.stochasticy_models.StochasticTimeConfig])

capacity : int
travel_times : Mapping[tuple[str, str], DeterministicTimeConfig | StochasticTimeConfig]
asdict()[source]
Return type:

dict

__init__(capacity, travel_times)
Parameters:
capacity : int

travel_times : Mapping[tuple[str, str], DeterministicTimeConfig | StochasticTimeConfig]

Return type:

None

class InstanceConfig[source]

Bases: object

Data class representing the configuration for an instance.

description

The description of the instance.

Type:

str

components

The components of the instance.

Type:

tuple[ComponentConfig]

instance

The problem instance configuration.

Type:

ProblemInstanceConfig

description : str
instance : ProblemInstanceConfig
logistics : LogisticsConfig
machines : tuple[MachineConfig, ...]
buffers : tuple[BufferConfig, ...]
transports : tuple[TransportConfig, ...]
asdict()[source]
Return type:

dict

__init__(description, instance, logistics, machines, buffers, transports)
Parameters:
description : str

instance : ProblemInstanceConfig

logistics : LogisticsConfig

machines : tuple[MachineConfig, ...]

buffers : tuple[BufferConfig, ...]

transports : tuple[TransportConfig, ...]

Return type:

None

jobshoplab.types.state_types module

class EnergyConsumptionType[source]

Bases: Protocol

asdict()[source]
Return type:

dict

__init__(*args, **kwargs)
class WasteType[source]

Bases: Protocol

asdict()[source]
Return type:

dict

__init__(*args, **kwargs)
class C02EmissionType[source]

Bases: Protocol

asdict()[source]
Return type:

dict

__init__(*args, **kwargs)
class FinancialCostType[source]

Bases: Protocol

asdict()[source]
Return type:

dict

__init__(*args, **kwargs)
class ActionProtocol[source]

Bases: Protocol

asdict()[source]
Return type:

dict

__init__(*args, **kwargs)
Action

alias of ActionProtocol

class Time[source]

Bases: object

Time(time: int)

time : int
asdict()[source]
Return type:

dict

__init__(time)
Parameters:
time : int

Return type:

None

class NoTime[source]

Bases: object

NoTime()

time = None
asdict()[source]
Return type:

dict

__init__()
Return type:

None

class FailTime[source]

Bases: object

FailTime(reason: str)

reason : str
time = None
asdict()[source]
Return type:

dict

__init__(reason)
Parameters:
reason : str

Return type:

None

class BufferStateState[source]

Bases: Enum

EMPTY = 'Empty'
NOT_EMPTY = 'NotEmpty'
FULL = 'Full'
asdict()[source]
Return type:

str

class OperationStateState[source]

Bases: Enum

IDLE = 'Idle'
PROCESSING = 'Processing'
DONE = 'Done'
TRANSPORT = 'Transport'
asdict()[source]
Return type:

str

class OperationState[source]

Bases: object

OperationState(id: str, start_time: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, end_time: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, machine_id: str, operation_state_state: jobshoplab.types.state_types.OperationStateState)

id : str
start_time : Time | NoTime
end_time : Time | NoTime
machine_id : str
operation_state_state : OperationStateState
asdict()[source]
Return type:

dict

__init__(id, start_time, end_time, machine_id, operation_state_state)
Parameters:
id : str

start_time : Time | NoTime

end_time : Time | NoTime

machine_id : str

operation_state_state : OperationStateState

Return type:

None

class JobState[source]

Bases: object

JobState(id: str, operations: tuple[jobshoplab.types.state_types.OperationState, …], location: str)

id : str
operations : tuple[OperationState, ...]
location : str
asdict()[source]
Return type:

dict

__init__(id, operations, location)
Parameters:
id : str

operations : tuple[OperationState, ...]

location : str

Return type:

None

class BufferState[source]

Bases: object

BufferState(id: str, state: jobshoplab.types.state_types.BufferStateState, store: tuple[str, …])

id : str
state : BufferStateState
store : tuple[str, ...]
asdict()[source]
Return type:

dict

__init__(id, state, store)
Parameters:
id : str

state : BufferStateState

store : tuple[str, ...]

Return type:

None

class Consumption[source]

Bases: object

Consumption(value: float)

value : float
asdict()[source]
Return type:

int

__init__(value)
Parameters:
value : float

Return type:

None

class MachineStateState[source]

Bases: Enum

IDLE = 'Idle'
SETUP = 'Setup'
WORKING = 'Working'
OUTAGE = 'Outage'
asdict()[source]
Return type:

str

class TransportStateState[source]

Bases: Enum

IDLE = 'Idle'
WORKING = 'Working'
PICKUP = 'Pickup'
TRANSIT = 'Transit'
OUTAGE = 'Outage'
WAITINGPICKUP = 'WaitingPickup'
asdict()[source]
Return type:

str

class OutageActive[source]

Bases: object

OutageActive(start_time: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, end_time: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime)

start_time : Time | NoTime
end_time : Time | NoTime
__init__(start_time, end_time)
Parameters:
start_time : Time | NoTime

end_time : Time | NoTime

Return type:

None

class OutageInactive[source]

Bases: object

OutageInactive(last_time_active: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime)

last_time_active : Time | NoTime
__init__(last_time_active)
Parameters:
last_time_active : Time | NoTime

Return type:

None

class OutageState[source]

Bases: object

OutageState(id: str, active: jobshoplab.types.state_types.OutageActive | jobshoplab.types.state_types.OutageInactive)

id : str
active : OutageActive | OutageInactive
__init__(id, active)
Parameters:
id : str

active : OutageActive | OutageInactive

Return type:

None

class MachineState[source]

Bases: object

MachineState(id: str, buffer: jobshoplab.types.state_types.BufferState, occupied_till: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, prebuffer: jobshoplab.types.state_types.BufferState, postbuffer: jobshoplab.types.state_types.BufferState, state: jobshoplab.types.state_types.MachineStateState, mounted_tool: str, outages: tuple[jobshoplab.types.state_types.OutageState, …], resources: tuple[typing.Union[jobshoplab.types.state_types.EnergyConsumptionType, jobshoplab.types.state_types.WasteType, jobshoplab.types.state_types.C02EmissionType, jobshoplab.types.state_types.FinancialCostType], …])

id : str
buffer : BufferState
occupied_till : Time | NoTime
prebuffer : BufferState
postbuffer : BufferState
state : MachineStateState
mounted_tool : str
outages : tuple[OutageState, ...]
resources : tuple[EnergyConsumptionType | WasteType | C02EmissionType | FinancialCostType, ...]
asdict()[source]
Return type:

dict

__init__(id, buffer, occupied_till, prebuffer, postbuffer, state, mounted_tool, outages, resources)
Parameters:
id : str

buffer : BufferState

occupied_till : Time | NoTime

prebuffer : BufferState

postbuffer : BufferState

state : MachineStateState

mounted_tool : str

outages : tuple[OutageState, ...]

resources : tuple[EnergyConsumptionType | WasteType | C02EmissionType | FinancialCostType, ...]

Return type:

None

class TransportLocation[source]

Bases: object

TransportLocation(progress: float, location: str | tuple[str, str, str])

progress : float
location : str | tuple[str, str, str]
asdict()[source]
Return type:

dict

__init__(progress, location)
Parameters:
progress : float

location : str | tuple[str, str, str]

Return type:

None

class TransportState[source]

Bases: object

TransportState(state: jobshoplab.types.state_types.TransportStateState, id: str, occupied_till: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, buffer: jobshoplab.types.state_types.BufferState, location: jobshoplab.types.state_types.TransportLocation, outages: tuple[jobshoplab.types.state_types.OutageState, …], transport_job: str | None)

state : TransportStateState
id : str
occupied_till : Time | NoTime
buffer : BufferState
location : TransportLocation
outages : tuple[OutageState, ...]
transport_job : str | None
asdict()[source]
Return type:

dict

__init__(state, id, occupied_till, buffer, location, outages, transport_job)
Parameters:
state : TransportStateState

id : str

occupied_till : Time | NoTime

buffer : BufferState

location : TransportLocation

outages : tuple[OutageState, ...]

transport_job : str | None

Return type:

None

class State[source]

Bases: object

State(jobs: tuple[jobshoplab.types.state_types.JobState, …], time: jobshoplab.types.state_types.Time | jobshoplab.types.state_types.NoTime, machines: tuple[jobshoplab.types.state_types.MachineState, …], transports: tuple[jobshoplab.types.state_types.TransportState, …], buffers: tuple[jobshoplab.types.state_types.BufferState, …])

jobs : tuple[JobState, ...]
time : Time | NoTime
machines : tuple[MachineState, ...]
transports : tuple[TransportState, ...]
buffers : tuple[BufferState, ...]
asdict()[source]
Return type:

dict

__init__(jobs, time, machines, transports, buffers)
Parameters:
jobs : tuple[JobState, ...]

time : Time | NoTime

machines : tuple[MachineState, ...]

transports : tuple[TransportState, ...]

buffers : tuple[BufferState, ...]

Return type:

None

class StateMachineResult[source]

Bases: object

StateMachineResult(state: jobshoplab.types.state_types.State, sub_states: tuple[jobshoplab.types.state_types.State, …], action: jobshoplab.types.state_types.ActionProtocol, success: bool, message: str, possible_transitions: tuple[~ComponentTransition, …])

state : State
sub_states : tuple[State, ...]
action : ActionProtocol
success : bool
message : str
possible_transitions : tuple[ComponentTransition, ...]
asdict()[source]
Return type:

dict

__init__(state, sub_states, action, success, message, possible_transitions)
Parameters:
state : State

sub_states : tuple[State, ...]

action : ActionProtocol

success : bool

message : str

possible_transitions : tuple[__SPHINX_IMMATERIAL_TYPE_VAR__V_ComponentTransition, ...]

Return type:

None

class TransitionResult[source]

Bases: object

Result of a transition operation

__init__(state, errors)[source]
Parameters:
state : State

errors : list[str]

asdict()[source]

Convert to dictionary representation

Return type:

dict

Module contents