{ "info": { "author": "Andres Garcia Mangas", "author_email": "andres.garcia@fundacionctic.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# WoTPy\n\n[![Build Status](https://travis-ci.org/agmangas/wot-py.svg?branch=develop)](https://travis-ci.org/agmangas/wot-py) [![Coverage Status](https://coveralls.io/repos/github/agmangas/wot-py/badge.svg?branch=develop)](https://coveralls.io/github/agmangas/wot-py?branch=develop)\n\n## Introduction\n\nWoTPy is an experimental implementation of a [W3C WoT Runtime](https://github.com/w3c/wot-architecture/blob/master/proposals/terminology.md#wot-runtime) and the [W3C WoT Scripting API](https://github.com/w3c/wot-architecture/blob/master/proposals/terminology.md#scripting-api) in Python.\n\nInspired by the exploratory implementations located in the [thingweb GitHub page](https://github.com/thingweb).\n\n## Features\n\n* Supports Python 2.7, 3.6 and 3.7.\n* Fully-implemented `WoT` interface.\n* Multicast discovery based on mDNS.\n* Asynchronous I/O programming model based on coroutines.\n* Multiple client and server [Protocol Binding](https://github.com/w3c/wot-architecture/blob/master/proposals/terminology.md#protocol-binding) implementations. \n\n### Feature support matrix\n\n| Feature | Python 2.7 | Python 3 | Implementation based on |\n|-------------------:|--------------------------|--------------------|-------------------------------------------------------------------------|\n| HTTP binding | :heavy_check_mark: | :heavy_check_mark: | [tornadoweb/tornado](https://github.com/tornadoweb/tornado) |\n| WebSockets binding | :heavy_check_mark: | :heavy_check_mark: | [tornadoweb/tornado](https://github.com/tornadoweb/tornado) |\n| CoAP binding | :heavy_multiplication_x: | :heavy_check_mark: | [chrysn/aiocoap](https://github.com/chrysn/aiocoap) |\n| MQTT binding | :heavy_multiplication_x: | :heavy_check_mark: | [beerfactory/hbmqtt](https://github.com/beerfactory/hbmqtt) |\n| mDNS discovery | :heavy_multiplication_x: | :heavy_check_mark: | [jstasiak/python-zeroconf](https://github.com/jstasiak/python-zeroconf) |\n\n## Couroutine APIs\n\nWoTPy is based on the [Tornado Framework](https://www.tornadoweb.org). Users therefore have two different API options to write code based on coroutines: \n\n* Users on **Python 3** may use the native [asyncio](https://docs.python.org/3/library/asyncio.html) module. This is, in fact, the recommended approach. It should be noted that Tornado on Python 3 acts basically [as a wrapper](https://www.tornadoweb.org/en/stable/asyncio.html) around `asyncio`.\n* Users on **Python 2.7** are restricted to writing [Tornado coroutines](https://www.tornadoweb.org/en/stable/guide/coroutines.html) (`asyncio` is not available on Python 2.7).\n\n## ToDo\n\n* Add missing sections to docs and deploy on a public site.\n* Subscription to Thing Description changes.\n* Validation of data schemas.\n* Enable Action handlers to return Observables.\n* Update protocol bindings to accept event subscription and cancellation data.\n\n## Installation\n\n```\npip install wotpy\n```\n\n### Development\n\nTo install in development mode with all the test dependencies:\n\n```\npip install -U -e .[tests]\n```\n\nTo run the tests in all supported environments:\n\n```\nWOTPY_TESTS_MQTT_BROKER_URL=mqtt://broker-url tox\n```\n\n## Docs\n\nMove to the `docs` folder and run:\n\n```\nmake html\n```\n\nIf you attempt to build the docs on a non-Linux platform or with Python 2.7 `_autosummary` will complain about being unable to import the unsupported modules (e.g. MQTT on Python 2.7). In this case the docs will be missing the sections regarding unsupported features.\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://github.com/agmangas/wot-py", "keywords": "wot iot gateway fog w3c", "license": "", "maintainer": "", "maintainer_email": "", "name": "wotpy", "package_url": "https://pypi.org/project/wotpy/", "platform": "", "project_url": "https://pypi.org/project/wotpy/", "project_urls": { "Homepage": "https://github.com/agmangas/wot-py" }, "release_url": "https://pypi.org/project/wotpy/0.13.0/", "requires_dist": [ "tornado (<6.0,>=5.1)", "jsonschema (<3.0,>=2.0)", "six (<2.0,>=1.10.0)", "rx (<2.0,>=1.6.0)", "python-slugify (<2.0,>=1.2.4)", "pytest (<4.0.0,>=3.6.1) ; extra == 'tests'", "pytest-cov (<2.6.0,>=2.5.1) ; extra == 'tests'", "pytest-rerunfailures (<5.0,>=4.1) ; extra == 'tests'", "mock (<3.0,>=2.0) ; extra == 'tests'", "tox (<3.0,>=2.0) ; extra == 'tests'", "faker (<0.9,>=0.8.15) ; extra == 'tests'", "Sphinx (<2.0.0,>=1.7.5) ; extra == 'tests'", "sphinx-rtd-theme (<0.5.0,>=0.4.0) ; extra == 'tests'", "futures (<4.0.0,>=3.1.1) ; extra == 'tests'", "pyOpenSSL (<19.0.0,>=18.0.0) ; extra == 'tests'", "python-coveralls (==2.9.1) ; extra == 'tests'", "coverage (==4.0.3) ; extra == 'tests'", "uvloop (<0.13.0,>=0.12.2) ; extra == 'uvloop'" ], "requires_python": "", "summary": "Python implementation of a W3C WoT Runtime and the WoT Scripting API", "version": "0.13.0" }, "last_serial": 5959190, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "8cb1166c917cb523d789c245f03289c6", "sha256": "93585d9729f67682457ddc60274866409185d045a3b565428a1f67a6435a7d9e" }, "downloads": -1, "filename": "wotpy-0.10.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8cb1166c917cb523d789c245f03289c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 151316, "upload_time": "2019-04-09T11:15:47", "url": "https://files.pythonhosted.org/packages/96/20/d39ec47c8ee3dc33271eb0a681276b61ff050b727caaa9df6ed5455cd6cd/wotpy-0.10.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6649fca35e777f30bf8254768f5f20d8", "sha256": "9076b7f79f9aeff0e24bdc1b4b2ae7a2bdd01689d06cc1d62295911220803a2c" }, "downloads": -1, "filename": "wotpy-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6649fca35e777f30bf8254768f5f20d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 151377, "upload_time": "2019-04-09T11:18:34", "url": "https://files.pythonhosted.org/packages/b5/8d/ddeacd69aa28ae99fae6428f3c0c9d72884af8b84e80c4ca1a7b32e4ebbc/wotpy-0.10.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6ce4c7f66afcea6954cf9f5cb476eb9", "sha256": "ec572649bd456b4dd45332f8d130d655003c87ac8a0d561dba3750afeb6d65b7" }, "downloads": -1, "filename": "wotpy-0.10.0.tar.gz", "has_sig": false, "md5_digest": "f6ce4c7f66afcea6954cf9f5cb476eb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93961, "upload_time": "2019-04-09T11:15:49", "url": "https://files.pythonhosted.org/packages/07/d1/424d0f1400a3414c89d9ccff3c50d72e2abfe6e3ac13d25829c41ce5da2c/wotpy-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "a3346f49036ab902ee9ae9dae882e211", "sha256": "03b28b1c3f0938c5e034a2ebb0bea104dabf7eb33c0d179d9980047d54f7c16c" }, "downloads": -1, "filename": "wotpy-0.11.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a3346f49036ab902ee9ae9dae882e211", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 151210, "upload_time": "2019-04-10T14:52:33", "url": "https://files.pythonhosted.org/packages/c1/56/2c4cee745584dff2f03de6a93cab6f125435fb25f079b0493d9ab1ebef4d/wotpy-0.11.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9342f74062c8bc7fcd6c89422e87e84f", "sha256": "e70adbfae63e0474adcaef003c056c4a491aa4313618334269924c44db4f0735" }, "downloads": -1, "filename": "wotpy-0.11.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9342f74062c8bc7fcd6c89422e87e84f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 151271, "upload_time": "2019-04-10T14:54:09", "url": "https://files.pythonhosted.org/packages/79/36/a79e2bc034dd3fa9339a6ec1467e7fb99653b0c445199ccd618838277560/wotpy-0.11.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "863fbe519fede5b7b5c9a7cd65bc2810", "sha256": "a8602bf809b6648e0fdcc705b750a9e8595a9ced989d64246d36ab20c83e0314" }, "downloads": -1, "filename": "wotpy-0.11.0.tar.gz", "has_sig": false, "md5_digest": "863fbe519fede5b7b5c9a7cd65bc2810", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93899, "upload_time": "2019-04-10T14:52:34", "url": "https://files.pythonhosted.org/packages/1d/9b/13aff0bf7b1636348f2c05e2e4f8890e520a5fcb5bfb075949b127cc5b7a/wotpy-0.11.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "e61536bfe8a4d191a7466678744ed9a5", "sha256": "686818e8a4cee8ba988b5ed5585d1fb355c76a77ffbf43fe58d246b06df57707" }, "downloads": -1, "filename": "wotpy-0.13.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e61536bfe8a4d191a7466678744ed9a5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 151251, "upload_time": "2019-10-11T08:54:54", "url": "https://files.pythonhosted.org/packages/f0/42/bb885f080deed4e74ec28ebd2b449acd646d3b1f612e0699e0741b99d841/wotpy-0.13.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "807520f257827a5b8461c2ab9374135e", "sha256": "f1e2c92c385a1430f2e42c323882c171864d658a3ffb12e3dbe807ea56f7c645" }, "downloads": -1, "filename": "wotpy-0.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "807520f257827a5b8461c2ab9374135e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 151312, "upload_time": "2019-10-11T08:56:20", "url": "https://files.pythonhosted.org/packages/75/e4/d39e2f75e6aa5d4aea3e63b27a9169250e13180174867c6d06deadb7d72c/wotpy-0.13.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15881c2fbba95ced160b5b075552b312", "sha256": "d2cf6af6a094209bfae606e2ca09e0e2fa61d2c8b699e99b88108dd854552f62" }, "downloads": -1, "filename": "wotpy-0.13.0.tar.gz", "has_sig": false, "md5_digest": "15881c2fbba95ced160b5b075552b312", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93934, "upload_time": "2019-10-11T08:54:55", "url": "https://files.pythonhosted.org/packages/90/1f/5321c9dd62e03316bd30b8c1d482e0c80617cbd32a731dd6a05ab9e543fb/wotpy-0.13.0.tar.gz" } ], "0.8.10": [ { "comment_text": "", "digests": { "md5": "35f3d5a4626962facfc67c753538df98", "sha256": "42bf26e5859b0bbdd373b7a8ff0d968544ee1323df65f32858d86bfcd8b7a872" }, "downloads": -1, "filename": "wotpy-0.8.10-py2-none-any.whl", "has_sig": false, "md5_digest": "35f3d5a4626962facfc67c753538df98", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 150172, "upload_time": "2019-04-05T10:37:41", "url": "https://files.pythonhosted.org/packages/0f/3b/3e4c4564887fe9474e1e3d769e0ed51019fcaafd38dd9c1373a3de1d6d7a/wotpy-0.8.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be3217999a6750248530c99e76b00be6", "sha256": "2564fd746740de1cc110dee8a5b22d686ab421adf23a7b400b25b9e97780ddec" }, "downloads": -1, "filename": "wotpy-0.8.10-py3-none-any.whl", "has_sig": false, "md5_digest": "be3217999a6750248530c99e76b00be6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 150231, "upload_time": "2019-04-05T10:40:00", "url": "https://files.pythonhosted.org/packages/98/22/c27719e8690cf3701a9fd5873206a3f260e592e1b9c25e4245b0db50a450/wotpy-0.8.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7182204330a59fdf968bd9befdf03151", "sha256": "55b32c14e692035fa2964a0724d41ad789e65658d8cf3ef76fae937fb8f26032" }, "downloads": -1, "filename": "wotpy-0.8.10.tar.gz", "has_sig": false, "md5_digest": "7182204330a59fdf968bd9befdf03151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93224, "upload_time": "2019-04-05T10:37:43", "url": "https://files.pythonhosted.org/packages/dc/96/31e7dd65210e41e9997c8586d7ce23db03861adef9318fc96fe96230ec56/wotpy-0.8.10.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "e1f0185a5146a333d1711160a753a4a3", "sha256": "c5d90c39b2d6646646d39cca6762c7a239997e0258ec6639436c4b2ad0fe2e0b" }, "downloads": -1, "filename": "wotpy-0.8.5-py2-none-any.whl", "has_sig": false, "md5_digest": "e1f0185a5146a333d1711160a753a4a3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 149751, "upload_time": "2019-02-14T17:14:56", "url": "https://files.pythonhosted.org/packages/5c/56/79727bfdfa813d3cc841e041434c04f594eb54d6678806724d1c02515592/wotpy-0.8.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80725d6b1d0fdda6767f88531d75d9f2", "sha256": "c2e8bf7fd910fc387a20aa829fc6780a0603e9a297e9ae0705c28222f4e448cf" }, "downloads": -1, "filename": "wotpy-0.8.5-py3-none-any.whl", "has_sig": false, "md5_digest": "80725d6b1d0fdda6767f88531d75d9f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 149806, "upload_time": "2019-02-14T17:14:35", "url": "https://files.pythonhosted.org/packages/2d/f0/f21bc287a8e773990f924128d94ca7ef55b5cb229fd9ad0491c95476e636/wotpy-0.8.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "023e80c493ee9468e159984130e0a34c", "sha256": "164326778ec2ca3f228d0818456bf6557f5f905c70b627a4fb044d105586b116" }, "downloads": -1, "filename": "wotpy-0.8.5.tar.gz", "has_sig": false, "md5_digest": "023e80c493ee9468e159984130e0a34c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92737, "upload_time": "2019-02-14T17:14:37", "url": "https://files.pythonhosted.org/packages/29/45/72048944d7e731c510a87f5d719f3e6f2ed9b43f30df8a71847bb640acc7/wotpy-0.8.5.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "71abe4cd56c8b32f9f22569e7976b216", "sha256": "fd53e59889ef952c3f39ab174d25e46fbe2f1cbcbb8d7a199b619d4c1466ed93" }, "downloads": -1, "filename": "wotpy-0.8.6-py2-none-any.whl", "has_sig": false, "md5_digest": "71abe4cd56c8b32f9f22569e7976b216", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 149885, "upload_time": "2019-02-15T09:37:24", "url": "https://files.pythonhosted.org/packages/5f/ce/d7e9c338aef545777eca09c6123a10c47f6b4c521ccb3af6132cdd0a3471/wotpy-0.8.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6965a848e23d9c36ce440f3b2db3bd4", "sha256": "122710752678ba2d22231c0f40d1a319b56755c1613152861dd0ee5ea79bde96" }, "downloads": -1, "filename": "wotpy-0.8.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f6965a848e23d9c36ce440f3b2db3bd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 149942, "upload_time": "2019-02-15T09:40:06", "url": "https://files.pythonhosted.org/packages/58/5a/779e88e8750ec2312bced788b455ff8b543c45b27ade23545844f43490b3/wotpy-0.8.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "284d54b0ed57c5b942153f4717de45c7", "sha256": "dc29b18021dfe7a72fe33b559f333c9cafc5eb40e503e48254cdd41580e6d543" }, "downloads": -1, "filename": "wotpy-0.8.6.tar.gz", "has_sig": false, "md5_digest": "284d54b0ed57c5b942153f4717de45c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92856, "upload_time": "2019-02-15T09:37:26", "url": "https://files.pythonhosted.org/packages/46/7a/f00b65e693abfbbf134919a23795d3c3ab9795fdac2109acdbba1734d11f/wotpy-0.8.6.tar.gz" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "2caa038a6bf4d5f1f2aa3ce41b436b88", "sha256": "190c3ad87adc8019c5ae07b3a7ec3594f100d5ffc04af2e87936b02b3cc9a06c" }, "downloads": -1, "filename": "wotpy-0.8.7-py2-none-any.whl", "has_sig": false, "md5_digest": "2caa038a6bf4d5f1f2aa3ce41b436b88", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 149903, "upload_time": "2019-03-21T17:27:22", "url": "https://files.pythonhosted.org/packages/1c/8d/4c535b0a849f100f9877d9a452a27f1a6635de0b24771f324e0352dafff3/wotpy-0.8.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d30fa8e2ed3fb063ed2ec6805ba09431", "sha256": "44bcd5deda7f3edb582fdc54e98fd4749c8ba2a85a767d2b73a81f94073fb735" }, "downloads": -1, "filename": "wotpy-0.8.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d30fa8e2ed3fb063ed2ec6805ba09431", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 149960, "upload_time": "2019-03-21T17:29:19", "url": "https://files.pythonhosted.org/packages/d3/0f/b3fd30385d51e2e27cba41a2dec182244c83cdbf28e577db1a284163eb24/wotpy-0.8.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a918a3b1aa96b4e938e2ca075ed698b", "sha256": "5ddee9f2d29e28fcc7bd808418a3822f1c240ea64258de9f8191f88cd412ccd6" }, "downloads": -1, "filename": "wotpy-0.8.7.tar.gz", "has_sig": false, "md5_digest": "6a918a3b1aa96b4e938e2ca075ed698b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92891, "upload_time": "2019-03-21T17:27:24", "url": "https://files.pythonhosted.org/packages/a7/83/29a5dd86e61fba36ca3a589a9992178868f8054c3eec3cc01e691661601f/wotpy-0.8.7.tar.gz" } ], "0.8.8": [ { "comment_text": "", "digests": { "md5": "bdc6805a95f34e7a30b7d1e0684a4ace", "sha256": "e8b589a82a91ae5caee7067d14143ce2b170da0feb426e9bd56e5ad79150a2af" }, "downloads": -1, "filename": "wotpy-0.8.8-py2-none-any.whl", "has_sig": false, "md5_digest": "bdc6805a95f34e7a30b7d1e0684a4ace", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 150084, "upload_time": "2019-04-03T16:57:03", "url": "https://files.pythonhosted.org/packages/37/3f/9a31d9889e2fa78f80ae8eafa21a00a931642a1240322828d18a0b5ff0bd/wotpy-0.8.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "571c04eb41c5911d9e654e2a1bb8ce6d", "sha256": "158a38da1507e21f22c7f875162709b9d6d54b84915ae0f923c0adae21ffde71" }, "downloads": -1, "filename": "wotpy-0.8.8-py3-none-any.whl", "has_sig": false, "md5_digest": "571c04eb41c5911d9e654e2a1bb8ce6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 150144, "upload_time": "2019-04-03T16:59:48", "url": "https://files.pythonhosted.org/packages/a4/86/c6bcfa20339fe751b3e8b09cc1e7de6830cbf6fd21a10d651c7375ed397e/wotpy-0.8.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2131be4bd989f4c231de304fa7297d0", "sha256": "ad748a8b632ac35dd7a4060a0352f798caccb1432cfdec8cc201ef16440b702b" }, "downloads": -1, "filename": "wotpy-0.8.8.tar.gz", "has_sig": false, "md5_digest": "f2131be4bd989f4c231de304fa7297d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93029, "upload_time": "2019-04-03T16:57:05", "url": "https://files.pythonhosted.org/packages/05/9a/5038008947b32b2f5168078bf8c5f6af4d7814aca69e148e5c148dabc5ce/wotpy-0.8.8.tar.gz" } ], "0.8.9": [ { "comment_text": "", "digests": { "md5": "27267f07620396c29dce067c49b5500d", "sha256": "b0ee23f899e1a9ed08ee0fbe19f4ad9b698fa5eb0f0424d85502cc71fd272f5f" }, "downloads": -1, "filename": "wotpy-0.8.9-py2-none-any.whl", "has_sig": false, "md5_digest": "27267f07620396c29dce067c49b5500d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 150106, "upload_time": "2019-04-04T16:36:30", "url": "https://files.pythonhosted.org/packages/98/14/7485bd655354760dda7c15a10abb8090b4a68a63a4c38fc8389fdf718569/wotpy-0.8.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9d8e46edb6b356d92f9612a63bd2c54", "sha256": "6c92fcb8e06b641f1bd66a09f9c3b757858ccb4628e4c18c680c1776791c4cae" }, "downloads": -1, "filename": "wotpy-0.8.9-py3-none-any.whl", "has_sig": false, "md5_digest": "d9d8e46edb6b356d92f9612a63bd2c54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 150163, "upload_time": "2019-04-04T16:38:05", "url": "https://files.pythonhosted.org/packages/c6/9d/5a34df4e4acba79cdd8b56a7197ceaadba811fc51781c02698206e0275ea/wotpy-0.8.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ae64df64af98c5e701f5c81c34e8596", "sha256": "81cf29e4a40c898608120d728a40cfdd5a4425c000aec00cc324d12e1f5a9d3d" }, "downloads": -1, "filename": "wotpy-0.8.9.tar.gz", "has_sig": false, "md5_digest": "1ae64df64af98c5e701f5c81c34e8596", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92998, "upload_time": "2019-04-04T16:36:32", "url": "https://files.pythonhosted.org/packages/97/32/a250906e7c3bfa1d0101b58ea3e8b532cb6c354f48a3ee1274f15c3dfcff/wotpy-0.8.9.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "7d23b4392e91cc539aa9b44ae0f72f9c", "sha256": "37f0044345548d537ae6ad9500eb0c4ec447e495511297cb3fdbde6672d3e863" }, "downloads": -1, "filename": "wotpy-0.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7d23b4392e91cc539aa9b44ae0f72f9c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 150677, "upload_time": "2019-04-05T18:53:53", "url": "https://files.pythonhosted.org/packages/db/db/96815b95c8ccff2f0e2ad857e519e31d7f554b7a16b7eafa52dd77a26a06/wotpy-0.9.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "892fe0a77c818e79eb5605deb5fb83a9", "sha256": "b8d860e3b54ee5f9a66c1d72da24e76c4d629f8e5c3dd905f06b1d8a7107a4da" }, "downloads": -1, "filename": "wotpy-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "892fe0a77c818e79eb5605deb5fb83a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 150737, "upload_time": "2019-04-05T18:56:36", "url": "https://files.pythonhosted.org/packages/f0/4a/d7e02553ca14e0aa9b805eae8a9d772705fc2bab8b6be4137db4161d938c/wotpy-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e60dfaa8b7c7ed93d1ec5f25e7e6221", "sha256": "5bed2cef1f92e090e1f27e1ab7c797926ed7993b1fcfc99f9b369ced3bef9f8c" }, "downloads": -1, "filename": "wotpy-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8e60dfaa8b7c7ed93d1ec5f25e7e6221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93679, "upload_time": "2019-04-05T18:53:55", "url": "https://files.pythonhosted.org/packages/45/ae/aedf57b3f9376b4c6ab2ed27f9a5252b5d3c6529fbde4e3b84c08986f988/wotpy-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e61536bfe8a4d191a7466678744ed9a5", "sha256": "686818e8a4cee8ba988b5ed5585d1fb355c76a77ffbf43fe58d246b06df57707" }, "downloads": -1, "filename": "wotpy-0.13.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e61536bfe8a4d191a7466678744ed9a5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 151251, "upload_time": "2019-10-11T08:54:54", "url": "https://files.pythonhosted.org/packages/f0/42/bb885f080deed4e74ec28ebd2b449acd646d3b1f612e0699e0741b99d841/wotpy-0.13.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "807520f257827a5b8461c2ab9374135e", "sha256": "f1e2c92c385a1430f2e42c323882c171864d658a3ffb12e3dbe807ea56f7c645" }, "downloads": -1, "filename": "wotpy-0.13.0-py3-none-any.whl", "has_sig": false, "md5_digest": "807520f257827a5b8461c2ab9374135e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 151312, "upload_time": "2019-10-11T08:56:20", "url": "https://files.pythonhosted.org/packages/75/e4/d39e2f75e6aa5d4aea3e63b27a9169250e13180174867c6d06deadb7d72c/wotpy-0.13.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15881c2fbba95ced160b5b075552b312", "sha256": "d2cf6af6a094209bfae606e2ca09e0e2fa61d2c8b699e99b88108dd854552f62" }, "downloads": -1, "filename": "wotpy-0.13.0.tar.gz", "has_sig": false, "md5_digest": "15881c2fbba95ced160b5b075552b312", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93934, "upload_time": "2019-10-11T08:54:55", "url": "https://files.pythonhosted.org/packages/90/1f/5321c9dd62e03316bd30b8c1d482e0c80617cbd32a731dd6a05ab9e543fb/wotpy-0.13.0.tar.gz" } ] }