{ "info": { "author": "Dariusz Dwornikowski", "author_email": "dariusz.dwornikowski@cs.put.poznan.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.3" ], "description": "pypepa\n------\n\n.. image:: https://raw.github.com/tdi/pypepa/dev/docs/pypepa.png\n\npypepa is a PEPA library and a toolset for `Performance Evaluation Process Algebra `_ (PEPA) by Jane\nHillston. pyPEPA is not a fully PEPA compatible tool, it supports a limited (for now) PEPA syntax (we only allow ``<>`` operator in system equation), i.e. it does not suport hiding operator (e.g. ``P\\{a,b,}``), does not calculate passage time. pyPEPA also does not use Kronecker state space representation and Hillston's aggregation algorithms, so it can have worse performance than the PEPA Eclipse Plugin.\nAll these features, plus more, are planned to be added in next versions. If you are willing to help, just email me or put a pull request. \n\n**Warning: pyPEPA is under development, this is a beta software**\n\npyPEPA consist of three parts:\n\n1. libpepa - a library written in Python,\n2. pyPEPA - a command line tool for solving and graphing,\n3. distr/ - map reduce tools for solving large PEPA experiments.\n\nMore docs can be found on `readthedocs `_.\n\n.. image:: https://api.travis-ci.org/tdi/pyPEPA.png\n\nNews\n----\n(19.05.2014) Switched completely to python > 3.3\n\n(22.07.2013) Docs added, pypepa has now docs on rtd.org\n\n(18.07.2013) pypepa can now calculate utilisations of components' states, output argument works\nagain\n\n(07.06.2013) Added support for defining rates as mathematical expressions, e.g. r=2*3+7*n;\n\nInstallation\n------------\n\nPackage\n~~~~~~~\nUsing pip:\n\n.. code-block:: bash\n\n $ pip install pypepa\n\nManually:\n\n1. Clone the project\n\n.. code-block:: bash\n\n $ git clone git@github.com:tdi/pyPEPA.git pypepa\n $ cd pypepa\n\n2. Run install\n\n.. code-block:: bash\n\n $ python setup.py install\n\n\nFrom the source\n~~~~~~~~~~~~~~~~\n\nFor the current version I recommend installing in a virtualenv. \n\n1. Clone the project\n\n.. code-block:: bash\n\n $ git clone git@github.com:tdi/pyPEPA.git pypepa\n $ cd pypepa\n\n2. Make a virtualenv\n\n.. code-block:: bash\n\n $ mkvirtualenv -p /usr/bin/python3 pypepa\n $ workon pypepa\n\n3. Install all requirements\n\n.. code-block:: bash\n\n $ pip install pyparsing numpy scipy matplotlib\n\n\nUsing pypepa\n------------\n\nBasic arguments\n~~~~~~~~~~~~~~~\n\nShow help command:\n\n.. code-block:: bash\n\n $ pypepa -h\n\nSet logging level (the default is NONE):\n\n.. code-block:: bash\n\n $ pypepa --log {DEBUG, INFO, ERROR, NONE}\n \nCalculations\n~~~~~~~~~~~~\n\nCalculate steady state for bank scenario. The putput is by default directed to your terminal. \n\n.. code-block:: bash\n\n $ pypepa -st models/bankscenario.pepa\n \n Statespace of models/bankscenario.pepa.1 has 7 states \n \n Steady state vector\n Using ; delimiter\n 1;Idle,WaitingForCustomer,WaitingForEmployee;0.08333333333333337\n 2;Informed,WaitingForCustomer,WaitingForEmployee;0.25\n 3;WaitingBankResponse,RequestReceived,WaitingForEmployee;0.16666666666666666\n 4;WaitingBankResponse,CustomerNotReliable,WaitingForEmployee;0.16666666666666666\n 5;WaitingBankResponse,CustomerReliable,WaitingForEmployee;0.16666666666666666\n 6;WaitingBankResponse,WaitingManagerResponse,EvaluatingOffer;0.08333333333333333\n 7;OfferReceived,WaitingForCustomer,WaitingForEmployee;0.08333333333333333\n \nCalculate actions' throughput:\n\n.. code-block:: bash\n\n $ pypepa -th models/bankscenario.pepa\n \n Statespace of models/bankscenario.pepa.1 has 7 states \n\n Throuhput (successful action completion in one time unit)\n \n readInformation 0.08333333333333337\n createLoanRequest 0.25\n getNotReliableMessage 0.16666666666666666\n badOffer 0.08333333333333333\n askManager 0.16666666666666666\n reset 0.08333333333333333\n goodOffer 0.08333333333333333\n checkReliability 0.3333333333333333\n \nYou can calculate transient time proability for some number of time steps:\n\n.. code-block:: bash\n\n $ pypepa --transient 5 models/bankscenario.pepa\n \n Transient analysis from time 0 to 10\n\n Using ; delimiter\n 1;Idle,WaitingForCustomer,WaitingForEmployee;0.08351202761947342\n 2;Informed,WaitingForCustomer,WaitingForEmployee;0.2500169897974121\n 3;WaitingBankResponse,RequestReceived,WaitingForEmployee;0.16662129023697114\n 4;WaitingBankResponse,CustomerNotReliable,WaitingForEmployee;0.16657721277634494\n 5;WaitingBankResponse,CustomerReliable,WaitingForEmployee;0.16657721277634485\n 6;WaitingBankResponse,WaitingManagerResponse,EvaluatingOffer;0.08328947039778702\n 7;OfferReceived,WaitingForCustomer,WaitingForEmployee;0.08340579639566591\n \nYou can choose a solver by specifying ``--solver|-s {direct, sparse}``. \nBy defalt we use sparse solver with LIL matrix becuase it is faster and in overall matrices generated from PEPA models are sparse. There is also an insignificant difference in results. \n\npypepa allows you to visualise all PEPA components and the whole state space of a model by specifying ``-gd`` switch. The generated graphiz dot files are by deault saved in ``dots`` folder in the current directory. You can browse dot files with ``xdot``, which you need to install first. \n\n.. code-block:: bash\n\n $ pypepa -gd bankdots models/bankscenario.pepa\n\n\nFinally pypepa can provide us with a tool for experimentation with rates and actions. \nLet's check how throughtput of ``askManager`` action changes when ``rateReset`` changes from 1 to 50 with step 1. The default result of this command will be a matplotlib graph.\nThe format of ``-var`` is \"vartype:varname:value range specifier:value range value\". The one valid\nvartype for now is ``rate``, for value range specifiers you can choose: ``range`` or ``list``. For ``range``\nyou need to provide START, STOP, STEP, whereas for ``list`` a comma separated list of values. \nYou can specify other output options with ``-f`` argument: graph, console, csv. \n\n.. code-block:: bash\n\n $ pypepa -var \"rate:rateReset:range:1,50,1\" -val askManager models/bankscenario.pepa\n\n.. image:: https://raw.github.com/tdi/pypepa/dev/docs/bankexample.png\n :width: 350pt \n\n\nFormatting\n~~~~~~~~~~\n\nYou can specify formats of ``-st``, ``-th`` and ``--varrate`` with a ``--format`` option. \nCurrently we support CSV (although `;` not comma delimited), console (the default) and graph (only\nfor varrate experiments). Additionally you can specify ``-o|--output`` option with a file argument to specify where to save the CSV. \n\n.. code-block:: bash\n\n $ pypepa -st models/bankscenario.pepa -f csv -o bank_steady.csv\n\n\nTODO\n----\n\nFunctional\n~~~~~~~~~~\n\n1. Implement rate mathematical expressions with functional rates (DONE)\n2. Implement passage time analysis\n3. Implement hiding operator\n4. Implement 3d graphs and experiments (DONE)\n5. Implement Kronecker state space and aggregation\n6. Implement generalised communication PEPA `genPEPA `_ by Mirco Tribastone\n7. Add model manipulation language for reducers\n8. Add stochastic probes\n9. Add distributed version of BU algorithm\n10. Add importing of models and components from external files (and namespaces)\n\nNon functional\n~~~~~~~~~~~~~~\n\n1. Optimise optimise optimise\n\nLicence and credits\n-------------------\n\nCopyright (c) Dariusz Dwornikowski and Poznan University of Technology. \nDistributed under the Apache Commons 2.0.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tdi/pyPEPA", "keywords": null, "license": "Apache Common 2.0", "maintainer": null, "maintainer_email": null, "name": "pypepa", "package_url": "https://pypi.org/project/pypepa/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pypepa/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/tdi/pyPEPA" }, "release_url": "https://pypi.org/project/pypepa/0.4.13/", "requires_dist": null, "requires_python": null, "summary": "pypepa is a PEPA library and a toolset for PEPA.", "version": "0.4.13" }, "last_serial": 1154914, "releases": { "0.4.10dev1": [ { "comment_text": "", "digests": { "md5": "018d561559af8651a2c9dd29ae15e65b", "sha256": "16f6eb1e3ee1e46d862efbb601363d4792aaa31d1b385864a13412f132bd6b50" }, "downloads": -1, "filename": "pypepa-0.4.10dev1.tar.gz", "has_sig": false, "md5_digest": "018d561559af8651a2c9dd29ae15e65b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25179, "upload_time": "2013-07-08T10:42:35", "url": "https://files.pythonhosted.org/packages/dd/6f/9483ea93ee371d1675113e67a083f90bd4a3a8cc59a6a05515aa296f38c4/pypepa-0.4.10dev1.tar.gz" } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "0709ea12857b03b245031ad3b36e565c", "sha256": "46964d63635f62ffc2872ab786616c957a6fa079e920a589c5f5841e47573e37" }, "downloads": -1, "filename": "pypepa-0.4.11.tar.gz", "has_sig": false, "md5_digest": "0709ea12857b03b245031ad3b36e565c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25532, "upload_time": "2014-05-19T09:36:12", "url": "https://files.pythonhosted.org/packages/45/44/4d74346da20589c1e4eea9ec9bfe808e73a9b859d08dd9265366f0e1fb94/pypepa-0.4.11.tar.gz" } ], "0.4.11dev1": [ { "comment_text": "", "digests": { "md5": "caee7b60bb94f9be390c8002a16c71ad", "sha256": "297e1a00aaac741fa3b54d118e2c4e91e323c67d22583451f9e241358863b005" }, "downloads": -1, "filename": "pypepa-0.4.11dev1.tar.gz", "has_sig": false, "md5_digest": "caee7b60bb94f9be390c8002a16c71ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25873, "upload_time": "2013-07-18T10:31:03", "url": "https://files.pythonhosted.org/packages/a9/32/2852c54dbd700511940563d2b60dae976e45b4c47fe5e5db79865bb56a98/pypepa-0.4.11dev1.tar.gz" } ], "0.4.11dev2": [ { "comment_text": "", "digests": { "md5": "191896450fa11825b3fbc565b34376a0", "sha256": "dbc677ec8f10136f0415a1709fd5410cbf8bb5b14e30a1927d69e8ded39dab6b" }, "downloads": -1, "filename": "pypepa-0.4.11dev2.tar.gz", "has_sig": false, "md5_digest": "191896450fa11825b3fbc565b34376a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25947, "upload_time": "2013-07-22T07:07:35", "url": "https://files.pythonhosted.org/packages/24/49/c61a35b3610301bd29f3a8822835291e37d1569a87126c014146de5385ad/pypepa-0.4.11dev2.tar.gz" } ], "0.4.12": [ { "comment_text": "", "digests": { "md5": "2512389dae1cf5dddaa67f5abac077d4", "sha256": "b096ad585b6db5ef0cb068f5b51c3c63a76b9a17b697597cc1ae3bf31a7b5c7c" }, "downloads": -1, "filename": "pypepa-0.4.12.tar.gz", "has_sig": false, "md5_digest": "2512389dae1cf5dddaa67f5abac077d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25770, "upload_time": "2014-05-19T09:57:47", "url": "https://files.pythonhosted.org/packages/bb/4f/90c02c7b042d8be9a9ce7da9a58ab1ac7a149be8bf069894da1b97de3222/pypepa-0.4.12.tar.gz" } ], "0.4.13": [ { "comment_text": "", "digests": { "md5": "22ec06b17193c290e9c377a7b63b671b", "sha256": "aa69a11e484347c1051804042e24f4fe331006ccf71c28668aabe7c7d0d56fb8" }, "downloads": -1, "filename": "pypepa-0.4.13.tar.gz", "has_sig": false, "md5_digest": "22ec06b17193c290e9c377a7b63b671b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25871, "upload_time": "2014-07-11T15:53:23", "url": "https://files.pythonhosted.org/packages/ce/d7/53f232d17b4ae486e28b5eef0c7cb7446bad8581a334e8c9a19875fa939f/pypepa-0.4.13.tar.gz" } ], "0.4.1dev": [ { "comment_text": "", "digests": { "md5": "603bead31f10d50456e832b7507c4c1f", "sha256": "240a3af97aa34cfb7778a583855e86b9a7feef2681b892d90aca1893637fb07d" }, "downloads": -1, "filename": "pypepa-0.4.1dev.tar.gz", "has_sig": false, "md5_digest": "603bead31f10d50456e832b7507c4c1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25504, "upload_time": "2013-06-05T09:46:16", "url": "https://files.pythonhosted.org/packages/ed/09/00fb5a92f2f9751f12bb36302bdecee653fd8e6a4385bb2b4aeccb835591/pypepa-0.4.1dev.tar.gz" } ], "0.4.2dev": [ { "comment_text": "", "digests": { "md5": "bc4a43e7490904dce6b6a5328b320929", "sha256": "024187d78356b6d67df582022243941abda4f78b5a459cf3c38e35b4fa10ae2d" }, "downloads": -1, "filename": "pypepa-0.4.2dev.tar.gz", "has_sig": false, "md5_digest": "bc4a43e7490904dce6b6a5328b320929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25504, "upload_time": "2013-06-05T10:11:22", "url": "https://files.pythonhosted.org/packages/2a/6d/367ef6503b0b24250297b9738e54e6481eb2504b362de1be93d164779a84/pypepa-0.4.2dev.tar.gz" } ], "0.4.3dev": [ { "comment_text": "", "digests": { "md5": "73dbe03bf45b01ac57b653401410d533", "sha256": "fcfc6975911b9766b934689c9018b62c0907bebb86b8e2de84ceb3e1b5b4e24f" }, "downloads": -1, "filename": "pypepa-0.4.3dev.tar.gz", "has_sig": false, "md5_digest": "73dbe03bf45b01ac57b653401410d533", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22625, "upload_time": "2013-06-05T10:33:30", "url": "https://files.pythonhosted.org/packages/f5/74/ca1d13f451f60e9c806e64b12a57108e9e378368ff186fef363a41973d3e/pypepa-0.4.3dev.tar.gz" } ], "0.4.4dev": [ { "comment_text": "", "digests": { "md5": "f57c00d1cd4573a92f5b7e65cf4bebeb", "sha256": "8c820aa4b9834dfe98a6928dc163d30b8d379be8c8e7731b6982c9038f35c74b" }, "downloads": -1, "filename": "pypepa-0.4.4dev.tar.gz", "has_sig": false, "md5_digest": "f57c00d1cd4573a92f5b7e65cf4bebeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22643, "upload_time": "2013-06-05T10:48:27", "url": "https://files.pythonhosted.org/packages/89/f5/96a1403a72459e91fbea09dcee20ad8da3f9bbeade666c3ba31ad4d76036/pypepa-0.4.4dev.tar.gz" } ], "0.4.5dev": [ { "comment_text": "", "digests": { "md5": "2d7d64fbcc8bbebf40dcf1bc15e32eb7", "sha256": "cd24b60fa8bf1cf310142a4198a77c8e0ba8b8a881f63cf4030bf3fc33b981e2" }, "downloads": -1, "filename": "pypepa-0.4.5dev.tar.gz", "has_sig": false, "md5_digest": "2d7d64fbcc8bbebf40dcf1bc15e32eb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22617, "upload_time": "2013-06-05T10:55:49", "url": "https://files.pythonhosted.org/packages/a8/51/5bf55a018ec0515cc2b11f689229d113f7354c0b50e198d189150820ec10/pypepa-0.4.5dev.tar.gz" } ], "0.4.6dev": [ { "comment_text": "", "digests": { "md5": "31e0130fc0aab449045d18232d52cfa9", "sha256": "db2b1638221c9919a8f00d95e3f56c005f544fa5a67908f5435e61e3bd4589bc" }, "downloads": -1, "filename": "pypepa-0.4.6dev.tar.gz", "has_sig": false, "md5_digest": "31e0130fc0aab449045d18232d52cfa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22534, "upload_time": "2013-06-05T11:58:02", "url": "https://files.pythonhosted.org/packages/d2/c3/f968719670a0d7a9c651d15ab5548150a2d296a0c2a6813ecf0a93d86121/pypepa-0.4.6dev.tar.gz" } ], "0.4.7dev": [ { "comment_text": "", "digests": { "md5": "1fb7784105ff5fc39f43012c3b4de490", "sha256": "952925e070e09fd34308cfc1854efefb340d26f34cfc5d7d4effc0b4bbad4171" }, "downloads": -1, "filename": "pypepa-0.4.7dev.tar.gz", "has_sig": false, "md5_digest": "1fb7784105ff5fc39f43012c3b4de490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22575, "upload_time": "2013-06-06T14:59:28", "url": "https://files.pythonhosted.org/packages/30/ba/46575ff99be7b4c6f925b07af4b55a067ca5987e15f1a92dac8e4e83c9af/pypepa-0.4.7dev.tar.gz" } ], "0.4.7dev2": [ { "comment_text": "", "digests": { "md5": "1e6a7c66889c2fd8e29c70ef1f3b7953", "sha256": "1d565d1e259d58fb26c9f968907e2f43df61812da80c54beb189fb9eda1b3c86" }, "downloads": -1, "filename": "pypepa-0.4.7dev2.tar.gz", "has_sig": false, "md5_digest": "1e6a7c66889c2fd8e29c70ef1f3b7953", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23034, "upload_time": "2013-06-06T15:32:40", "url": "https://files.pythonhosted.org/packages/ba/1e/c7bccb6e57dee873f2bedba089dfd3184b2c9d2bfdb93c4d78e789da2d79/pypepa-0.4.7dev2.tar.gz" } ], "0.4.8dev1": [ { "comment_text": "", "digests": { "md5": "5d956762a0f1e8d3d58ad0ed06509890", "sha256": "f77973e116ebeaba23d2bc9e72d45c85d91cbab1c9e091da391f4d1c27025a43" }, "downloads": -1, "filename": "pypepa-0.4.8dev1.tar.gz", "has_sig": false, "md5_digest": "5d956762a0f1e8d3d58ad0ed06509890", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24668, "upload_time": "2013-06-15T09:26:00", "url": "https://files.pythonhosted.org/packages/4a/e8/cd5cc0d0d6a2b553be99fb24de61190f25ec9e9b9b8ad1989a70c6b9b5bc/pypepa-0.4.8dev1.tar.gz" } ], "0.4.8dev2": [ { "comment_text": "", "digests": { "md5": "ce41ca740a596f66f0eba4e0ade9816b", "sha256": "2edade375caff4792861f906ff9098f88e6dd60240251e333183d89cf2a68366" }, "downloads": -1, "filename": "pypepa-0.4.8dev2.tar.gz", "has_sig": false, "md5_digest": "ce41ca740a596f66f0eba4e0ade9816b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24672, "upload_time": "2013-06-18T10:54:56", "url": "https://files.pythonhosted.org/packages/d7/e7/12d6ab8caaa7a85121181d354054867da372a8d210da04923b0fd96f40a5/pypepa-0.4.8dev2.tar.gz" } ], "0.4.9dev1": [ { "comment_text": "", "digests": { "md5": "a5c65d04535e988c836e6e7f159db288", "sha256": "3c1625e199953c6839ec9b3f71b0a96c4ed5b24b540fe0a7a4dc45f923abacea" }, "downloads": -1, "filename": "pypepa-0.4.9dev1.tar.gz", "has_sig": false, "md5_digest": "a5c65d04535e988c836e6e7f159db288", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24932, "upload_time": "2013-06-26T11:13:39", "url": "https://files.pythonhosted.org/packages/56/83/c16545dc07b020254f21f45bebfd9c7a004609506a88ebbe4f71fb3bc54d/pypepa-0.4.9dev1.tar.gz" } ], "0.4dev": [ { "comment_text": "", "digests": { "md5": "675ce1115f6e5719d8ea386ea366d19b", "sha256": "01aaad19c32e9ec5f86b4c86950f3eee3aa5082490e9878d52436d9f51e223de" }, "downloads": -1, "filename": "pypepa-0.4dev.tar.gz", "has_sig": false, "md5_digest": "675ce1115f6e5719d8ea386ea366d19b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23593, "upload_time": "2013-06-05T09:10:24", "url": "https://files.pythonhosted.org/packages/08/fd/3b58abd35d265d25e9689d5074e5cf650a6fc253ced7c66be0c047d4b089/pypepa-0.4dev.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "22ec06b17193c290e9c377a7b63b671b", "sha256": "aa69a11e484347c1051804042e24f4fe331006ccf71c28668aabe7c7d0d56fb8" }, "downloads": -1, "filename": "pypepa-0.4.13.tar.gz", "has_sig": false, "md5_digest": "22ec06b17193c290e9c377a7b63b671b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25871, "upload_time": "2014-07-11T15:53:23", "url": "https://files.pythonhosted.org/packages/ce/d7/53f232d17b4ae486e28b5eef0c7cb7446bad8581a334e8c9a19875fa939f/pypepa-0.4.13.tar.gz" } ] }