{ "info": { "author": "Lucas S Melo", "author_email": "lucassmelo@dee.ufc.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "# Python Agent DEvelopment framework (PADE)\n\n\n[![Join the chat at https://gitter.im/lucassm/Pade](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lucassm/Pade?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![](https://img.shields.io/badge/pypi-3.0-blue.svg)](https://pypi.python.org/pypi/pade/)\n\n
\n\n

\n \"PADE\"\n

\n\nPADE its a framework for developing, executing and mannaging multi-agent systems in distributed computing enviroments. PADE code is 100% Python and has its core in Twisted, a python package for implementing distributed applications.\n\nPADE is also free software and licenced in terms of MIT licence. First it was developed in Federal University of Cear\u00e1 (Brazil) by Electric Smart Grids Group (GREI) in Electric Engineering Department (DEE). Now everyone that has interest in developing PADE is welcome to dowload, install, test, use and send us feedback.\n\n## Documentation\n\nPADE is well documented. You can access the documentation hear: [PADE documentation](https://pade-docs-en.readthedocs.io/en/latest/) \n\n## Dependencies\n\nPADE is developed in [Python 3.7](https://www.python.org/) and has a [Twisted](https://twistedmatrix.com/trac/) core.\n\n## Install\n\n#### Via Python Package Index (PyPI):\n```bash\n$ pip install pade\n```\n\n#### Via Github:\n```bash\n$ git clone https://github.com/greiufc/pade\n$ cd pade\n$ python setup.py install\n```\n\n## Docker\n\nBuild container\n```bash\n$ docker-compose up -d\n````\n\nList containers\n```bash\n$ docker ps\n\nCONTAINER ID IMAGE\n8d7cb00972c9 pade_pade\n```\n\nGet inside container\n```bash\n$ docker exec -it bash\n```\n\n\n\n\n## Example\n\nHello world in PADE:\n\n```python\nfrom pade.misc.utility import display_message, start_loop\nfrom pade.core.agent import Agent\nfrom pade.acl.aid import AID\nfrom sys import argv\n\nclass AgenteHelloWorld(Agent):\n def __init__(self, aid):\n super(AgenteHelloWorld, self).__init__(aid=aid)\n display_message(self.aid.localname, 'Hello World!')\n\n\nif __name__ == '__main__':\n\n agents_per_process = 3\n c = 0\n agents = list()\n for i in range(agents_per_process):\n port = int(argv[1]) + c\n agent_name = 'agente_hello_{}@localhost:{}'.format(port, port)\n agente_hello = AgenteHelloWorld(AID(name=agent_name))\n agents.append(agente_hello)\n c += 1000\n\n start_loop(agents)\n```\n\n## Changes in this new version\n\nSome changes has been added in this new version, but don't worry about that if you are using pade in your simulations, it's very easy adjust this version in old versions.\n\nThe main and bigger change in Pade is in how you launch your agents. Now when you install Pade via pip command or via setup.py install you install too a pade terminal command line (cli) that launch your pade applications.\n\nAs example, if you put the hello world example code in a file with the name hello-agent.py and you want to launch this agent just one time, you could type in your command line interface:\n\n```shell\n$ pade hello-agent.py \n```\n\nIf you want to launch this agent 3 times, than you type:\n\n```shell\n$ pade --num 3 hello-agent.py \n```\n\nIf you wanto to launch the 3 agents in ports 20000, 20001 and 20002, than you just type:\n\n```shell\n$ pade --num 3 --port 20000 hello-agent.py \n```\n\nHear we have to explain some points in how Pade executes the agents.\n\nWhen you type the commands `--num 3` and `--port 20000` you tell to Pade command line tool to execute the content of file hello-agent.py 3 times. Each time, the file content will be executed in a new process and the attribute port will be passed as argument in this process with a unit incremment in each time. For example, in the case `--num 3` and `--port 2000`, the arguments passed for agents are 2000, 2001 and 2002.\n\nThis arguments should be accessed in the code with `sys.argv[1]`. So you can execute how many agents as you want per process. In the hello-agent.py example there is a for loop that will repeat many times as defined in agents_per_process variable. That will define the number of agents in each process. In the example, since the `--num` parameter is 3 and the agents_per_process variable is 3 the pade will start 9 agents in ports: 20000, 21000, 22000, 20001, 210001, 22001, 20002, 210002 and 22002.\n\nThe command line will support mode than one agent file too, for example if you have the agents in mode than one file you could start then with a command like this:\n\n```shell\n$ pade --num 3 --port 20000 hello-agent_1.py hello-agent_2.py\n```\n\nIn this case the first agent receive in the `sys.argv[1]` the value 20000 and the second, the value 20001, and so on.\n\nThere is another way to launch the Pade agents. Is with a config file in the json format. Hear it's a example of config file:\n\n```json\n{ \n \"agent_files\": [\n \"agente_teste_1_200.py\",\n \"agente_teste_3_200.py\"\n ],\n \"port\": 20000,\n \"num\": 2,\n \"pade_ams\": {\n \"host\": \"localhost\",\n \"port\": 8000\n },\n \"pade_web\": {\n \"active\": true,\n \"host\": \"localhost\",\n \"port\": 5000\n },\n \"pade_sniffer\": {\n \"active\": true,\n \"host\": \"localhost\",\n \"port\": 8001\n },\n \"session\": {\n \"username\": \"pade_user\",\n \"email\": \"pade_user@pade.com\",\n \"password\": \"12345\" \n }\n}\n```\n\nTo launch then, just type the command line:\n\n```shell\npade --config_file pade_config.json\n```\n\nIf you need to execute simulations with a high number of agents that send and receive messages, something like 500 agents sending 5 messages per second, is recommended that you launch your pade session with a option `--no_pade_sniffer` because the register of this messages in database will overhead your pade execution. Than, the example could be:\n\n```shell\n$ pade --num 3 --port 20000 --no_pade_sniffer hello-agent_1.py hello-agent_2.py\n```\n\nTo show teh agents in action, show the video in this link: [pade agents start example]()\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": "http://pade.readthedocs.org", "keywords": "multiagent distributed systems", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pade", "package_url": "https://pypi.org/project/pade/", "platform": "", "project_url": "https://pypi.org/project/pade/", "project_urls": { "Homepage": "http://pade.readthedocs.org" }, "release_url": "https://pypi.org/project/pade/2.1.1/", "requires_dist": [ "twisted", "alchimia", "click", "Flask-Bootstrap", "Flask-Login", "Flask-WTF", "Flask-SQLAlchemy", "Flask", "terminaltables" ], "requires_python": "", "summary": "Framework for multiagent systems development in Python", "version": "2.1.1" }, "last_serial": 4539810, "releases": { "1.5": [ { "comment_text": "", "digests": { "md5": "c6f3e8e25386ae3f80df1d1732202f52", "sha256": "7337b03075b4208288f534c678ac27af811061f6578cfbbed6367251a9def16c" }, "downloads": -1, "filename": "pade-1.5-py2.7.egg", "has_sig": false, "md5_digest": "c6f3e8e25386ae3f80df1d1732202f52", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 65236, "upload_time": "2015-10-06T02:46:58", "url": "https://files.pythonhosted.org/packages/dd/a1/0a80c7172cdd803d291e847b7799a635f7d768b1d3caad6fcf1d67a076ff/pade-1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d4380229af02e3704a57b275da680834", "sha256": "e842fb4696c82aeb2e4023c3412e099a628e8c4b044d3a3c0db7dcbfb962e864" }, "downloads": -1, "filename": "pade-1.5.tar.gz", "has_sig": false, "md5_digest": "d4380229af02e3704a57b275da680834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19278, "upload_time": "2015-10-06T02:46:54", "url": "https://files.pythonhosted.org/packages/54/30/ed0009eb33d027eab9a0c9a1ada2807d01c830bf5cf1a702be0f6d09a168/pade-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "25cdc29a31a4f1ece76f98f6d86d3396", "sha256": "4c81ca99469497648e9aa0d1b31fba67dfa0ea9e52b1e2da6e785b201c06d825" }, "downloads": -1, "filename": "pade-1.6-py2.7.egg", "has_sig": false, "md5_digest": "25cdc29a31a4f1ece76f98f6d86d3396", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 64970, "upload_time": "2015-10-06T02:54:37", "url": "https://files.pythonhosted.org/packages/00/de/3cc1301de1845cf56a7b8463542f2fcdd445564331b12e1339157bddbc59/pade-1.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7154484729c3f31874fb4dbb6fbb47ef", "sha256": "55d270dd66c58bfc76db84e06f526023634cfb7887e72ea62b7506c1fa25e119" }, "downloads": -1, "filename": "pade-1.6.tar.gz", "has_sig": false, "md5_digest": "7154484729c3f31874fb4dbb6fbb47ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19212, "upload_time": "2015-10-06T02:54:32", "url": "https://files.pythonhosted.org/packages/bf/94/e7184b7123ebfe0362381379f2e98d8fd2126f9c5e59557fff2874862da5/pade-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "46fbe6b6877cdf793b0cd4fd1d83e13d", "sha256": "aa2f9a8ecfaa20b5e01aca350b697f933d6c1c3a2a572058b56453bf1c0cf112" }, "downloads": -1, "filename": "pade-1.6.1-py3.7.egg", "has_sig": false, "md5_digest": "46fbe6b6877cdf793b0cd4fd1d83e13d", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 152348, "upload_time": "2018-09-13T13:34:07", "url": "https://files.pythonhosted.org/packages/40/98/2402afb81e1e3962ed22c3ba795032ae06470199e70c5ea4084c0dd5d5ff/pade-1.6.1-py3.7.egg" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "01ce3809641298064a19fc5ce4c70c29", "sha256": "bb209bc7c444366bb80b3a96849e1e522efc816d1587e933b92c08caff178cbd" }, "downloads": -1, "filename": "pade-1.7-py2.7.egg", "has_sig": false, "md5_digest": "01ce3809641298064a19fc5ce4c70c29", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 64852, "upload_time": "2015-10-07T03:17:39", "url": "https://files.pythonhosted.org/packages/e6/cc/1a9bb7cd51d1aea4e815c60f741eeb1e6fba8c26e8e0fe203a651975e12a/pade-1.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "f859530ec45f4c2dd03cf275e3fdea02", "sha256": "96633202fb4ab9095bc215f98246d0a2a2cfce111ac715cfc1ade8dae3681674" }, "downloads": -1, "filename": "pade-1.7.tar.gz", "has_sig": false, "md5_digest": "f859530ec45f4c2dd03cf275e3fdea02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19186, "upload_time": "2015-10-07T03:17:35", "url": "https://files.pythonhosted.org/packages/22/c9/a8b8e0699e14c2da467e5a7835614a8505e61ef2dde2cf08d4ed9a3a28a1/pade-1.7.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "9ce6842ffc51a4d4173adf9f354dfb6c", "sha256": "fff72229c90a4638a0bc16845318ad97deca7abef151223f5b81dbe72d42e191" }, "downloads": -1, "filename": "pade-2.0.0-py3.6.egg", "has_sig": false, "md5_digest": "9ce6842ffc51a4d4173adf9f354dfb6c", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 154118, "upload_time": "2018-09-15T15:21:16", "url": "https://files.pythonhosted.org/packages/fd/8d/e5b104d018b250351509012ebbcc0c5694ad2424dc1d81a2569fe03aad8d/pade-2.0.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7689a25160ea4d592b4fcd712f58c689", "sha256": "58f0acf18718d59f669a8996f401e657a25fae80588577308216eced46239244" }, "downloads": -1, "filename": "pade-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7689a25160ea4d592b4fcd712f58c689", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116124, "upload_time": "2018-09-13T13:34:04", "url": "https://files.pythonhosted.org/packages/bc/b9/faa2d21390c7efbe9a064b399fbaf16d8421142f345824a856a7b368a168/pade-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e537cff4f314b9fa9c1161e0f9b75523", "sha256": "e8a55edaa785e877a26e43f4cf8ae028fb3425e14036758e86342f7e658a54ce" }, "downloads": -1, "filename": "pade-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e537cff4f314b9fa9c1161e0f9b75523", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26349, "upload_time": "2018-09-13T13:34:09", "url": "https://files.pythonhosted.org/packages/da/cb/70fee486e51fa6e6037a4416ea98473c962413ae9a029ec76183f2fe1b4a/pade-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "b401b7530eea3950c1dd36f859f7e162", "sha256": "b76351083a7bfc975181d8cd6352ee5766dce5407aa6daf991607b88dac1fa8b" }, "downloads": -1, "filename": "pade-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b401b7530eea3950c1dd36f859f7e162", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116194, "upload_time": "2018-09-15T15:21:12", "url": "https://files.pythonhosted.org/packages/b0/cb/b754be6742613e173b91fe8a7febc2969d5be8cfda189e7ec95ee79c3c45/pade-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "361cfac9a9a18913345a6464b0d41478", "sha256": "f76c68a2976dd4a299762a44a0d68b30e3c7ae08a9ae70cf122be653eedb0180" }, "downloads": -1, "filename": "pade-2.0.1.tar.gz", "has_sig": false, "md5_digest": "361cfac9a9a18913345a6464b0d41478", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26449, "upload_time": "2018-09-15T15:21:18", "url": "https://files.pythonhosted.org/packages/35/f3/fe557de233ca3f09963bf1573e9713f677ea97e8471fc75762ab93f91c80/pade-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "a32fbda80fcdb87cffba56164b4a419f", "sha256": "1c94d05cdee3b115a15b408029b232d85956cd314feb9acc472546e5a51494c3" }, "downloads": -1, "filename": "pade-2.0.2-py3.7.egg", "has_sig": false, "md5_digest": "a32fbda80fcdb87cffba56164b4a419f", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 154531, "upload_time": "2018-09-16T15:16:33", "url": "https://files.pythonhosted.org/packages/8d/c1/5ace6556a2b2ac61d246e6873b6dfb6ae51dbb1ebde7a80d5c18087b999e/pade-2.0.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "1c351976db68bb4c2c5e0b924f00a974", "sha256": "5ddb4c40de1556696ada623c55201a96c99176d1e2d4ae36b1be814c3651eb3f" }, "downloads": -1, "filename": "pade-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1c351976db68bb4c2c5e0b924f00a974", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116201, "upload_time": "2018-09-15T19:39:54", "url": "https://files.pythonhosted.org/packages/7b/3c/31a34d472d4c843376512b116cf6e920e1f808c1f9a3f476ce7d67bb595c/pade-2.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "314731190290b6d481c4636040f2ad7e", "sha256": "acabdfbf661f46143a0c1f0363b47204767d784f6f0f44cdde9c7bd9c8afab7f" }, "downloads": -1, "filename": "pade-2.0.2.tar.gz", "has_sig": false, "md5_digest": "314731190290b6d481c4636040f2ad7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26471, "upload_time": "2018-09-15T19:40:01", "url": "https://files.pythonhosted.org/packages/03/98/352f6afaa059e27cc0aff61d27d73587337b7fae877c5b8ca77351b6dc4a/pade-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "d4e01eb0943cc9806259310a450ac621", "sha256": "76a364bfa5707c973cca32cdf13197ed82a8460370b05eac040cea58237ddb9c" }, "downloads": -1, "filename": "pade-2.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d4e01eb0943cc9806259310a450ac621", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116202, "upload_time": "2018-09-16T15:16:25", "url": "https://files.pythonhosted.org/packages/30/e2/c254b29fd136e0b66bcd4a9d8c50ac169a1ef4856e71a635fc381f0db72d/pade-2.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e525b6db93f792fa15d0b08f0b2280b", "sha256": "5d1a5d41cceadf6a8eee746a1645dbc81c3abee8628e43ea7563298ad43cf9cd" }, "downloads": -1, "filename": "pade-2.0.3.tar.gz", "has_sig": false, "md5_digest": "8e525b6db93f792fa15d0b08f0b2280b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26179, "upload_time": "2018-09-16T15:16:36", "url": "https://files.pythonhosted.org/packages/3d/ca/d38f023a54df2413ad7b07e3b8cce8e882439c614ea6a54c6e60b529054f/pade-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "025dbb5ac57fcb5c2cca7ea8d815c5fe", "sha256": "186bff106233c766ed63b077c598d2e3b8dcfa9a0605ca1a0724635f7c3f376b" }, "downloads": -1, "filename": "pade-2.0.4-py3.7.egg", "has_sig": false, "md5_digest": "025dbb5ac57fcb5c2cca7ea8d815c5fe", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 154546, "upload_time": "2018-09-16T15:23:12", "url": "https://files.pythonhosted.org/packages/15/a9/0bddfcab72546e59079a54b885e848048f91fc904c99fd55a133fbc1bc1c/pade-2.0.4-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "7ac53b28d5f14d5dfb7a35365e031bc1", "sha256": "bf1e8e9a6d3875a5b5a2e267c11ac319846a719f4b139111fa0b9dff9415ffe9" }, "downloads": -1, "filename": "pade-2.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7ac53b28d5f14d5dfb7a35365e031bc1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 116209, "upload_time": "2018-09-16T15:23:10", "url": "https://files.pythonhosted.org/packages/27/6f/435343443c6c68de32ef6c86f04bc0a1776a1954a942526b43e6757c43c0/pade-2.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0efdb56858fab354dc91436cdc015b2f", "sha256": "37c8e89966165a881d2dc865d2108cd67add2115d9a9e79367b1b656aab6c176" }, "downloads": -1, "filename": "pade-2.0.4.tar.gz", "has_sig": false, "md5_digest": "0efdb56858fab354dc91436cdc015b2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26181, "upload_time": "2018-09-16T15:23:14", "url": "https://files.pythonhosted.org/packages/9b/8b/e3cd045aa48b04487277d35e8365ca91e2e6501548a9a99db63cb5b0f826/pade-2.0.4.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "e2ff0bcdc711a8a90685be5a060d9a83", "sha256": "fec0cafa9bee3496bc3a0e4ddcfcd9da525202666719b93b1381e6990e22b3c9" }, "downloads": -1, "filename": "pade-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e2ff0bcdc711a8a90685be5a060d9a83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 149113, "upload_time": "2018-11-22T03:05:25", "url": "https://files.pythonhosted.org/packages/4c/2b/ede90a2eb2a82eaaac8cc997d30990cc29a466262e2151703bf1d163ddc0/pade-2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9b1c4d6b32be98f2cc0c5e7a88a3c15", "sha256": "78676072d1259c65e9e6552a7ca04aba08b7e5dcb97469aa82d0708a84c068ba" }, "downloads": -1, "filename": "pade-2.1.tar.gz", "has_sig": false, "md5_digest": "b9b1c4d6b32be98f2cc0c5e7a88a3c15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32224, "upload_time": "2018-11-22T03:05:28", "url": "https://files.pythonhosted.org/packages/d1/80/940c74362a20575560edc81ea7f3c51c570ed0d9d001f40132d9a9fd6954/pade-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "d50b740c91ad90a16941066c231c6bf1", "sha256": "af379e26aa3f09126f47bf837a22b0e9f1b1d6bcc2e953329fb046d92d55ff09" }, "downloads": -1, "filename": "pade-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d50b740c91ad90a16941066c231c6bf1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 125104, "upload_time": "2018-11-28T18:47:15", "url": "https://files.pythonhosted.org/packages/d9/f1/a0ec7d8bc2c1dccaee429994ca6b578b7af7f3679a7e480c8013f8dc21fc/pade-2.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a3870c1a0b2626df8e6b442d9eaf573", "sha256": "daa2bb0459a350cfcf3498e7e14dcf6e70d67ee911423caa01817772f2f26ba3" }, "downloads": -1, "filename": "pade-2.1.1.tar.gz", "has_sig": false, "md5_digest": "6a3870c1a0b2626df8e6b442d9eaf573", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29610, "upload_time": "2018-11-28T18:47:17", "url": "https://files.pythonhosted.org/packages/8f/a0/0c02e46247c0f666858da5c4ec30753d8b1708fe263c12a5ac41bf8a7586/pade-2.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d50b740c91ad90a16941066c231c6bf1", "sha256": "af379e26aa3f09126f47bf837a22b0e9f1b1d6bcc2e953329fb046d92d55ff09" }, "downloads": -1, "filename": "pade-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d50b740c91ad90a16941066c231c6bf1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 125104, "upload_time": "2018-11-28T18:47:15", "url": "https://files.pythonhosted.org/packages/d9/f1/a0ec7d8bc2c1dccaee429994ca6b578b7af7f3679a7e480c8013f8dc21fc/pade-2.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a3870c1a0b2626df8e6b442d9eaf573", "sha256": "daa2bb0459a350cfcf3498e7e14dcf6e70d67ee911423caa01817772f2f26ba3" }, "downloads": -1, "filename": "pade-2.1.1.tar.gz", "has_sig": false, "md5_digest": "6a3870c1a0b2626df8e6b442d9eaf573", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29610, "upload_time": "2018-11-28T18:47:17", "url": "https://files.pythonhosted.org/packages/8f/a0/0c02e46247c0f666858da5c4ec30753d8b1708fe263c12a5ac41bf8a7586/pade-2.1.1.tar.gz" } ] }