asimpy 0.4.1__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {asimpy-0.4.1 → asimpy-0.5.0}/.gitignore +1 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/PKG-INFO +2 -15
- {asimpy-0.4.1 → asimpy-0.5.0}/README.md +1 -3
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/index.html +1 -2
- asimpy-0.5.0/docs/objects.inv +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/allof/index.html +1 -1
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/barrier/index.html +1 -1
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/environment/index.html +135 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/event/index.html +69 -25
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/firstof/index.html +1 -1
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/process/index.html +1 -1
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/resource/index.html +1 -1
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/simqueue/index.html +110 -13
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/timeout/index.html +16 -4
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/sitemap.xml.gz +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pyproject.toml +23 -30
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/environment.py +6 -2
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/event.py +4 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/simqueue.py +13 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/timeout.py +8 -2
- asimpy-0.5.0/tests/test_allof.py +63 -0
- asimpy-0.5.0/tests/test_barrier.py +74 -0
- asimpy-0.5.0/tests/test_complex.py +64 -0
- asimpy-0.5.0/tests/test_environment.py +93 -0
- asimpy-0.5.0/tests/test_event.py +110 -0
- asimpy-0.5.0/tests/test_firstof.py +56 -0
- asimpy-0.5.0/tests/test_interrupt.py +21 -0
- asimpy-0.5.0/tests/test_priqueue.py +56 -0
- asimpy-0.5.0/tests/test_process.py +166 -0
- asimpy-0.5.0/tests/test_queue.py +129 -0
- asimpy-0.5.0/tests/test_resource.py +117 -0
- asimpy-0.5.0/tests/test_timeout.py +58 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/uv.lock +229 -117
- asimpy-0.4.1/docs/objects.inv +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/.readthedocs.yaml +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/CODE_OF_CONDUCT.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/CONTRIBUTING.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/LICENSE.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/.nojekyll +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/404.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/_mkdocstrings.css +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/images/favicon.png +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/bundle.79ae519e.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/bundle.79ae519e.min.js.map +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ar.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.da.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.de.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.du.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.el.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.es.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.fi.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.fr.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.he.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.hi.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.hu.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.hy.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.it.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ja.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.jp.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.kn.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ko.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.multi.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.nl.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.no.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.pt.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ro.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ru.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.sa.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.sv.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.ta.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.te.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.th.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.tr.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.vi.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/min/lunr.zh.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/tinyseg.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/lunr/wordcut.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/workers/search.2c215733.min.js +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/javascripts/workers/search.2c215733.min.js.map +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/stylesheets/main.484c7ddc.min.css +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/stylesheets/main.484c7ddc.min.css.map +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/stylesheets/palette.ab4e12ef.min.css +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/conduct/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/contributing/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/examples/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/license/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/reference/interrupt/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/requirements.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/sitemap.xml +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/tutorial/01_minimal/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/tutorial/02_queue/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/tutorial/03_interrupt/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs/tutorial/04_combine/index.html +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/docs-requirements.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/allof.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/barrier.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/firstof_queue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/firstof_timeout.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/interrupt.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/priqueue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/queue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/resource.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/examples/timeout.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/mkdocs.yml +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/allof.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/barrier.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/firstof_queue.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/firstof_timeout.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/interrupt.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/priqueue.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/queue.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/resource.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/output/timeout.txt +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/.pages +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/conduct.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/contributing.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/examples.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/index.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/license.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/allof.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/barrier.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/environment.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/event.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/firstof.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/interrupt.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/process.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/resource.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/simqueue.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/reference/timeout.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/tutorial/01_minimal.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/tutorial/02_queue.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/tutorial/03_interrupt.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/pages/tutorial/04_combine.md +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/__init__.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/_adapt.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/allof.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/barrier.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/firstof.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/interrupt.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/process.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/src/asimpy/resource.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/01_minimal/environment.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/01_minimal/event.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/01_minimal/example_timeout.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/01_minimal/process.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/01_minimal/timeout.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/environment.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/event.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/example_queue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/process.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/simqueue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/02_queue/timeout.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/environment.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/event.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/example_interrupt.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/interrupt.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/process.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/simqueue.py +0 -0
- {asimpy-0.4.1 → asimpy-0.5.0}/tutorial/03_interrupt/timeout.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: asimpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: A simple discrete event simulator using async/await
|
|
5
5
|
Author-email: Greg Wilson <gvwilson@third-bit.com>
|
|
6
6
|
Maintainer-email: Greg Wilson <gvwilson@third-bit.com>
|
|
@@ -10,17 +10,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
|
-
Provides-Extra: dev
|
|
14
|
-
Requires-Dist: build>=1.4.0; extra == 'dev'
|
|
15
|
-
Requires-Dist: markdown-include>=0.8.1; extra == 'dev'
|
|
16
|
-
Requires-Dist: mkdocs-awesome-pages-plugin>=2.10.1; extra == 'dev'
|
|
17
|
-
Requires-Dist: mkdocs-material>=9.7.1; extra == 'dev'
|
|
18
|
-
Requires-Dist: mkdocs>=1.6.1; extra == 'dev'
|
|
19
|
-
Requires-Dist: mkdocstrings[python]>=1.0.0; extra == 'dev'
|
|
20
|
-
Requires-Dist: ruff>=0.14.10; extra == 'dev'
|
|
21
|
-
Requires-Dist: taskipy>=1.14.1; extra == 'dev'
|
|
22
|
-
Requires-Dist: twine>=6.2.0; extra == 'dev'
|
|
23
|
-
Requires-Dist: ty>=0.0.11; extra == 'dev'
|
|
24
13
|
Description-Content-Type: text/markdown
|
|
25
14
|
|
|
26
15
|
# asimpy
|
|
@@ -30,7 +19,6 @@ A simple discrete event simulation framework in Python using `async`/`await`.
|
|
|
30
19
|
- [Documentation][docs]
|
|
31
20
|
- [Package][package]
|
|
32
21
|
- [Repository][repo]
|
|
33
|
-
- [Examples][examples]
|
|
34
22
|
|
|
35
23
|
*Thanks to the creators of [SimPy][simpy] for inspiration.*
|
|
36
24
|
|
|
@@ -234,8 +222,7 @@ The sequence of events is:
|
|
|
234
222
|
| FirstOf succeeds with winner | q1=[], q2=["B"] | _value=("a","A"), _triggered=True | Processes waiting on FirstOf resumed | `Tester` receives ("a","A") |
|
|
235
223
|
| `Tester` continues execution | q1=[], q2=["B"] | - | - | Remaining queue items untouched; correct order guaranteed |
|
|
236
224
|
|
|
237
|
-
[docs]: https://
|
|
238
|
-
[examples]: https://gvwilson.github.io/asimpy/examples/
|
|
225
|
+
[docs]: https://asimpy.readthedocs.io/
|
|
239
226
|
[package]: https://pypi.org/project/asimpy/
|
|
240
227
|
[repo]: https://github.com/gvwilson/asimpy
|
|
241
228
|
[simpy]: https://simpy.readthedocs.io/
|
|
@@ -5,7 +5,6 @@ A simple discrete event simulation framework in Python using `async`/`await`.
|
|
|
5
5
|
- [Documentation][docs]
|
|
6
6
|
- [Package][package]
|
|
7
7
|
- [Repository][repo]
|
|
8
|
-
- [Examples][examples]
|
|
9
8
|
|
|
10
9
|
*Thanks to the creators of [SimPy][simpy] for inspiration.*
|
|
11
10
|
|
|
@@ -209,8 +208,7 @@ The sequence of events is:
|
|
|
209
208
|
| FirstOf succeeds with winner | q1=[], q2=["B"] | _value=("a","A"), _triggered=True | Processes waiting on FirstOf resumed | `Tester` receives ("a","A") |
|
|
210
209
|
| `Tester` continues execution | q1=[], q2=["B"] | - | - | Remaining queue items untouched; correct order guaranteed |
|
|
211
210
|
|
|
212
|
-
[docs]: https://
|
|
213
|
-
[examples]: https://gvwilson.github.io/asimpy/examples/
|
|
211
|
+
[docs]: https://asimpy.readthedocs.io/
|
|
214
212
|
[package]: https://pypi.org/project/asimpy/
|
|
215
213
|
[repo]: https://github.com/gvwilson/asimpy
|
|
216
214
|
[simpy]: https://simpy.readthedocs.io/
|
|
@@ -1109,10 +1109,9 @@
|
|
|
1109
1109
|
<h1 id="asimpy">asimpy</h1>
|
|
1110
1110
|
<p>A simple discrete event simulation framework in Python using <code>async</code>/<code>await</code>.</p>
|
|
1111
1111
|
<ul>
|
|
1112
|
-
<li><a href="https://
|
|
1112
|
+
<li><a href="https://asimpy.readthedocs.io/">Documentation</a></li>
|
|
1113
1113
|
<li><a href="https://pypi.org/project/asimpy/">Package</a></li>
|
|
1114
1114
|
<li><a href="https://github.com/gvwilson/asimpy">Repository</a></li>
|
|
1115
|
-
<li><a href="https://gvwilson.github.io/asimpy/examples/">Examples</a></li>
|
|
1116
1115
|
</ul>
|
|
1117
1116
|
<p><em>Thanks to the creators of <a href="https://simpy.readthedocs.io/">SimPy</a> for inspiration.</em></p>
|
|
1118
1117
|
<h2 id="what-this-is">What This Is</h2>
|
|
Binary file
|
|
@@ -1117,7 +1117,7 @@
|
|
|
1117
1117
|
<code>env</code>
|
|
1118
1118
|
</td>
|
|
1119
1119
|
<td>
|
|
1120
|
-
<code><
|
|
1120
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1121
1121
|
</td>
|
|
1122
1122
|
<td>
|
|
1123
1123
|
<div class="doc-md-description">
|
|
@@ -1143,7 +1143,7 @@
|
|
|
1143
1143
|
<code>env</code>
|
|
1144
1144
|
</td>
|
|
1145
1145
|
<td>
|
|
1146
|
-
<code><
|
|
1146
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1147
1147
|
</td>
|
|
1148
1148
|
<td>
|
|
1149
1149
|
<div class="doc-md-description">
|
|
@@ -462,6 +462,17 @@
|
|
|
462
462
|
</span>
|
|
463
463
|
</a>
|
|
464
464
|
|
|
465
|
+
</li>
|
|
466
|
+
|
|
467
|
+
<li class="md-nav__item">
|
|
468
|
+
<a href="#asimpy.environment.Environment" class="md-nav__link">
|
|
469
|
+
<span class="md-ellipsis">
|
|
470
|
+
|
|
471
|
+
Environment
|
|
472
|
+
|
|
473
|
+
</span>
|
|
474
|
+
</a>
|
|
475
|
+
|
|
465
476
|
</li>
|
|
466
477
|
|
|
467
478
|
</ul>
|
|
@@ -875,6 +886,17 @@
|
|
|
875
886
|
</span>
|
|
876
887
|
</a>
|
|
877
888
|
|
|
889
|
+
</li>
|
|
890
|
+
|
|
891
|
+
<li class="md-nav__item">
|
|
892
|
+
<a href="#asimpy.environment.Environment" class="md-nav__link">
|
|
893
|
+
<span class="md-ellipsis">
|
|
894
|
+
|
|
895
|
+
Environment
|
|
896
|
+
|
|
897
|
+
</span>
|
|
898
|
+
</a>
|
|
899
|
+
|
|
878
900
|
</li>
|
|
879
901
|
|
|
880
902
|
</ul>
|
|
@@ -924,6 +946,119 @@
|
|
|
924
946
|
|
|
925
947
|
|
|
926
948
|
|
|
949
|
+
<div class="doc doc-object doc-class">
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
<h2 id="asimpy.environment.Environment" class="doc doc-heading">
|
|
954
|
+
<code>Environment</code>
|
|
955
|
+
|
|
956
|
+
|
|
957
|
+
</h2>
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
<div class="doc doc-contents ">
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
<p>Simulation environment.</p>
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
<details class="mkdocstrings-source">
|
|
974
|
+
<summary>Source code in <code>src/asimpy/environment.py</code></summary>
|
|
975
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">12</span>
|
|
976
|
+
<span class="normal">13</span>
|
|
977
|
+
<span class="normal">14</span>
|
|
978
|
+
<span class="normal">15</span>
|
|
979
|
+
<span class="normal">16</span>
|
|
980
|
+
<span class="normal">17</span>
|
|
981
|
+
<span class="normal">18</span>
|
|
982
|
+
<span class="normal">19</span>
|
|
983
|
+
<span class="normal">20</span>
|
|
984
|
+
<span class="normal">21</span>
|
|
985
|
+
<span class="normal">22</span>
|
|
986
|
+
<span class="normal">23</span>
|
|
987
|
+
<span class="normal">24</span>
|
|
988
|
+
<span class="normal">25</span>
|
|
989
|
+
<span class="normal">26</span>
|
|
990
|
+
<span class="normal">27</span>
|
|
991
|
+
<span class="normal">28</span>
|
|
992
|
+
<span class="normal">29</span>
|
|
993
|
+
<span class="normal">30</span>
|
|
994
|
+
<span class="normal">31</span>
|
|
995
|
+
<span class="normal">32</span>
|
|
996
|
+
<span class="normal">33</span>
|
|
997
|
+
<span class="normal">34</span>
|
|
998
|
+
<span class="normal">35</span>
|
|
999
|
+
<span class="normal">36</span>
|
|
1000
|
+
<span class="normal">37</span>
|
|
1001
|
+
<span class="normal">38</span>
|
|
1002
|
+
<span class="normal">39</span>
|
|
1003
|
+
<span class="normal">40</span>
|
|
1004
|
+
<span class="normal">41</span>
|
|
1005
|
+
<span class="normal">42</span>
|
|
1006
|
+
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Environment</span><span class="p">:</span>
|
|
1007
|
+
<span class="w"> </span><span class="sd">"""Simulation environment."""</span>
|
|
1008
|
+
|
|
1009
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logging</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
|
1010
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">_now</span> <span class="o">=</span> <span class="mi">0</span>
|
|
1011
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">_logging</span> <span class="o">=</span> <span class="n">logging</span>
|
|
1012
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">_pending</span> <span class="o">=</span> <span class="p">[]</span>
|
|
1013
|
+
|
|
1014
|
+
<span class="nd">@property</span>
|
|
1015
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">now</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
1016
|
+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_now</span>
|
|
1017
|
+
|
|
1018
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">schedule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="n">callback</span><span class="p">):</span>
|
|
1019
|
+
<span class="n">heapq</span><span class="o">.</span><span class="n">heappush</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_pending</span><span class="p">,</span> <span class="n">_Pending</span><span class="p">(</span><span class="n">time</span><span class="p">,</span> <span class="n">callback</span><span class="p">))</span>
|
|
1020
|
+
|
|
1021
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delay</span><span class="p">):</span>
|
|
1022
|
+
<span class="k">return</span> <span class="n">Timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
1023
|
+
|
|
1024
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">until</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
1025
|
+
<span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pending</span><span class="p">:</span>
|
|
1026
|
+
<span class="n">pending</span> <span class="o">=</span> <span class="n">heapq</span><span class="o">.</span><span class="n">heappop</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_pending</span><span class="p">)</span>
|
|
1027
|
+
<span class="k">if</span> <span class="n">until</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">pending</span><span class="o">.</span><span class="n">time</span> <span class="o">></span> <span class="n">until</span><span class="p">:</span>
|
|
1028
|
+
<span class="k">break</span>
|
|
1029
|
+
<span class="n">result</span> <span class="o">=</span> <span class="n">pending</span><span class="o">.</span><span class="n">callback</span><span class="p">()</span>
|
|
1030
|
+
<span class="k">if</span> <span class="p">(</span><span class="n">result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">NO_TIME</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">pending</span><span class="o">.</span><span class="n">time</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_now</span><span class="p">):</span>
|
|
1031
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">_now</span> <span class="o">=</span> <span class="n">pending</span><span class="o">.</span><span class="n">time</span>
|
|
1032
|
+
|
|
1033
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">_immediate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">):</span>
|
|
1034
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">schedule</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_now</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
1035
|
+
|
|
1036
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
1037
|
+
<span class="k">return</span> <span class="sa">f</span><span class="s2">"Env(t=</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_now</span><span class="si">}</span><span class="s2">)"</span>
|
|
1038
|
+
</code></pre></div></td></tr></table></div>
|
|
1039
|
+
</details>
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
<div class="doc doc-children">
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
</div>
|
|
1057
|
+
|
|
1058
|
+
</div>
|
|
1059
|
+
|
|
1060
|
+
</div>
|
|
1061
|
+
|
|
927
1062
|
|
|
928
1063
|
|
|
929
1064
|
|
|
@@ -490,6 +490,17 @@
|
|
|
490
490
|
</span>
|
|
491
491
|
</a>
|
|
492
492
|
|
|
493
|
+
</li>
|
|
494
|
+
|
|
495
|
+
<li class="md-nav__item">
|
|
496
|
+
<a href="#asimpy.event.NO_TIME" class="md-nav__link">
|
|
497
|
+
<span class="md-ellipsis">
|
|
498
|
+
|
|
499
|
+
NO_TIME
|
|
500
|
+
|
|
501
|
+
</span>
|
|
502
|
+
</a>
|
|
503
|
+
|
|
493
504
|
</li>
|
|
494
505
|
|
|
495
506
|
<li class="md-nav__item">
|
|
@@ -925,6 +936,17 @@
|
|
|
925
936
|
</span>
|
|
926
937
|
</a>
|
|
927
938
|
|
|
939
|
+
</li>
|
|
940
|
+
|
|
941
|
+
<li class="md-nav__item">
|
|
942
|
+
<a href="#asimpy.event.NO_TIME" class="md-nav__link">
|
|
943
|
+
<span class="md-ellipsis">
|
|
944
|
+
|
|
945
|
+
NO_TIME
|
|
946
|
+
|
|
947
|
+
</span>
|
|
948
|
+
</a>
|
|
949
|
+
|
|
928
950
|
</li>
|
|
929
951
|
|
|
930
952
|
<li class="md-nav__item">
|
|
@@ -1022,6 +1044,28 @@
|
|
|
1022
1044
|
|
|
1023
1045
|
|
|
1024
1046
|
|
|
1047
|
+
<div class="doc doc-object doc-attribute">
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
<h2 id="asimpy.event.NO_TIME" class="doc doc-heading">
|
|
1052
|
+
<code class="highlight language-python"><span class="n">NO_TIME</span> <span class="o">=</span> <span class="nb">object</span><span class="p">()</span></code>
|
|
1053
|
+
|
|
1054
|
+
<span class="doc doc-labels">
|
|
1055
|
+
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
1056
|
+
</span>
|
|
1057
|
+
|
|
1058
|
+
</h2>
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
<div class="doc doc-contents ">
|
|
1062
|
+
|
|
1063
|
+
<p>Sentinel indicating that time should not advance.</p>
|
|
1064
|
+
|
|
1065
|
+
</div>
|
|
1066
|
+
|
|
1067
|
+
</div>
|
|
1068
|
+
|
|
1025
1069
|
|
|
1026
1070
|
|
|
1027
1071
|
<div class="doc doc-object doc-class">
|
|
@@ -1050,11 +1094,7 @@
|
|
|
1050
1094
|
|
|
1051
1095
|
<details class="mkdocstrings-source">
|
|
1052
1096
|
<summary>Source code in <code>src/asimpy/event.py</code></summary>
|
|
1053
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">
|
|
1054
|
-
<span class="normal">10</span>
|
|
1055
|
-
<span class="normal">11</span>
|
|
1056
|
-
<span class="normal">12</span>
|
|
1057
|
-
<span class="normal">13</span>
|
|
1097
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
|
1058
1098
|
<span class="normal">14</span>
|
|
1059
1099
|
<span class="normal">15</span>
|
|
1060
1100
|
<span class="normal">16</span>
|
|
@@ -1099,7 +1139,11 @@
|
|
|
1099
1139
|
<span class="normal">55</span>
|
|
1100
1140
|
<span class="normal">56</span>
|
|
1101
1141
|
<span class="normal">57</span>
|
|
1102
|
-
<span class="normal">58</span
|
|
1142
|
+
<span class="normal">58</span>
|
|
1143
|
+
<span class="normal">59</span>
|
|
1144
|
+
<span class="normal">60</span>
|
|
1145
|
+
<span class="normal">61</span>
|
|
1146
|
+
<span class="normal">62</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Event</span><span class="p">:</span>
|
|
1103
1147
|
<span class="w"> </span><span class="sd">"""Manage an event."""</span>
|
|
1104
1148
|
|
|
1105
1149
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">env</span><span class="p">:</span> <span class="s2">"Environment"</span><span class="p">):</span>
|
|
@@ -1195,7 +1239,7 @@
|
|
|
1195
1239
|
<code>env</code>
|
|
1196
1240
|
</td>
|
|
1197
1241
|
<td>
|
|
1198
|
-
<code><
|
|
1242
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1199
1243
|
</td>
|
|
1200
1244
|
<td>
|
|
1201
1245
|
<div class="doc-md-description">
|
|
@@ -1212,11 +1256,7 @@
|
|
|
1212
1256
|
|
|
1213
1257
|
<details class="mkdocstrings-source">
|
|
1214
1258
|
<summary>Source code in <code>src/asimpy/event.py</code></summary>
|
|
1215
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">
|
|
1216
|
-
<span class="normal">13</span>
|
|
1217
|
-
<span class="normal">14</span>
|
|
1218
|
-
<span class="normal">15</span>
|
|
1219
|
-
<span class="normal">16</span>
|
|
1259
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">16</span>
|
|
1220
1260
|
<span class="normal">17</span>
|
|
1221
1261
|
<span class="normal">18</span>
|
|
1222
1262
|
<span class="normal">19</span>
|
|
@@ -1224,7 +1264,11 @@
|
|
|
1224
1264
|
<span class="normal">21</span>
|
|
1225
1265
|
<span class="normal">22</span>
|
|
1226
1266
|
<span class="normal">23</span>
|
|
1227
|
-
<span class="normal">24</span
|
|
1267
|
+
<span class="normal">24</span>
|
|
1268
|
+
<span class="normal">25</span>
|
|
1269
|
+
<span class="normal">26</span>
|
|
1270
|
+
<span class="normal">27</span>
|
|
1271
|
+
<span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">env</span><span class="p">:</span> <span class="s2">"Environment"</span><span class="p">):</span>
|
|
1228
1272
|
<span class="w"> </span><span class="sd">"""</span>
|
|
1229
1273
|
<span class="sd"> Construct a new event.</span>
|
|
1230
1274
|
|
|
@@ -1259,14 +1303,14 @@
|
|
|
1259
1303
|
|
|
1260
1304
|
<details class="mkdocstrings-source">
|
|
1261
1305
|
<summary>Source code in <code>src/asimpy/event.py</code></summary>
|
|
1262
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">
|
|
1263
|
-
<span class="normal">42</span>
|
|
1264
|
-
<span class="normal">43</span>
|
|
1265
|
-
<span class="normal">44</span>
|
|
1266
|
-
<span class="normal">45</span>
|
|
1306
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
|
|
1267
1307
|
<span class="normal">46</span>
|
|
1268
1308
|
<span class="normal">47</span>
|
|
1269
|
-
<span class="normal">48</span
|
|
1309
|
+
<span class="normal">48</span>
|
|
1310
|
+
<span class="normal">49</span>
|
|
1311
|
+
<span class="normal">50</span>
|
|
1312
|
+
<span class="normal">51</span>
|
|
1313
|
+
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
1270
1314
|
<span class="w"> </span><span class="sd">"""Cancel event."""</span>
|
|
1271
1315
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_triggered</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cancelled</span><span class="p">:</span>
|
|
1272
1316
|
<span class="k">return</span>
|
|
@@ -1327,11 +1371,7 @@
|
|
|
1327
1371
|
|
|
1328
1372
|
<details class="mkdocstrings-source">
|
|
1329
1373
|
<summary>Source code in <code>src/asimpy/event.py</code></summary>
|
|
1330
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">
|
|
1331
|
-
<span class="normal">27</span>
|
|
1332
|
-
<span class="normal">28</span>
|
|
1333
|
-
<span class="normal">29</span>
|
|
1334
|
-
<span class="normal">30</span>
|
|
1374
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">30</span>
|
|
1335
1375
|
<span class="normal">31</span>
|
|
1336
1376
|
<span class="normal">32</span>
|
|
1337
1377
|
<span class="normal">33</span>
|
|
@@ -1340,7 +1380,11 @@
|
|
|
1340
1380
|
<span class="normal">36</span>
|
|
1341
1381
|
<span class="normal">37</span>
|
|
1342
1382
|
<span class="normal">38</span>
|
|
1343
|
-
<span class="normal">39</span
|
|
1383
|
+
<span class="normal">39</span>
|
|
1384
|
+
<span class="normal">40</span>
|
|
1385
|
+
<span class="normal">41</span>
|
|
1386
|
+
<span class="normal">42</span>
|
|
1387
|
+
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">succeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
|
|
1344
1388
|
<span class="w"> </span><span class="sd">"""</span>
|
|
1345
1389
|
<span class="sd"> Handle case of event succeeding.</span>
|
|
1346
1390
|
|
|
@@ -1129,7 +1129,7 @@
|
|
|
1129
1129
|
<code>env</code>
|
|
1130
1130
|
</td>
|
|
1131
1131
|
<td>
|
|
1132
|
-
<code><
|
|
1132
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1133
1133
|
</td>
|
|
1134
1134
|
<td>
|
|
1135
1135
|
<div class="doc-md-description">
|
|
@@ -1347,7 +1347,7 @@
|
|
|
1347
1347
|
<code>env</code>
|
|
1348
1348
|
</td>
|
|
1349
1349
|
<td>
|
|
1350
|
-
<code><
|
|
1350
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1351
1351
|
</td>
|
|
1352
1352
|
<td>
|
|
1353
1353
|
<div class="doc-md-description">
|
|
@@ -1217,7 +1217,7 @@
|
|
|
1217
1217
|
<code>env</code>
|
|
1218
1218
|
</td>
|
|
1219
1219
|
<td>
|
|
1220
|
-
<code><
|
|
1220
|
+
<code><a class="autorefs autorefs-internal" title="Environment (asimpy.environment.Environment)" href="../environment/#asimpy.environment.Environment">Environment</a></code>
|
|
1221
1221
|
</td>
|
|
1222
1222
|
<td>
|
|
1223
1223
|
<div class="doc-md-description">
|