ANN: Release of SimPy2.1.0beta (Simulation in Python)

Klaus G. Muller kgmuller at
Wed May 12 14:48:49 CEST 2010

It is my pleasure to announce the release of SimPy 2.1.0beta. It is ready
for download at

It is published for community testing.  


SimPy 2.1.0 is a major new version, with a refactored code base, two
powerful API additions,  additional documentation 

and bug fixes.


2.1.0 is fully backward compatible with 2.0.1 and earlier versions.


Do not use this release for production purposes yet, but help with testing
it. Submit any bugs/comments/suggestions

 to the SimPy user mailing list (simpy-users at


What is SimPy?


SimPy (= Simulation in Python) is a process-based discrete-event simulation
package based on an implemented in standard Python. 

It is released under the GNU LGPL. 


It provides the modeller with components of a simulation model. These
include processes, for active components like

customers, messages, and vehicles, and resources, for passive components
that form limited capacity congestion

points like servers, checkout counters, and tunnels. It also provides
monitor variables to aid in gathering statistics.


SimPy has plotting and GUI capabilities "out of the box". It comes with
extensive documentation, tutorials and a

large number of example models.




SimPy 2.1.0 works with Python 2.3 and later versions. It does not work with
Python 3.x.

SimPy also works with Jython and IronPython, with the exception of SimPy's
plotting and GUI capabilities.


Change notes


Here are the changes to the previous SimPy release (2.0.1):




- A function `step` has been added to the API. When called, it executes  the
next scheduled event. 

  (`step` is actually a method of Simulation.)

- Another new function is `peek`. It returns the time of the next event.
By using `peek` and `step` 

  together, one can easily write e.g. an  interactive program to step
through a simulation event by event.

- A simple interactive debugger ```` has been added. It allows
stepping through a simulation 

  under user control, viewing the event list, skipping to a process' next
event,  etc..

- Versions of the Bank tutorials using the advanced object-oriented  API
have been added.

- A new document describes tools for gaining insight into and debugging
SimPy  models.




- Major re-structuring of SimPy code, resulting in much less  SimPy code --
great for the maintainers.

- Checks have been added which test whether entities belong to the  same
`Simulation` instance.

- The `Monitor` and `Tally` methods `timeAverage` and `timeVariance`   now
calculate only with the observed time-series.

- Changed class `Lister` so that circular references between  objects no
longer lead to stack overflow and crash.


Bug repairs


- Functions ``allEventNotices`` and ``allEventTimes`` are working again.

- Error messages for methods in SimPy.Lib work again.




The great code refactoring was done by Ontje Lünsdorf, with key inputs from
Stefan Scherfke. Thanks, guys!

I also thank the other developers and users for their inputs and support in
defining SimPy 2.1.0.


Now, go ahead, download SimPy 2.1.0beta, and then test it. (Did you know
that you can easily create an isolated

Python environment with virtualenv {
}? Use that, and you don't have to

overwrite your current SimPy installation for testing 2.1.0. Also good if
you are new to SimPy and just

want to try it out.)


Klaus Müller 


More information about the Python-announce-list mailing list