{ "info": { "author": "Francesco Farina, Andrea Camisa, Andrea Testa, Ivano Notarnicola, Giuseppe Notarstefano", "author_email": "franc.farina@unibo.it", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\n\n# Welcome to DISROPT [![Documentation Status](https://readthedocs.org/projects/disropt/badge/?version=latest)](https://disropt.readthedocs.io/en/latest/?badge=latest)\n[**Reference docs**](https://disropt.readthedocs.io/en/latest/)\n| [**Install guide**](#installation)\n| [**Getting started**](#getting-started)\n\n**DISROPT** is a Python package developed within the excellence research program ERC in the project [OPT4SMART](http://www.opt4smart.eu).\nThe aim of this package is to provide an easy way to run distributed optimization algorithms that can \nbe executed by a network of peer computing systems.\n\nA comprehensive guide to DISROPT can be found in the [documentation](https://disropt.readthedocs.io/en/latest/).\nThe package is equipped with some commonly used objective functions and constraints which can be directly used.\n \n**DISROPT** currently supports MPI in order to emulate peer-to-peer communication. However, custom communication protocols can be also implemented.\n\n## Installation\n**DISROPT** works on Python 3.7 and requires an MPI implementation to be installed on your system.\n\nIt relies on\n\n* numpy\n* scipy\n* mpi4py\n* autograd\n* osqp (optional, but required for some features)\n* cvxopt (optional, but required for some features)\n* cvxpy (optional, but required for some features)\n\n### pip installation\n```\npip install disropt\n```\n\n## Getting started\n* [Quickstart](https://disropt.readthedocs.io/en/latest/quickstart/index.html)\n* [Tutorial](https://disropt.readthedocs.io/en/latest/tutorial/index.html)\n - [Distributed optimization set-ups](https://disropt.readthedocs.io/en/latest/tutorial/setups.html)\n - [Using functions and constraints](https://disropt.readthedocs.io/en/latest/tutorial/functions_constraints.html)\n - [Defining local data and problems](https://disropt.readthedocs.io/en/latest/tutorial/problems.html)\n - [Creating agents](https://disropt.readthedocs.io/en/latest/tutorial/agents.html)\n - [Algorithms](https://disropt.readthedocs.io/en/latest/tutorial/algorithms.html)\n* [Examples](https://disropt.readthedocs.io/en/latest/examples/index.html)\n\n## Citing **DISROPT**\n\n```\n@article{farina2019disropt,\n title={DISROPT: a Python Framework for Distributed Optimization},\n author={Farina, Francesco and Camisa, Andrea and Testa, Andrea and Notarnicola, Ivano and Notarstefano, Giuseppe},\n journal={arXiv},\n archivePrefix = {arXiv},\n eprint = {1911.02410},\n year={2019}\n}\n```\n\n## Constributors\n**DISROPT** is developed by\n[Francesco Farina](https://francescofarina.github.io),\n[Andrea Camisa](https://www.unibo.it/sitoweb/a.camisa),\n[Andrea Testa](https://www.unibo.it/sitoweb/a.testa),\n[Ivano Notarnicola](https://www.unibo.it/sitoweb/ivano.notarnicola), and\n[Giuseppe Notarstefano](https://www.unibo.it/sitoweb/giuseppe.notarstefano)\n\n## Acknowledgements\nThis result is part of a project that has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 638992 - OPT4SMART).\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://opt4smart.github.io/disropt/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "disropt", "package_url": "https://pypi.org/project/disropt/", "platform": "", "project_url": "https://pypi.org/project/disropt/", "project_urls": { "Homepage": "https://opt4smart.github.io/disropt/" }, "release_url": "https://pypi.org/project/disropt/0.1.9/", "requires_dist": [ "autograd (>=1.3)", "cvxopt (>=1.2.3)", "cvxpy (>=1.0.25)", "mpi4py (>=3.0.1)", "numpy (>=1.16.3)", "osqp (>=0.6.1)", "scipy (>=1.2.1)", "dill (>=0.3.0)" ], "requires_python": "", "summary": "DISROPT: a python framework for distributed optimization", "version": "0.1.9", "yanked": false, "yanked_reason": null }, "last_serial": 10665089, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "736c2a0f0d7873fe6adfc42ba9987572", "sha256": "c5fb4c40b8ecb2a2110ecd4ce73a3b27f30f3fdd30942160ebea923675a661ad" }, "downloads": -1, "filename": "disropt-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "736c2a0f0d7873fe6adfc42ba9987572", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 90566, "upload_time": "2019-09-26T15:09:48", "upload_time_iso_8601": "2019-09-26T15:09:48.196106Z", "url": "https://files.pythonhosted.org/packages/01/4d/eb894ee79dab0f301566625448a2cb492c6ef31f161d374d8b1bd77a40be/disropt-0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ab2321d89cfcf04d47f1c6bc12117196", "sha256": "c5e833ad6842341fff3ee48913cc9d92beea6f3c7672ff8f43065056a4e31f9d" }, "downloads": -1, "filename": "disropt-0.1.tar.gz", "has_sig": false, "md5_digest": "ab2321d89cfcf04d47f1c6bc12117196", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49111, "upload_time": "2019-09-26T15:09:50", "upload_time_iso_8601": "2019-09-26T15:09:50.510780Z", "url": "https://files.pythonhosted.org/packages/16/06/bccbd251cb18816976393a514a4414eee2e7241000fae75f785b0428cf76/disropt-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4c3f89ba0d1636dc760b7800c41860f6", "sha256": "de60a2393440d8cd074bcfd56ca2d155f39bbaa5b22772766e9f4293f6c1cd14" }, "downloads": -1, "filename": "disropt-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4c3f89ba0d1636dc760b7800c41860f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 90765, "upload_time": "2019-09-27T19:14:39", "upload_time_iso_8601": "2019-09-27T19:14:39.487898Z", "url": "https://files.pythonhosted.org/packages/93/cc/6cce53fe201c38ed5068e09eb15105b255e5d853610ef236d544c741880b/disropt-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d98003304b8cf28832125558df78c386", "sha256": "c7a5fdce95f4d3cf3b35abc282047ac417432a641304e1532b05fb519e65b32a" }, "downloads": -1, "filename": "disropt-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d98003304b8cf28832125558df78c386", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49542, "upload_time": "2019-09-27T19:14:41", "upload_time_iso_8601": "2019-09-27T19:14:41.036868Z", "url": "https://files.pythonhosted.org/packages/6a/71/0029578f9631212d17412850dabfe2cfdfe2b0cd92d553a767bd1890ca65/disropt-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a6cb389d88f1890aa4ff2c3f49817b59", "sha256": "34f081eb2723f1521e3ff872eb666678c513c082d7d6bf031f9e0999f8357aca" }, "downloads": -1, "filename": "disropt-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a6cb389d88f1890aa4ff2c3f49817b59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 91580, "upload_time": "2019-10-21T15:46:43", "upload_time_iso_8601": "2019-10-21T15:46:43.319016Z", "url": "https://files.pythonhosted.org/packages/8f/df/15c4e95a1edf1d1110b02f7f82cb6e8d43917a89953fff940746a4adbfdd/disropt-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "debe1c139586b685bc21c2a44c51598b", "sha256": "d9834405b71d9f380b40dfd652c333d8d12df0de59f34099d29cc3a9a1783527" }, "downloads": -1, "filename": "disropt-0.1.2.tar.gz", "has_sig": false, "md5_digest": "debe1c139586b685bc21c2a44c51598b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49908, "upload_time": "2019-10-21T15:46:45", "upload_time_iso_8601": "2019-10-21T15:46:45.534834Z", "url": "https://files.pythonhosted.org/packages/3a/2b/71c663aa1e12b8faadbed27b45f91d2a55f83c293a8e3f4e90a263691459/disropt-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "95c4f5a998dbba080784f1234d3ac295", "sha256": "e1104139dcbca949626648beb8f42679366d2d8e26ad9bec86903eab205d0c7d" }, "downloads": -1, "filename": "disropt-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "95c4f5a998dbba080784f1234d3ac295", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 92573, "upload_time": "2019-10-28T17:02:07", "upload_time_iso_8601": "2019-10-28T17:02:07.287153Z", "url": "https://files.pythonhosted.org/packages/62/2f/433263504e83f1eddeebf68436045e93e4e162ef8b13a6a6cce450f17a57/disropt-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f6be8f2e1202e722214268952a200fc8", "sha256": "997435a6256e67362d7ea091fffb7a5ce8187b73f8c9c91d1cc797def835491c" }, "downloads": -1, "filename": "disropt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f6be8f2e1202e722214268952a200fc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50212, "upload_time": "2019-10-28T17:02:09", "upload_time_iso_8601": "2019-10-28T17:02:09.106782Z", "url": "https://files.pythonhosted.org/packages/63/99/a2352ba7dc0eb7fb778410113690ec6af7aa1bdbc4203187db9e16ec7aa0/disropt-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "022b0e9eb9682e3cac8773c2cf71d097", "sha256": "70dcefa8ff18288cc6ff9be41bc607065e3743a729aa2edb6ab5abb0c7aeb03e" }, "downloads": -1, "filename": "disropt-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "022b0e9eb9682e3cac8773c2cf71d097", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 95469, "upload_time": "2019-11-06T16:40:06", "upload_time_iso_8601": "2019-11-06T16:40:06.068005Z", "url": "https://files.pythonhosted.org/packages/24/a0/d132929388c9d57da84cc15b0846efe7c73ca21035a2d4908be2032ba761/disropt-0.1.4-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "275882b1a6f6a2b36a363f8968480792", "sha256": "a4ab919b690be7c4eda8e182fbdf36f0fefd5528bcd80caf819754b6a7b0f853" }, "downloads": -1, "filename": "disropt-0.1.4.tar.gz", "has_sig": false, "md5_digest": "275882b1a6f6a2b36a363f8968480792", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51954, "upload_time": "2019-11-06T16:40:07", "upload_time_iso_8601": "2019-11-06T16:40:07.765659Z", "url": "https://files.pythonhosted.org/packages/ba/cb/84eb71f4795f268229f4ee9010b2d46fce7d35b040d89ff881bb016a3af2/disropt-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d64d8cccb20a9f5d9d618c43eac0371c", "sha256": "b3f0a3ff959ba174443cce62559f3eb37f0ff619a94b89a7394e09a5bccbebd8" }, "downloads": -1, "filename": "disropt-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d64d8cccb20a9f5d9d618c43eac0371c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 96043, "upload_time": "2019-11-19T14:26:14", "upload_time_iso_8601": "2019-11-19T14:26:14.722350Z", "url": "https://files.pythonhosted.org/packages/02/6d/260cb2abb399fc85d8a8b4b59df66df2b7e03ef9bdf3fd9b123aa915e58a/disropt-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "572c7746a363f3714877791a90f38925", "sha256": "0be79afa4b25df3db68bb17f59e9338c8657190b553acfc590609cf21faf08af" }, "downloads": -1, "filename": "disropt-0.1.5.tar.gz", "has_sig": false, "md5_digest": "572c7746a363f3714877791a90f38925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54029, "upload_time": "2019-11-19T14:26:16", "upload_time_iso_8601": "2019-11-19T14:26:16.150005Z", "url": "https://files.pythonhosted.org/packages/24/ce/e442f73626d31b593feafd6c1b83e0d5a1392e5b4315f0c087b3b1ef1dcb/disropt-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "a11b1a4b1c2653a3ba77ed72d7687978", "sha256": "e4989541724b906f74f9cfe4a0fba4bfa4aeb4701c731ae632f11e72552da3d4" }, "downloads": -1, "filename": "disropt-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a11b1a4b1c2653a3ba77ed72d7687978", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 91115, "upload_time": "2020-04-02T14:15:35", "upload_time_iso_8601": "2020-04-02T14:15:35.772245Z", "url": "https://files.pythonhosted.org/packages/c1/48/03d20630697cfb779e4ad26a836ef6d1aa2001f04921cd86ec2c9d69f5ea/disropt-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6ba9c9d0141885e5704894d99f7f78ac", "sha256": "f964e57b0dc7a1ead1d901ddc40038fdd45b50ec004d2c5c2b43140f06392d09" }, "downloads": -1, "filename": "disropt-0.1.6.tar.gz", "has_sig": false, "md5_digest": "6ba9c9d0141885e5704894d99f7f78ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49016, "upload_time": "2020-04-02T14:15:37", "upload_time_iso_8601": "2020-04-02T14:15:37.340232Z", "url": "https://files.pythonhosted.org/packages/3f/6d/25b8d29825f6e99ccb4bc57ab6f58edf4905d1400b07df2d67762b2b366e/disropt-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "e6539bc870f4be8f0bae0e82fa2f05ba", "sha256": "ef05319dae605506225ba996998d818c2388173ac1aee4709b89c34a8a0bad42" }, "downloads": -1, "filename": "disropt-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "e6539bc870f4be8f0bae0e82fa2f05ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 96250, "upload_time": "2020-04-14T15:23:30", "upload_time_iso_8601": "2020-04-14T15:23:30.717724Z", "url": "https://files.pythonhosted.org/packages/f1/a0/56dc55e46f4f08c80046415920785394d4d444710ffd506a0310f574afc6/disropt-0.1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0b53e3a21c6e64d29d92ecbe8014046e", "sha256": "4fefa16b85511d5bc55f34830e6b60ded3c77ab2893d75f242d11dd0940427cc" }, "downloads": -1, "filename": "disropt-0.1.7.tar.gz", "has_sig": false, "md5_digest": "0b53e3a21c6e64d29d92ecbe8014046e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54172, "upload_time": "2020-04-14T15:23:32", "upload_time_iso_8601": "2020-04-14T15:23:32.567824Z", "url": "https://files.pythonhosted.org/packages/70/7e/0423360e6e223aab47e9b217a1ef5fbb7d3614b8adb7bec2b0cd436cc5fd/disropt-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "4e4fbfb65ec064099718e13da9d679b2", "sha256": "8d1d034304644caf82de49a706f2fb85ae0e9cdead2db05121fbd652e293664f" }, "downloads": -1, "filename": "disropt-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "4e4fbfb65ec064099718e13da9d679b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 106891, "upload_time": "2020-10-29T15:09:33", "upload_time_iso_8601": "2020-10-29T15:09:33.350783Z", "url": "https://files.pythonhosted.org/packages/84/ef/aa3d77a1f453dd25ef3077524cdb1eb2c09556c4cd73354ecb6762489ea4/disropt-0.1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "842ae7c7215b605e477e90806faad44b", "sha256": "fd4c736f330b4797c8bd549fec864fb16d5a70afe6c42658627fe16e7090206c" }, "downloads": -1, "filename": "disropt-0.1.8.tar.gz", "has_sig": false, "md5_digest": "842ae7c7215b605e477e90806faad44b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64439, "upload_time": "2020-10-29T15:09:35", "upload_time_iso_8601": "2020-10-29T15:09:35.410786Z", "url": "https://files.pythonhosted.org/packages/2f/d0/b1178331399b7862b2fbe9abcf4efd71a72d262b5e88bc2ab98a02fe42c3/disropt-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "602f806230ad28d91de67a5078b4b76c", "sha256": "e6d616a90aa4aa7a9e602ac95ad566cd74035308a4c326c3b255a0d7084e63e8" }, "downloads": -1, "filename": "disropt-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "602f806230ad28d91de67a5078b4b76c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 106902, "upload_time": "2021-06-16T17:24:35", "upload_time_iso_8601": "2021-06-16T17:24:35.143852Z", "url": "https://files.pythonhosted.org/packages/84/32/2a2d9bc840813a711eba013d15d53fdf8290b46e44cf9cd3af629f2b9bfe/disropt-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "369f6af652d18b1e5bdfded9d1062344", "sha256": "fe15a6de387c7b987f3964b47ccb0669856ed1c16756631e49d1aae7b79f042a" }, "downloads": -1, "filename": "disropt-0.1.9.tar.gz", "has_sig": false, "md5_digest": "369f6af652d18b1e5bdfded9d1062344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75820, "upload_time": "2021-06-16T17:24:36", "upload_time_iso_8601": "2021-06-16T17:24:36.678730Z", "url": "https://files.pythonhosted.org/packages/30/d0/e0d0db886b27d0e073e09642e6f6805fb791c43cceadece49b76faff658d/disropt-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "602f806230ad28d91de67a5078b4b76c", "sha256": "e6d616a90aa4aa7a9e602ac95ad566cd74035308a4c326c3b255a0d7084e63e8" }, "downloads": -1, "filename": "disropt-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "602f806230ad28d91de67a5078b4b76c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 106902, "upload_time": "2021-06-16T17:24:35", "upload_time_iso_8601": "2021-06-16T17:24:35.143852Z", "url": "https://files.pythonhosted.org/packages/84/32/2a2d9bc840813a711eba013d15d53fdf8290b46e44cf9cd3af629f2b9bfe/disropt-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "369f6af652d18b1e5bdfded9d1062344", "sha256": "fe15a6de387c7b987f3964b47ccb0669856ed1c16756631e49d1aae7b79f042a" }, "downloads": -1, "filename": "disropt-0.1.9.tar.gz", "has_sig": false, "md5_digest": "369f6af652d18b1e5bdfded9d1062344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75820, "upload_time": "2021-06-16T17:24:36", "upload_time_iso_8601": "2021-06-16T17:24:36.678730Z", "url": "https://files.pythonhosted.org/packages/30/d0/e0d0db886b27d0e073e09642e6f6805fb791c43cceadece49b76faff658d/disropt-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }