{ "info": { "author": "Luca Cominardi", "author_email": "luca.cominardi@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering" ], "description": ".. image:: https://travis-ci.org/Mallets/SimPype.svg?branch=master\n :target: https://travis-ci.org/Mallets/SimPype\n\n.. image:: https://codecov.io/gh/Mallets/SimPype/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/Mallets/SimPype\n\n.. image:: https://badge.fury.io/py/simpype.svg\n :target: https://badge.fury.io/py/simpype\n\n.. image:: https://readthedocs.org/projects/simpype/badge/?version=latest\n :target: http://simpype.readthedocs.io/en/latest/?badge=latest\n\n.. figure:: https://raw.githubusercontent.com/Mallets/SimPype/master/docs/_static/simpype_transparent.png\n :align: center\n :figwidth: 80 %\n\n\n========\nOverview\n========\n\nSimPype is a simulation framework based on `SimPy `_ that relies on the concepts of resource and pipe.\nSimPype decouples the resource from its queue (pipe) in such a way multiple queueing techniques can be used with the same resource.\nSimPype also allows to create both custom resource and pipe models that can be reused in multiple simulations.\n\nSimPype supports only Python >= 3.3. Previous versions of Python are not supported.\nThe quickest way to install SimPype is through `pip3`: \n\n >>> pip3 install simpype\n\nSimPype automatically installs SimPy as dependency.\n\nSimPype documentation can be found on `ReadTheDocs `_ while the source code repository is available on `GitHub `_.\n\nScope\n=====\n\nSimPype is tailored to scenarios where the queueing disciplines and the resources occupation are key parts of the system under simulation.\nPeople queueing at a post office, supermarket, car wash, cafeteria, etc. are examples of such scenarios.\n\nConcept\n=======\n\nA SimPype simulation environment comprises at least one `generator` and one `resource` which are connected via a `pipeline`.\nThe generator generates `messages` with a given `arrival time`.\nThose messages are firs enqueue in the resource `pipe` and next processed by the resources according with a `service time`.\n\nA simple scenario with one generator and one resource can be defined as follows in a python3 console:\n\n >>> import simpype\n >>> import random\n >>> sim = simpype.Simulation(id = 'overview')\n >>> gen0 = sim.add_generator(id = 'gen0')\n >>> gen0.random['arrival'] = {0: lambda: random.expovariate(1.0)}\n >>> res0 = sim.add_resource(id = 'res0')\n >>> res0.random['service'] = {0: lambda: random.expovariate(2.0)}\n >>> p0 = sim.add_pipeline(gen0, res0)\n >>> sim.run(until = 10)\n\nThe simulation steps can be summarized as follows:\n\n 1. The generator waits a ``random arrival time`` and generates a message;\n 2. The generator ``sends the message`` to the resource;\n 3. The ``message is enqueued`` in the resource's pipe;\n 4. When the resource becomes available, the ``message is dequeued`` from the pipe;\n 5. The ``message is served`` by the resource;\n 6. The message leaves the resource after a ``random service time`` and is sent to the next resource (if any) - Go to step 3.\n\nAny simulation steps can be customized as desired. Follows the `tutorial `_ to learn how to customize your simulation environment.\n\nSimPype also provides a built-in logging system for your simulation that automatically logs the simulation steps 3, 4, and 5.\nThe built-in system produces the logs in a tidy format where each variable is saved in its own column and each observation is saved in its own row:\n\n >>> timestamp,message,seq_num,resource,event\n ... 0.000000000,gen0,0,res0,pipe.in\n ... 0.000000000,gen0,0,res0,pipe.out\n ... 0.030509067,gen0,0,res0,resource.serve\n ... 4.283987797,gen0,1,res0,pipe.in\n ... 4.283987797,gen0,1,res0,pipe.out\n ... 4.296562508,gen0,1,res0,resource.serve\n ... 4.944812881,gen0,2,res0,pipe.in\n ... 4.944812881,gen0,2,res0,pipe.out\n ... 5.128244999,gen0,2,res0,resource.serve\n ... 6.402898951,gen0,3,res0,pipe.in\n ... 6.402898951,gen0,3,res0,pipe.out\n ... 7.044417615,gen0,3,res0,resource.serve\n ... 7.561061272,gen0,4,res0,pipe.in\n ... 7.561061272,gen0,4,res0,pipe.out\n ... 7.729431178,gen0,5,res0,pipe.in\n ... 8.129979622,gen0,4,res0,resource.serve\n ... 8.129979622,gen0,5,res0,pipe.out\n ... 8.171601538,gen0,6,res0,pipe.in\n ... 8.886733703,gen0,5,res0,resource.serve\n ... 8.886733703,gen0,6,res0,pipe.out\n ... 8.949540209,gen0,6,res0,resource.serve\n\nThis data format is well-suited for being directly processed by data manipulation tools like `pandas `_ or `dplyr `_. SimPype does not provide any tools for parsing the data. \n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Mallets/SimPype/", "keywords": "simulation queue pipe simpy", "license": "GPLv3+ License", "maintainer": "", "maintainer_email": "", "name": "simpype", "package_url": "https://pypi.org/project/simpype/", "platform": "", "project_url": "https://pypi.org/project/simpype/", "project_urls": { "Homepage": "https://github.com/Mallets/SimPype/" }, "release_url": "https://pypi.org/project/simpype/1.0.0rc10/", "requires_dist": [ "simpy (>=3.0.10)" ], "requires_python": ">=3.3", "summary": "SimPype is a simulation framework based on Simpy that relies on the concepts of resource and pipe.", "version": "1.0.0rc10" }, "last_serial": 5622908, "releases": { "0.0.1.dev2": [ { "comment_text": "", "digests": { "md5": "cb679a5209c0c42c44740c21f4df350e", "sha256": "20cc5b469c551276de565e9a3edccaa938754c1d82d87927ed179ae3faea66a1" }, "downloads": -1, "filename": "simpype-0.0.1.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "cb679a5209c0c42c44740c21f4df350e", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 12433, "upload_time": "2017-05-29T15:53:34", "url": "https://files.pythonhosted.org/packages/57/45/8a799ba8bdd3f72728ae25f0f88b1c2cb6420d92b66f9661683e11245cc7/simpype-0.0.1.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28074a23761a778818d46b5545d45df9", "sha256": "dd368bf6f08dab0685ba4ffe20af4e2eef1fa7d7d434200d742eb6418f3b609d" }, "downloads": -1, "filename": "simpype-0.0.1.dev2.tar.gz", "has_sig": false, "md5_digest": "28074a23761a778818d46b5545d45df9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7907, "upload_time": "2017-05-29T15:53:32", "url": "https://files.pythonhosted.org/packages/35/51/6af013068a8f2c77b76d3e2e275c1394a1570d71d368696abadcaaca9433/simpype-0.0.1.dev2.tar.gz" } ], "1.0.0rc1": [ { "comment_text": "", "digests": { "md5": "9aa817ebf6dddb912bec39c5dc74cbfa", "sha256": "497b79717abd81a726a6bb5f5568d73b7a15f415799ecb91f0ca98a7123c7f88" }, "downloads": -1, "filename": "simpype-1.0.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "9aa817ebf6dddb912bec39c5dc74cbfa", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 12638, "upload_time": "2017-06-01T10:39:11", "url": "https://files.pythonhosted.org/packages/a0/57/da1d783ee4b651ff5ade1b519e804192c1a3a0b79813cd3f3d22b5e21cb0/simpype-1.0.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "991a6687db7f1f6ab42f387c79e536aa", "sha256": "51ac35c22f520fa436932030c015c573559f8fb95faa08b9713b0318523d0037" }, "downloads": -1, "filename": "simpype-1.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "991a6687db7f1f6ab42f387c79e536aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7880, "upload_time": "2017-06-01T10:39:09", "url": "https://files.pythonhosted.org/packages/7a/75/fee52f89446192595f653ff0b9d86fe202fb8a1197b392182bd0c15bf723/simpype-1.0.0rc1.tar.gz" } ], "1.0.0rc10": [ { "comment_text": "", "digests": { "md5": "e6ea14e0a6796abf46bf158c671ec77c", "sha256": "94d5a2fd315b5c168243fdc5be9fb9ee724ae9d1f2f42cb3b0228f1015fe4539" }, "downloads": -1, "filename": "simpype-1.0.0rc10-py3-none-any.whl", "has_sig": false, "md5_digest": "e6ea14e0a6796abf46bf158c671ec77c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 21387, "upload_time": "2019-08-02T09:47:02", "url": "https://files.pythonhosted.org/packages/b3/70/de097a74237261d6fe766197c962ded1c974648375c8916072466873bb44/simpype-1.0.0rc10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4b8bd188af884a878d884462ad8f74f", "sha256": "a8625752cd2bef81acfbcd670f73f86ef6cf29e05ab9b772d5a0170840d798b4" }, "downloads": -1, "filename": "simpype-1.0.0rc10.tar.gz", "has_sig": false, "md5_digest": "e4b8bd188af884a878d884462ad8f74f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 18083, "upload_time": "2019-08-02T09:47:04", "url": "https://files.pythonhosted.org/packages/51/18/d061a05a31923b2999ae4e16a09cac2dfcc6eb9a19997c920bb7f3145aa4/simpype-1.0.0rc10.tar.gz" } ], "1.0.0rc2": [ { "comment_text": "", "digests": { "md5": "744b1a66f147a8c47b1f086e1ff5050f", "sha256": "9ca747eb0fc5a3cf7b983e00eeadc773d65be00a743d5e146cef01c0e2b7a86b" }, "downloads": -1, "filename": "simpype-1.0.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "744b1a66f147a8c47b1f086e1ff5050f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 23095, "upload_time": "2017-06-05T17:54:21", "url": "https://files.pythonhosted.org/packages/1d/81/da6ae9a9c800d0ba9e9e1e7be07bf8e350053f6043684b1b69ea27254f94/simpype-1.0.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6ec56ca24d2ea22937fd44c68c2b4c5", "sha256": "93b32ebdc131113e9fa1f173da8089d510c88315a27f558be4f30cddc341894e" }, "downloads": -1, "filename": "simpype-1.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "f6ec56ca24d2ea22937fd44c68c2b4c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15241, "upload_time": "2017-06-05T17:54:18", "url": "https://files.pythonhosted.org/packages/8d/46/e7dd49cd1dd465a6d5764d06c64406e751bd45eef780eb5529b44a1d2b47/simpype-1.0.0rc2.tar.gz" } ], "1.0.0rc3": [ { "comment_text": "", "digests": { "md5": "78ad21f8c9a3123c9b865a18d7500d9a", "sha256": "658586e5e5c2bc052b4d0622d12f8b8d4188636e6c3d5996ca44d510ace0fff3" }, "downloads": -1, "filename": "simpype-1.0.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "78ad21f8c9a3123c9b865a18d7500d9a", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 23475, "upload_time": "2017-06-06T11:59:24", "url": "https://files.pythonhosted.org/packages/5c/15/86836b89d96c7370c94760152c868bea71c4681d494ad25c22880330cc4d/simpype-1.0.0rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84761f835fd40f34c8edef8d69489ad1", "sha256": "b6dbf89f6074b22d058632ff9cfb6870a7a484bb3f6eda07a148f040b64a5469" }, "downloads": -1, "filename": "simpype-1.0.0rc3.tar.gz", "has_sig": false, "md5_digest": "84761f835fd40f34c8edef8d69489ad1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15545, "upload_time": "2017-06-06T11:59:22", "url": "https://files.pythonhosted.org/packages/d6/46/d0958a2174f08532f53862d3ce3e3c36de40e2580a2fd25620c042659355/simpype-1.0.0rc3.tar.gz" } ], "1.0.0rc4": [ { "comment_text": "", "digests": { "md5": "2f04432d946d520e3b195165ba364e24", "sha256": "d21914c2507ec61f48e23bda451b2625569c0e6fc108fef98742f0bf3f98ed24" }, "downloads": -1, "filename": "simpype-1.0.0rc4-py3-none-any.whl", "has_sig": false, "md5_digest": "2f04432d946d520e3b195165ba364e24", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 23471, "upload_time": "2017-06-08T15:07:51", "url": "https://files.pythonhosted.org/packages/d4/e8/9f460076aef0156a4efc92238ab742541272bff6ea41004c601f5c8b945f/simpype-1.0.0rc4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "635c5310b254a9b648b50732b9e4ff07", "sha256": "68bccb2250266626506f7be64c01916a58f60237f8acbbab3ae72798a772b376" }, "downloads": -1, "filename": "simpype-1.0.0rc4.tar.gz", "has_sig": false, "md5_digest": "635c5310b254a9b648b50732b9e4ff07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15535, "upload_time": "2017-06-08T15:07:49", "url": "https://files.pythonhosted.org/packages/06/65/6479ef7de49cb56092684564dac0dc208187f50f6a2477bdfe77e93883f0/simpype-1.0.0rc4.tar.gz" } ], "1.0.0rc5": [ { "comment_text": "", "digests": { "md5": "ded90bb38b947e8384c50a49183eb325", "sha256": "9ef1a84e87136fde401d0fdcbc75e242df79a98e9f89ee5882db68a4ddfbb2ff" }, "downloads": -1, "filename": "simpype-1.0.0rc5-py3-none-any.whl", "has_sig": false, "md5_digest": "ded90bb38b947e8384c50a49183eb325", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 23468, "upload_time": "2017-06-08T17:23:43", "url": "https://files.pythonhosted.org/packages/26/70/089439f2e3319c6f3b12eaa6f521c42242e259be7f63b0ecb3cc50688ff1/simpype-1.0.0rc5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67afbd24c7ecc125446a6b1ee58a86f3", "sha256": "b8aaa5579b5514755a9bf3a831fd5c8dcb95bc63c96c3ef111e1c4592b1ab54c" }, "downloads": -1, "filename": "simpype-1.0.0rc5.tar.gz", "has_sig": false, "md5_digest": "67afbd24c7ecc125446a6b1ee58a86f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15540, "upload_time": "2017-06-08T17:23:40", "url": "https://files.pythonhosted.org/packages/7c/fd/d3b63e602530472eac52e2466218577cf6eaa9d8b5bca2d3b443a4c661a3/simpype-1.0.0rc5.tar.gz" } ], "1.0.0rc6": [ { "comment_text": "", "digests": { "md5": "3a678c3d2a17a56b453bc1044fd92086", "sha256": "129fdceae19c244d5f90155b30d45de7a2023904cc590547217e81dac0d84385" }, "downloads": -1, "filename": "simpype-1.0.0rc6.tar.gz", "has_sig": false, "md5_digest": "3a678c3d2a17a56b453bc1044fd92086", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15781, "upload_time": "2017-12-27T18:16:02", "url": "https://files.pythonhosted.org/packages/86/5a/19b60272d4f55861380aeebd23863be4447a01da5f673d90d7432f1047ce/simpype-1.0.0rc6.tar.gz" } ], "1.0.0rc7": [ { "comment_text": "", "digests": { "md5": "47c0d5d0f3f7397bcc78321e497f8332", "sha256": "82e6664b1ba9480f23dbff33dff9006962e00859488dde9663bd5d1b3848b620" }, "downloads": -1, "filename": "simpype-1.0.0rc7.tar.gz", "has_sig": false, "md5_digest": "47c0d5d0f3f7397bcc78321e497f8332", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15960, "upload_time": "2018-03-07T14:27:48", "url": "https://files.pythonhosted.org/packages/fc/5c/6b72239fab3170b8dd21a1c2f807fc0ff95c74354ef15ed1c5d0717952fc/simpype-1.0.0rc7.tar.gz" } ], "1.0.0rc8": [ { "comment_text": "", "digests": { "md5": "77d18caec21e47911fefaa3b273b4b1c", "sha256": "eee938d67589260fdb646b08e0666c1dd98d70a117dc4a460946971f7ebb97d0" }, "downloads": -1, "filename": "simpype-1.0.0rc8.tar.gz", "has_sig": false, "md5_digest": "77d18caec21e47911fefaa3b273b4b1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16045, "upload_time": "2018-03-07T17:19:59", "url": "https://files.pythonhosted.org/packages/fb/77/6dbf9b1cc3669fedb130008c193a7e6b2c5145795f96e2315d80e7cac959/simpype-1.0.0rc8.tar.gz" } ], "1.0.0rc9": [ { "comment_text": "", "digests": { "md5": "c959ac17165ead934a574c253bacec2d", "sha256": "85493232f7c9fe00476cf2535d45b325ee295bfa04b1d7f38cac86c6c0abdf68" }, "downloads": -1, "filename": "simpype-1.0.0rc9.tar.gz", "has_sig": false, "md5_digest": "c959ac17165ead934a574c253bacec2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16117, "upload_time": "2018-03-17T11:25:27", "url": "https://files.pythonhosted.org/packages/a3/aa/224311722f13612a77fa6c07ad54df7c289b4d00b90741b314bc626b8132/simpype-1.0.0rc9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e6ea14e0a6796abf46bf158c671ec77c", "sha256": "94d5a2fd315b5c168243fdc5be9fb9ee724ae9d1f2f42cb3b0228f1015fe4539" }, "downloads": -1, "filename": "simpype-1.0.0rc10-py3-none-any.whl", "has_sig": false, "md5_digest": "e6ea14e0a6796abf46bf158c671ec77c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 21387, "upload_time": "2019-08-02T09:47:02", "url": "https://files.pythonhosted.org/packages/b3/70/de097a74237261d6fe766197c962ded1c974648375c8916072466873bb44/simpype-1.0.0rc10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4b8bd188af884a878d884462ad8f74f", "sha256": "a8625752cd2bef81acfbcd670f73f86ef6cf29e05ab9b772d5a0170840d798b4" }, "downloads": -1, "filename": "simpype-1.0.0rc10.tar.gz", "has_sig": false, "md5_digest": "e4b8bd188af884a878d884462ad8f74f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 18083, "upload_time": "2019-08-02T09:47:04", "url": "https://files.pythonhosted.org/packages/51/18/d061a05a31923b2999ae4e16a09cac2dfcc6eb9a19997c920bb7f3145aa4/simpype-1.0.0rc10.tar.gz" } ] }