python-csp: Communicating Sequential Processes for Python
Copyright (C) Sarah Mount, 2009 under the GNU GPL v2. See the file LICENSE for more details.
python-csp can be installed using PIP (PIP Installs Python):
$ sudo pip install python-csp
or from a source distribution using setup.py:
$ python setup.py install
python-csp adds C.A.R. (Tony) Hoare's Communicating Sequential Processes to Python. A brief example:
>>> @process ... def writer(channel, n): ... for i in xrange(n): ... channel.write(i) ... channel.poison() ... return ... >>> @process ... def reader(channel): ... while True: ... print channel.read() ... >>> chan = Channel() >>> Par(reader(chan), writer(chan, 5)).start() 0 1 2 3 4 >>>
There are several sources of documentation for python-csp:
Online documentation, including a tutorial, is hosted on Read the Docs
If you are running the python-csp shell, type "info csp" to list available in-shell help.
Some community documentation, such as sprint reports and PDFs of peer-reviewed publications can be found at extradocs
Support and contributing.
We have a mailing list where you can ask questions.
If you wish to contribute to this project, please fork the repo on GitHub and issue a pull request.
S. Mount, M. Hammoudeh, S. Wilson, R. Newman (2009) CSP as a Domain-Specific Language Embedded in Python and Jython. In Proceedings of Communicating Process Architectures 2009. Eindoven, Netherlands. 1st -- 4th November 2009. Published IOS Press. [[PDF] (http://github.com/python-concurrency/extradocs)]