simpy.core — SimPy’s core components
Core components for event-discrete simulation environments.
- class simpy.core.Environment(initial_time: int | float = 0)
Execution environment for an event-based simulation. The passing of time is simulated by stepping from event to event.
You can provide an initial_time for the environment. By default, it starts at
0.This class also provides aliases for common event types, for example
process,timeoutandevent.- schedule(event: Event, priority: EventPriority = 1, delay: int | float = 0) None
Schedule an event with a given priority and a delay.
- peek() int | float
Get the time of the next scheduled event. Return
Infinityif there is no further event.
- step() None
Process the next event.
Raise an
EmptyScheduleif no further events are available.
- run(until: int | float | Event | None = None) Any | None
Executes
step()until the given criterion until is met.If it is
None(which is the default), this method will return when there are no further events to be processed.If it is an
Event, the method will continue stepping until this event has been triggered and will return its value. Raises aRuntimeErrorif there are no further events to be processed and the until event was not triggered.If it is a number, the method will continue stepping until the environment’s time reaches until.
- class simpy.core.BoundClass(cls: Type[T])
Allows classes to behave like methods.
The
__get__()descriptor is basically identical tofunction.__get__()and binds the first argument of theclsto the descriptor instance.- static bind_early(instance: object) None
Bind all
BoundClassattributes of the instance’s class to the instance itself to increase performance.
- class simpy.core.EmptySchedule
Thrown by an
Environmentif there are no further events to be processed.