Metadata-Version: 2.1
Name: usim
Version: 0.4.2
Summary: Lightweight Simulation Framework
Home-page: https://github.com/MaineKuehn/usim
Author: Eileen Kuehn, Max Fischer
Author-email: mainekuehn@gmail.com
License: MIT
Keywords: simulation simpy event loop async coroutine
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: System :: Monitoring
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: sortedcontainers
Provides-Extra: contrib
Requires-Dist: flake8 ; extra == 'contrib'
Requires-Dist: flake8-bugbear ; extra == 'contrib'
Requires-Dist: pytest (>=4.3.0) ; extra == 'contrib'
Requires-Dist: pytest-timeout ; extra == 'contrib'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-trio ; extra == 'docs'
Requires-Dist: sphinxcontrib-contentui ; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest (>=4.3.0) ; extra == 'test'
Requires-Dist: pytest-timeout ; extra == 'test'

===========================
``usim`` -- Simply Simulate
===========================

μSim offers a lightweight and expressive user interface,
built on top of a powerful and robust simulation framework.
Using the ``async``/``await`` capabilities of Python3,
μSim allows you to both quickly and reliably build even complex simulations.

.. code:: python3

   >>> from usim import delay, run
   >>>
   >>> async def metronome(period: float, sound: str):
   ...     async for now in delay(period):
   ...         print(sound, '@', now)
   ...
   >>> run(metronome(period=1, sound='tick'), metronome(period=2, sound='TOCK'), till=5)
   tick @ 1
   TOCK @ 2
   tick @ 2
   tick @ 3
   TOCK @ 4
   tick @ 4
   tick @ 5

Check out `the μSim documentation <https://usim.readthedocs.io/en/latest/>`_
for more information.

