{ "info": { "author": "Marco Paolieri", "author_email": "paolieri@oris-tool.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "# ORIS for Python\n\nThis is a library for the analysis of discrete-event models governed\nby *integer variables* and *continuous timers*:\n\n- **Variables** hold positive or negative integers. They represent the\n *observable state* of the system. For example, the variable `queue`\n could store the current number of customers.\n\n- **Timers** track the continuous time to events that change state\n variables:\n\n - A timer is enabled if its *guard* is satisfied. In the queue\n example, the `service` timer is enabled when `queue > 0`.\n\n - The value of the timer is sampled according to a probability\n distribution; for example, `Unif(1, 2)` samples a random value\n between 1 and 2.\n\n - When the timer elapses, it can trigger a change in the state\n variables, for example, `queue = queue-1` after `service`. This\n change can start other timers (because their guards are now\n satisfied) or disable them (the guards are not satisfied\n anymore).\n\nThe example of a single-server queue with capacity of 200, Poisson\narrivals (exponential interarrival times) and uniform service times\nlooks like this:\n\n``` python\nfrom oris import *\n\nb = ModelBuilder()\n\n# for each variable: name, initial value, min, max (defaults: 0, 0, 'inf')\nb.var('queue', 1, 0, 200)\n\n# for each timer: name, guard, distribution, state update\nb.timer('arrival', 'True', Exp(0.5), 'queue=min(queue+1, max_value(queue))')\nb.timer('service', 'queue>0', Unif(1, 2), 'queue-=1')\n\nm = b.build()\n```\n\nOnce you have a model, you can\n- analyze its state space (e.g., can you reach a goal state within time 10?)\n- use simulation to evaluate rewards (e.g., average number of customers in the queue)\n\nLearn more in the [manual](https://www.oris-tool.org/python).\n\n\n## How to Install\n\nTo install ORIS: `pip3.7 install oris --user --upgrade` (you need Python 3.7)\n\nTo have a working Python 3.7 environment on Linux, macOS, or Windows,\nwe recommend using [miniconda](https://docs.conda.io/en/latest/miniconda.html) and Jupyter notebooks:\n\n- Linux and macOS\n\n ``` bash\n curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh\n bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/.miniconda\n $HOME/.miniconda/condabin/conda init bash\n bash\n ```\n\n For macOS, replace `Linux` with `MacOSX` in the first two commands.\n If you are using macOS Catalina, replace `bash` with `zsh`.\n\n- Windows: run the [miniconda installer](https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe) selecting \"Add Anaconda to\n my PATH\".\n\nNow you can create an environment for ORIS:\n\n```\nconda config --set auto_activate_base false\nconda create -y -n oris python=3.7 scipy matplotlib numba jupyter\nconda activate oris\npip install oris\n```\n\nEvery time you want to use ORIS, you can run:\n\n```\nconda activate oris\njupyter notebook\n```\n\n**If you'd like to avoid installing anything at all:** Just use ORIS\ninside [Google Colaboratory](https://colab.research.google.com). The only thing you need is:\n\n``` python\n!pip3 install oris\n```\n\nat the beginning of your notebook.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.oris-tool.org/python", "keywords": "", "license": "AGPLv3", "maintainer": "", "maintainer_email": "", "name": "oris", "package_url": "https://pypi.org/project/oris/", "platform": "", "project_url": "https://pypi.org/project/oris/", "project_urls": { "Homepage": "https://www.oris-tool.org/python" }, "release_url": "https://pypi.org/project/oris/0.0.1/", "requires_dist": [ "scipy", "numpy", "matplotlib", "numba", "antlr4-python3-runtime" ], "requires_python": ">=3.7", "summary": "Analysis of discrete-event models governed by timers.", "version": "0.0.1" }, "last_serial": 5439052, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dfc24ad84b088964633c7308a9cf68cc", "sha256": "a891ee0d62377a38ee07af8145200839ddc49f2c65a8af3f87fc9257877c8cb9" }, "downloads": -1, "filename": "oris-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dfc24ad84b088964633c7308a9cf68cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15979, "upload_time": "2019-06-24T06:08:51", "url": "https://files.pythonhosted.org/packages/8b/53/2df4a80bde42482459f8f5f7fe1cdb9238c73ba5bb7b04edf20acb7ab684/oris-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad1987b66f5b1257eca414f09657f2bf", "sha256": "ee9d1e341ca1190cc49f21d3b67139effe09de66787620a536a08847b1308206" }, "downloads": -1, "filename": "oris-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ad1987b66f5b1257eca414f09657f2bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15753, "upload_time": "2019-06-24T06:08:54", "url": "https://files.pythonhosted.org/packages/01/f0/3fd0d3e170a8941df8fd714321156cca0fcf6642fd905454d5abe0abb98d/oris-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfc24ad84b088964633c7308a9cf68cc", "sha256": "a891ee0d62377a38ee07af8145200839ddc49f2c65a8af3f87fc9257877c8cb9" }, "downloads": -1, "filename": "oris-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dfc24ad84b088964633c7308a9cf68cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15979, "upload_time": "2019-06-24T06:08:51", "url": "https://files.pythonhosted.org/packages/8b/53/2df4a80bde42482459f8f5f7fe1cdb9238c73ba5bb7b04edf20acb7ab684/oris-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad1987b66f5b1257eca414f09657f2bf", "sha256": "ee9d1e341ca1190cc49f21d3b67139effe09de66787620a536a08847b1308206" }, "downloads": -1, "filename": "oris-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ad1987b66f5b1257eca414f09657f2bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15753, "upload_time": "2019-06-24T06:08:54", "url": "https://files.pythonhosted.org/packages/01/f0/3fd0d3e170a8941df8fd714321156cca0fcf6642fd905454d5abe0abb98d/oris-0.0.1.tar.gz" } ] }