Back to Claude Scientific Skills

Sources and verification record

skills/simpy/references/sources.md

2.55.09.6 KB
Original Source

Sources and verification record

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.

Release, packaging, and source

  • SimPy on PyPI4.1.2, released 2026-05-24; Requires-Python >=3.8; classifiers list Python 3.8-3.14, CPython, and PyPy; MIT; no runtime dependencies. Verified 2026-07-23.
  • GitLab source project — canonical repository, MIT license, tagged source, tests, and documentation. Accessed 2026-07-23.
  • GitLab tag 4.1.2 — protected/verified tag, commit f43816490c6f76f336ad6e457d3cab9f386894af, dated 2026-05-24.
  • Tagged CHANGES.rst — 4.1.2 entry dated 2026-05-23: Python 3.13/3.14 support, modern-interpreter test/doc fixes, ConditionValue explicitly unhashable, lint/type cleanup.
  • Tagged pyproject.toml — Python requirement/classifiers, no dependencies, setuptools build, pytest, mypy, and ruff configuration. Dated 2026-05-23; accessed 2026-07-23.
  • Tagged tox.ini and tagged tests — upstream test matrix and behavior tests. Accessed 2026-07-23.
  • Tagged simpy/core.py — authoritative Environment.run(), step(), queue tuple, and StopSimulation implementation. Accessed 2026-07-23.

PyPI file hashes observed 2026-07-23:

  • wheel simpy-4.1.2-py3-none-any.whl SHA-256 43071f84b6512c9b4fcb33ef057f240ccb1d1f3b263f9b4f9229d072e310b372;
  • sdist 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.

Official SimPy 4.1.2 documentation

Entry points

All accessed 2026-07-23. The examples index covers condition events, interrupts, Resource, PreemptiveResource, Container, Store, shared events, and process waiting.

Core topical guides

All accessed 2026-07-23.

API pages

All accessed 2026-07-23.

Source-level semantic finding

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.

Primary simulation-method sources

These sources describe simulation-study design and output analysis. They are not SimPy API documentation.

Research queries used

Parallel searches/extractions covered:

  • latest SimPy stable version, Python support, PyPI files, GitLab tags/changelog;
  • Environment/Event/Process/Timeout/Condition and scheduling;
  • all Resource, Container, and Store variants;
  • interrupts, monitoring, stepping, real-time, examples, API, and testing config;
  • independent replications, confidence intervals, warm-up/transient bias, random streams, conceptual modeling, V&V, sensitivity, and reproducibility.

No Parallel JSON artifacts were written into the repository.