skills/simpy/references/sources.md
Research completed 2026-07-23 with parallel-cli search and
parallel-cli extract, then checked against an isolated installation of
simpy==4.1.2. Versioned documentation is preferred over the latest build,
which showed a 4.1.2 development revision during verification.
Requires-Python >=3.8; classifiers list Python 3.8-3.14,
CPython, and PyPy; MIT; no runtime dependencies. Verified 2026-07-23.f43816490c6f76f336ad6e457d3cab9f386894af,
dated 2026-05-24.ConditionValue explicitly unhashable,
lint/type cleanup.simpy/core.py
— authoritative Environment.run(), step(), queue tuple, and
StopSimulation implementation. Accessed 2026-07-23.PyPI file hashes observed 2026-07-23:
simpy-4.1.2-py3-none-any.whl SHA-256
43071f84b6512c9b4fcb33ef057f240ccb1d1f3b263f9b4f9229d072e310b372;simpy-4.1.2.tar.gz SHA-256
76ef36b71e0436ba94e55febc001c78879e493a323f045bbcfbb0b216e9b1fbc.Use the pinned package command in SKILL.md; hashes are recorded for provenance,
not embedded into uv pip install syntax.
All accessed 2026-07-23. The examples index covers condition events, interrupts, Resource, PreemptiveResource, Container, Store, shared events, and process waiting.
All accessed 2026-07-23.
simpy.core
— Environment, run, schedule, peek, step, EmptySchedule.simpy.events
— Event, Timeout, Process, Condition, AnyOf, AllOf, priorities.simpy.exceptions
— Interrupt.simpy.resources
— Resource/Priority/Preemptive, Container, Store/Filter/Priority, base events.simpy.rt
— RealtimeEnvironment.simpy.util
— helper processes.All accessed 2026-07-23.
The 4.1.2 Environments topical guide informally says Event-based run() returns
when the Event has been processed. The 4.1.2 API docstring says "triggered."
Tagged core.py is decisive:
run(until=event) appends StopSimulation.callback;step() sets callbacks to None, executes them, catches StopSimulation,
restores callbacks remaining after the stopping callback, and reschedules that
Event at priority -1.Therefore the target value can be returned while target.processed is still false,
until one more step processes the rescheduled empty-callback Event. This was
reproduced under the exact PyPI 4.1.2 wheel on Python 3.13 and is covered by
tests/test_scripts.py.
Numeric run(until=time) creates an urgent internal stop Event, so normal Events at
that exact time are excluded. This was verified from both tagged source and runtime
tests.
These sources describe simulation-study design and output analysis. They are not SimPy API documentation.
10.1109/WSC.2015.7408151. Covers streams/substreams, one stream per random
source, replication separation, common random numbers, testing, and exact
reproducibility. Accessed 2026-07-23.Parallel searches/extractions covered:
No Parallel JSON artifacts were written into the repository.