Franck Pommereau

added to PyPI, revised README that was really outdated

syntax: glob
dist/*
utils/abcd-mode.elc
dput.sh
*.pyc
*~
......
# file GENERATED by distutils, do NOT edit
,let.png
,let.py
,net-with-colors.png
,railroad.png
,railroad.pnml
,test-gv-circo.png
,test-gv-dot.png
,test-gv-fdp.png
,test-gv-graph.png
,test-gv-neato.png
,test-gv-twopi.png
.hgignore
.hgtags
BUGS
MANIFEST.in
Makefile
NEWS
README
TODO
VERSION
dput.sh
mkdeb.py
mklang.py
setup.py
test.py
bin/abcd
bin/snkc
bin/snkd
doc/COPYING
doc/abcd.txt
doc/queries.txt
doc/simple-coloured.pnml
doc/simple-pt.pnml
doc/snakes-pnml.txt
doc/tutorial.png
doc/tutorial.txt
doc/examples/abcd/README
doc/examples/abcd/philo.abcd
doc/examples/abcd/prod-cons.abcd
doc/examples/abcd/railroad.abcd
doc/examples/abcd/railroad.py
doc/examples/abcd/ns/dolev_yao.py
doc/examples/abcd/ns/ns.abcd
doc/examples/abcd/ns/ns.py
snakes/__init__.py
snakes/compat.py
snakes/data.py
snakes/hashables.py
snakes/nets.py
snakes/pnml.py
snakes/typing.py
snakes/lang/__init__.py
snakes/lang/asdl.py
snakes/lang/astjy25.py
snakes/lang/astpy25.py
snakes/lang/astpypy.py
snakes/lang/pgen.py
snakes/lang/unparse.py
snakes/lang/abcd/__init__.py
snakes/lang/abcd/asdl.py
snakes/lang/abcd/parser.py
snakes/lang/abcd/pgen.py
snakes/lang/ctlstar/__init__.py
snakes/lang/ctlstar/asdl.py
snakes/lang/ctlstar/parser.py
snakes/lang/ctlstar/pgen.py
snakes/lang/pylib/__init__.py
snakes/lang/pylib/asdl.py
snakes/lang/pylib/spark.py
snakes/lang/pylib/unparse.py
snakes/lang/python/__init__.py
snakes/lang/python/asdl.py
snakes/lang/python/parser.py
snakes/lang/python/pgen.py
snakes/plugins/__init__.py
snakes/plugins/clusters.py
snakes/plugins/gv.py
snakes/plugins/hello.py
snakes/plugins/labels.py
snakes/plugins/let.py
snakes/plugins/modules.py
snakes/plugins/ops.py
snakes/plugins/pids.py
snakes/plugins/pos.py
snakes/plugins/query.py
snakes/plugins/status.py
snakes/plugins/synchro.py
snakes/utils/__init__.py
snakes/utils/apidoc.py
snakes/utils/abcd/__init__.py
snakes/utils/abcd/build.py
snakes/utils/abcd/checker.py
snakes/utils/abcd/main.py
snakes/utils/abcd/simul.py
snakes/utils/abcd/transform.py
snakes/utils/ctlstar/__init__.py
snakes/utils/ctlstar/build.py
utils/abcd-mode.el
SNAKES is the Net Algebra Kit for Editors and Simulators
========================================================
////////////////////////////////////////////////////////////////
This file is formatted in order to be processed by AsciiDoc
(http://www.methods.co.nz/asciidoc). It will be more comfortable
to render it or to read the HTML version available at:
http://www.univ-paris12.fr/pommereau/soft/snakes/index.html
////////////////////////////////////////////////////////////////
SNAKES is a Python library that provides all then necessary to define
and execute many sorts of Petri nets, in particular those of the PBC
and M-nets family. Its main aim is to be a general Petri net library,
being able to cope with most Petri nets models, and providing the
researcher with a tool to quickly prototype its new ideas. SNAKES
should be suitable to provide the data model for editors or
simulators; actually, any editor that use SNAKES may also be a
simulator as SNAKES can execute any net.
SNAKES is a Python library that provides all the necessary to define
and execute many sorts of Petri nets, in particular algebras of Petri
nets. SNAKES' main aim is to be a general Petri net library, being
able to cope with most Petri nets models, and providing the researcher
with a tool to quickly prototype new ideas.
A key feature of SNAKES is the ability to use arbitrary Python objects
as tokens and arbitrary Python expressions in many points, for
instance in transitions guards or arcs outgoing of transitions. This
is what makes SNAKES that general. This relies on the capability of
Python to run dynamically provided Python code (the $eval$ function).
This feature may not be efficient enough for model-checking: speed is
the price to pay for the wide generality. However, in the case of a
new model, SNAKES may happen to be the only available tool.
provides out of the box a great flexibility.
Another important feature of SNAKES is the plugin system that allows
to extend the features and work with specialised classes of Petri
nets. Currently, the following plugins are provided:
pos:: adds to nodes the capability of holding their position. Nodes
can be moved or shifted, Petri nets can be shifted globally and their
bounding box can be computed.
gv:: adds a method to draw a Petri net or a state graph using the tool
http://www.graphviz.org[GraphViz] (through the Python binding
http://networkx.lanl.gov/wiki/pygraphviz[PyGraphViz]). This module
replaces the previous plugin called _graphviz_ and provides more
flexibility and security, _graphviz_ is still provided but deprecated.
status:: extends the Petri net model by adding status to the nodes.
This is similar to what is used in the models of the PBC or Mnets
family. Nodes can then merged automatically according to their status.
ops:: this plugins defines control flow operations on Petri nets
usually found in the PBC and Mnets family. Nets can be composed in
parallel, sequence, choice and iteration. These operations rely on the
places status.
labels:: allows to add arbitrary labels to most objects (places,
transitions, nets, ...)
posops:: combines the features of pos and ops plugins: the control
flow operations are modified in order to rearrange the nodes position
in order to provide well shaped nets. This plugin is deprecated
because the new _gv_ does the work much better.
synchro:: it defines the label-based transition synchronisation
defined in the Mnets model.
// export:: allows to save Petri nets objects in the format of the tools
// http://pep.sourceforge.net[PEP], http://helena.cnam.fr[Helena] and
// http://maria[Maria]. http://pnml[PNML] is also supported as it is
// built-in SNAKES.
lashdata:: allows to define data that is not handled in the places of
the Petri net but stored instead in the special structures handled by
the http://www.montefiore.ulg.ac.be/~boigelot/research/lash/[library
Lash]. This allows in particular to aggregate possibly infinite states
into one meta-state.
clusters:: this is an auxiliary plugin that allows to group nodes in a
Petri net. This feature is used by _ops_ in order to record how a net
is constructed, which is exploited by _gv_ in order to build a nice
layout of composed nets.
to extend the features, for instance to work with specialised classes
of Petri nets (e.g., plugins are provided to draw nets, or to compose
them using the various control-flows operations). Plugins are another
way to introduce flexibility but requiring some involvement.
Getting SNAKES and installing it
--------------------------------
Next step to use SNAKES should be to read the tutorial that describes installation and first steps.
Download http://www.univ-paris12.fr/lacl/pommereau/soft/snakes/snakes-{VERSION}.tar.gz[$snakes-{VERSION}.tar.gz$]
({sys:../stat snakes-{VERSION}.tar.gz})
Useful links
------------
To install SNAKES, uncompress the archive and copy the directory
snakes in a location where Python can find it (_i.e._, in a directory
listed in your $PYTHONPATH$ environment variable).
- SNAKES homepage (documentation, tutorial, API reference, ...)
http://www.ibisc.univ-evry.fr/~fpommereau/SNAKES/
- SNAKES development page (source repository, history, bug reports,
feature requests, ...)
http://code.google.com/p/python-snakes
- Ubuntu packages
http://launchpad.net/~pommereau/+archive/ppa
SNAKES should work with a Python version at least 2.5 but will _not_
work for an older version. Optionally, you may want to install
additional software required by some plugins:
Copyright
---------
gv:: depends on http://www.graphviz.org[GraphViz] and its Python
binding http://networkx.lanl.gov/wiki/pygraphviz[PyGraphViz]. The
plugin _graphviz_ depends on GraphViz only but is now deprecated.
lashdata:: requires
http://www.montefiore.ulg.ac.be/~boigelot/research/lash[Lash] and
the
http://www.univ-paris12.fr/lacl/pommereau/soft/index.html#PyLash[Python
Lash binding].
[NOTE]
=====================
(C) 2007 Franck Pommereau <pommereau@univ-paris12.fr>
(C) 2007-2014 Franck Pommereau <franck.pommereau@ibisc.univ-evry.fr>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
......@@ -119,34 +50,3 @@ You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
=====================
Contact
-------
Please feel free to send me comments, questions, bug reports or
contributions by mailto:pommereau@univ-paris12.fr[email].
If you wish to be notified of the new releases of SNAKES, please
register at the http://freshmeat.net/projects/snakes[FreshMeat page].
You may contribute to SNAKES by either send patches by email, or by
using the https://launchpad.net/snakes[SNAKES Launchpad page].
Documentation
-------------
A good starting point may be the link:tutorial.html[tutorial]. Then,
you may find the link:api/index.html[API reference manual] useful, it
documents all the API and gives number of examples of how to use the
various classes and functions.
If you do not program Python, you can learn it in a few hours thanks
to the very good http://docs.python.org/tut/tut.html[Python tutorial].
In order to know more about the PBC and M-nets family or the Petri net
compositions defined in the plugins, you may read papers from
http://www.univ-paris12.fr/lacl/pommereau/publis[my publications page]
(in particular those with _calculus_ in the title).
......
precise 12.04 LTS
quantal 12.10
raring 13.04
saucy 13.10
......
......@@ -15,6 +15,15 @@ def doc_files() :
result[target_dir].append(os.path.join(root, name))
return list(result.items())
try :
long_description=open("README").read()
except :
long_description="""SNAKES is a general purpose Petri net Python
library allowing to define and execute most classes of Petri
nets. It features a plugin system to allow its extension. In
particular, plugins are provided to implement the operations
usually found in the PBC and M-nets family."""
if __name__ == "__main__" :
print("Compiling Emacs files...")
if os.system("emacs -batch -f batch-byte-compile utils/abcd-mode.el") :
......@@ -26,16 +35,12 @@ if __name__ == "__main__" :
setup(name="SNAKES",
version=open("VERSION").read().strip(),
description="SNAKES is the Net Algebra Kit for Editors and Simulators",
long_description="""SNAKES is a general purpose Petri net Python
library allowing to define and execute most classes of Petri
nets. It features a plugin system to allow its extension. In
particular, plugins are provided to implement the operations
usually found in the PBC and M-nets family.""",
long_description=long_description,
author="Franck Pommereau",
author_email="pommereau@univ-paris12.fr",
author_email="franck.pommereau@ibisc.univ-evry.fr",
maintainer="Franck Pommereau",
maintainer_email="pommereau@univ-paris12.fr",
url="http://lacl.univ-paris12.fr/pommereau/soft/snakes",
maintainer_email="franck.pommereau@ibisc.univ-evry.fr",
url="http://http://www.ibisc.univ-evry.fr/~fpommereau/SNAKES/",
scripts=["bin/abcd",
"bin/snkc",
"bin/snkd",
......