{
"info": {
"author": "Mozilla IoT",
"author_email": "iot@mozilla.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "webthing\n========\n\n.. image:: https://travis-ci.org/mozilla-iot/webthing-python.svg?branch=master\n :target: https://travis-ci.org/mozilla-iot/webthing-python\n.. image:: https://img.shields.io/pypi/v/webthing.svg\n :target: https://pypi.org/project/webthing/\n.. image:: https://img.shields.io/badge/license-MPL--2.0-blue.svg\n :target: https://github.com/mozilla-iot/webthing-python/blob/master/LICENSE.txt\n\nImplementation of an HTTP `Web Thing `_. This library is compatible with Python 2.7 and 3.4+.\n\nInstallation\n============\n\n``webthing`` can be installed via ``pip``, as such:\n\n.. code:: shell\n\n $ pip install webthing\n\nRunning the Sample\n==================\n\n.. code:: shell\n\n $ wget https://raw.githubusercontent.com/mozilla-iot/webthing-python/master/example/single-thing.py\n $ python3 single-thing.py\n\nThis starts a server and lets you search for it from your gateway through mDNS. To add it to your gateway, navigate to the Things page in the gateway's UI and click the + icon at the bottom right. If both are on the same network, the example thing will automatically appear.\n\nExample Implementation\n======================\n\nIn this code-walkthrough we will set up a dimmable light and a humidity sensor (both using fake data, of course). Both working examples can be found in `here `_.\n\nDimmable Light\n--------------\n\nImagine you have a dimmable light that you want to expose via the web of things API. The light can be turned on/off and the brightness can be set from 0% to 100%. Besides the name, description, and type, a |Light|_ is required to expose two properties:\n\n.. |Light| replace:: ``Light``\n.. _Light: https://iot.mozilla.org/schemas/#Light\n\n* ``on``: the state of the light, whether it is turned on or off\n\n - Setting this property via a ``PUT {\"on\": true/false}`` call to the REST API toggles the light.\n\n* ``brightness``: the brightness level of the light from 0-100%\n\n - Setting this property via a PUT call to the REST API sets the brightness level of this light.\n\nFirst we create a new Thing:\n\n.. code:: python\n\n light = Thing(\n 'urn:dev:ops:my-lamp-1234',\n 'My Lamp',\n ['OnOffSwitch', 'Light'],\n 'A web connected lamp'\n )\n\nNow we can add the required properties.\n\nThe ``on`` property reports and sets the on/off state of the light. For this, we need to have a ``Value`` object which holds the actual state and also a method to turn the light on/off. For our purposes, we just want to log the new state if the light is switched on/off.\n\n.. code:: python\n\n light.add_property(\n Property(\n light,\n 'on',\n Value(True, lambda v: print('On-State is now', v)),\n metadata={\n '@type': 'OnOffProperty',\n 'title': 'On/Off',\n 'type': 'boolean',\n 'description': 'Whether the lamp is turned on',\n }))\n\nThe ``brightness`` property reports the brightness level of the light and sets the level. Like before, instead of actually setting the level of a light, we just log the level.\n\n.. code:: python\n\n light.add_property(\n Property(\n light,\n 'brightness',\n Value(50, lambda v: print('Brightness is now', v)),\n metadata={\n '@type': 'BrightnessProperty',\n 'title': 'Brightness',\n 'type': 'number',\n 'description': 'The level of light from 0-100',\n 'minimum': 0,\n 'maximum': 100,\n 'unit': 'percent',\n }))\n\nNow we can add our newly created thing to the server and start it:\n\n.. code:: python\n\n # If adding more than one thing, use MultipleThings() with a name.\n # In the single thing case, the thing's name will be broadcast.\n server = WebThingServer(SingleThing(light), port=8888)\n\n try:\n server.start()\n except KeyboardInterrupt:\n server.stop()\n\nThis will start the server, making the light available via the WoT REST API and announcing it as a discoverable resource on your local network via mDNS.\n\nSensor\n------\n\nLet's now also connect a humidity sensor to the server we set up for our light.\n\nA |MultiLevelSensor|_ (a sensor that returns a level instead of just on/off) has one required property (besides the name, type, and optional description): ``level``. We want to monitor this property and get notified if the value changes.\n\n.. |MultiLevelSensor| replace:: ``MultiLevelSensor``\n.. _MultiLevelSensor: https://iot.mozilla.org/schemas/#MultiLevelSensor\n\nFirst we create a new Thing:\n\n.. code:: python\n\n sensor = Thing(\n 'urn:dev:ops:my-humidity-sensor-1234',\n 'My Humidity Sensor',\n ['MultiLevelSensor'],\n 'A web connected humidity sensor'\n )\n\nThen we create and add the appropriate property:\n\n* ``level``: tells us what the sensor is actually reading\n\n - Contrary to the light, the value cannot be set via an API call, as it wouldn't make much sense, to SET what a sensor is reading. Therefore, we are creating a **readOnly** property.\n\n .. code:: python\n\n level = Value(0.0);\n\n sensor.add_property(\n Property(\n sensor,\n 'level',\n level,\n metadata={\n '@type': 'LevelProperty',\n 'title': 'Humidity',\n 'type': 'number',\n 'description': 'The current humidity in %',\n 'minimum': 0,\n 'maximum': 100,\n 'unit': 'percent',\n 'readOnly': True,\n }))\n\nNow we have a sensor that constantly reports 0%. To make it usable, we need a thread or some kind of input when the sensor has a new reading available. For this purpose we start a thread that queries the physical sensor every few seconds. For our purposes, it just calls a fake method.\n\n.. code:: python\n\n self.sensor_update_task = \\\n get_event_loop().create_task(self.update_level())\n\n async def update_level(self):\n try:\n while True:\n await sleep(3)\n new_level = self.read_from_gpio()\n logging.debug('setting new humidity level: %s', new_level)\n self.level.notify_of_external_update(new_level)\n except CancelledError:\n pass\n\nThis will update our ``Value`` object with the sensor readings via the ``self.level.notify_of_external_update(read_from_gpio())`` call. The ``Value`` object now notifies the property and the thing that the value has changed, which in turn notifies all websocket listeners.\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/mozilla-iot/webthing-python",
"keywords": "mozilla iot web thing webthing",
"license": "MPL-2.0",
"maintainer": "",
"maintainer_email": "",
"name": "webthing",
"package_url": "https://pypi.org/project/webthing/",
"platform": "",
"project_url": "https://pypi.org/project/webthing/",
"project_urls": {
"Homepage": "https://github.com/mozilla-iot/webthing-python",
"Source": "https://github.com/mozilla-iot/webthing-python",
"Tracker": "https://github.com/mozilla-iot/webthing-python/issues"
},
"release_url": "https://pypi.org/project/webthing/0.12.0/",
"requires_dist": [
"ifaddr (>=0.1.0)",
"pyee (>=6.0.0)",
"jsonschema (>=3.0.0)",
"tornado (>=6.0.0)",
"zeroconf (>=0.21.0)"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"summary": "HTTP Web Thing implementation",
"version": "0.12.0"
},
"last_serial": 5524257,
"releases": {
"0.10.0": [
{
"comment_text": "",
"digests": {
"md5": "fb5eacd74bb6479e4bbbc8511bc52812",
"sha256": "46bcdb6d8504b5f2dd3a6b4c653f9c60541d426dbc868240d01c89b30cd05168"
},
"downloads": -1,
"filename": "webthing-0.10.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fb5eacd74bb6479e4bbbc8511bc52812",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 19960,
"upload_time": "2018-11-30T19:28:53",
"url": "https://files.pythonhosted.org/packages/68/e3/e359301b697a77e8f08c660d8478cbcb38a189e7f57da64070ac5ad630ba/webthing-0.10.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "779abebc62f7deb89240dc5840a5ba40",
"sha256": "d57af4b8e5a947141203e40f21ef36fc36051e22eef25c8cc7b9dcd1fd245e6e"
},
"downloads": -1,
"filename": "webthing-0.10.0.tar.gz",
"has_sig": false,
"md5_digest": "779abebc62f7deb89240dc5840a5ba40",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19594,
"upload_time": "2018-11-30T19:28:55",
"url": "https://files.pythonhosted.org/packages/7d/e4/b35d45db4bb68fdf1c38bcce57cbcaa411dd5f10b11a4526be71f268706b/webthing-0.10.0.tar.gz"
}
],
"0.11.0": [
{
"comment_text": "",
"digests": {
"md5": "e2dfa759316f9cb04a21ccfcd5a5e406",
"sha256": "05a52de8be8af5a317744e072ec0b3c7d0aeab66faa7267de770a51f342949df"
},
"downloads": -1,
"filename": "webthing-0.11.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2dfa759316f9cb04a21ccfcd5a5e406",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 20099,
"upload_time": "2019-01-16T17:26:30",
"url": "https://files.pythonhosted.org/packages/03/7e/c8f362a6e7b5d77c1fd0209e688e66ec393d39acc4f38b46bace7d053b42/webthing-0.11.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a23a34f49736e0ca3fc16684b15d878",
"sha256": "b23e0b577f74bfa1028624223a60975039451e9eb26160b310e7681925ee91dd"
},
"downloads": -1,
"filename": "webthing-0.11.0.tar.gz",
"has_sig": false,
"md5_digest": "5a23a34f49736e0ca3fc16684b15d878",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19723,
"upload_time": "2019-01-16T17:26:32",
"url": "https://files.pythonhosted.org/packages/2b/1d/bc57f15698a347116a583eb13feb1947926bc0f3322145c3f4decf018037/webthing-0.11.0.tar.gz"
}
],
"0.11.1": [
{
"comment_text": "",
"digests": {
"md5": "ba1fd595ccf6e584210126d0e284474c",
"sha256": "f2fa891e5e4a41702b41eb06e7783b52d740a4775f12134f9268dcca1cdbdca8"
},
"downloads": -1,
"filename": "webthing-0.11.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ba1fd595ccf6e584210126d0e284474c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20324,
"upload_time": "2019-01-28T16:10:55",
"url": "https://files.pythonhosted.org/packages/bf/46/b8460dd86abfd59d181697ede692797edffa79df262485717ed33d0e4d3d/webthing-0.11.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ebe07f6e01a030cfb7d433b03f2892da",
"sha256": "c1c12165939321b3427999a3d12e9ca484519b5db15899ac0d19e57f20aeaa8c"
},
"downloads": -1,
"filename": "webthing-0.11.1.tar.gz",
"has_sig": false,
"md5_digest": "ebe07f6e01a030cfb7d433b03f2892da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20230,
"upload_time": "2019-01-28T16:10:57",
"url": "https://files.pythonhosted.org/packages/81/2a/056733afd4c70e20a4ad6fe0529677f5c5fce8fa0170702f5cb55422bb2e/webthing-0.11.1.tar.gz"
}
],
"0.11.2": [
{
"comment_text": "",
"digests": {
"md5": "2613c96addd1ff7b2b41ae8f14b77568",
"sha256": "9dcfc24f7dc8cc02c242f3e554c226614947ade3dfe66129322f07f1c6f9a771"
},
"downloads": -1,
"filename": "webthing-0.11.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2613c96addd1ff7b2b41ae8f14b77568",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20341,
"upload_time": "2019-03-11T16:27:20",
"url": "https://files.pythonhosted.org/packages/2b/96/40bde36ef7c8cfa5ec6d9dfe0cd9c41e33e80cdb453397147f155436cb35/webthing-0.11.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "684cde822ee5e8b48a83babccecb17ff",
"sha256": "572a3a45d34c760b0cc663aba957cb6bce8d6f3e5eb2894e06db4e4d61c8e022"
},
"downloads": -1,
"filename": "webthing-0.11.2.tar.gz",
"has_sig": false,
"md5_digest": "684cde822ee5e8b48a83babccecb17ff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20325,
"upload_time": "2019-03-11T16:27:21",
"url": "https://files.pythonhosted.org/packages/15/80/99235239652031cf1d0adbe0be8ab28c493a59956790756eb45a2cd3a721/webthing-0.11.2.tar.gz"
}
],
"0.11.3": [
{
"comment_text": "",
"digests": {
"md5": "667f3ec6c708e13f243e5ed8e144db68",
"sha256": "c039b7a77429d32ffbdbe54402115fb3b95ba353c796bc8cf041ce67a73e885f"
},
"downloads": -1,
"filename": "webthing-0.11.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "667f3ec6c708e13f243e5ed8e144db68",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20284,
"upload_time": "2019-04-10T20:03:10",
"url": "https://files.pythonhosted.org/packages/ae/53/13230db2161d67d68965c14abd6858637b1a5c3d147fb2d404c3dde85e06/webthing-0.11.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "98327ed1b949377af81808230a6b02e8",
"sha256": "9c282ac2d44ca53a81309755c6a2c99b619f613cd9fa3e3d2abb0cff781b9e3e"
},
"downloads": -1,
"filename": "webthing-0.11.3.tar.gz",
"has_sig": false,
"md5_digest": "98327ed1b949377af81808230a6b02e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20290,
"upload_time": "2019-04-10T20:03:11",
"url": "https://files.pythonhosted.org/packages/ea/14/c0219e510dace664ac39171beec3e8df45dc05d358985aa2aee5aa74f587/webthing-0.11.3.tar.gz"
}
],
"0.12.0": [
{
"comment_text": "",
"digests": {
"md5": "aee22c3ac0e0116fa5d037554431ae91",
"sha256": "b07a9f1219f8c352814f52724dc5d8f528ea9fe7c8ec0a9f16fd7a99a88c647f"
},
"downloads": -1,
"filename": "webthing-0.12.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aee22c3ac0e0116fa5d037554431ae91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20702,
"upload_time": "2019-07-12T17:44:02",
"url": "https://files.pythonhosted.org/packages/8c/1a/a4a05427f72c2d2b6dd69ea29e66529e7a42ef59aaa2e6a2b46cba619df0/webthing-0.12.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "65ae25061a3cd49f3205ee41f252abf2",
"sha256": "0b48ead979565804b717cc4abaf6f3dd52d9e32af169d96db9f832e4ba967973"
},
"downloads": -1,
"filename": "webthing-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "65ae25061a3cd49f3205ee41f252abf2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20851,
"upload_time": "2019-07-12T17:44:04",
"url": "https://files.pythonhosted.org/packages/fb/08/d0cd4824c6fe8ceed9eaf465839cb42b4fec80fd0a00ead538b71079c4b7/webthing-0.12.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "8cc361819eb489fc70bfc7ea7d8608d5",
"sha256": "09294632fe7b3a224fed3118d74ca1c3870c9d5fe639f48a5632da7b150c104f"
},
"downloads": -1,
"filename": "webthing-0.3.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "8cc361819eb489fc70bfc7ea7d8608d5",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 11562,
"upload_time": "2018-03-20T17:46:47",
"url": "https://files.pythonhosted.org/packages/95/82/0568a8b071853af62fcc5de88d571f8e08fa2291ba942b6dc35c157e1792/webthing-0.3.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f7ae09b0afd98d4ae3f66233d385409b",
"sha256": "46ad27ad29b1c462a835bb2f6ea2d11db5e96c7073f2455802360fc5462bd85c"
},
"downloads": -1,
"filename": "webthing-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f7ae09b0afd98d4ae3f66233d385409b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 11547,
"upload_time": "2018-03-20T17:46:49",
"url": "https://files.pythonhosted.org/packages/27/98/7d77f3f2e6bbd3221c4d95d27fc5250f95eda27b0e4f6f492d416cb4ca26/webthing-0.3.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "85bbc68400298d20b8c3f9893cada94a",
"sha256": "3a10ea6f25cea2411550f10226955dcb67c31cbbab3f14daa21a858240c5de4a"
},
"downloads": -1,
"filename": "webthing-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "85bbc68400298d20b8c3f9893cada94a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 13240,
"upload_time": "2018-03-20T17:46:50",
"url": "https://files.pythonhosted.org/packages/87/7c/a3fd07e9de372f121c2e3d732569962048b287bfe56875d2af133a60e185/webthing-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "802dd141aba41546f9c18a2388821210",
"sha256": "26cde6ff0f866edfc81726466b9749f2afe250cd9005bba48daf2b4a4a20929a"
},
"downloads": -1,
"filename": "webthing-0.4.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "802dd141aba41546f9c18a2388821210",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 12739,
"upload_time": "2018-03-22T21:26:32",
"url": "https://files.pythonhosted.org/packages/28/c4/696e8bfde1222bba3a082339114b312c759e3c2b9983c69729535cf76417/webthing-0.4.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "31c6ed6191b8419eb8dcdf0878c121b0",
"sha256": "461ad8544b6fe3f9701757f6cd76e3c2e817e2af9215481f9aedba570842808a"
},
"downloads": -1,
"filename": "webthing-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "31c6ed6191b8419eb8dcdf0878c121b0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 12727,
"upload_time": "2018-03-22T21:26:34",
"url": "https://files.pythonhosted.org/packages/7a/9a/d0dd5a643d9a40630dd3109607714179551fca57feb525458728eb9d16bd/webthing-0.4.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "69aea0f22ef318dc80924a65cad3d353",
"sha256": "663afb6c8a93cee933e328671186a25eee0f7e6b85d84b11cd8791d9a7cd6c14"
},
"downloads": -1,
"filename": "webthing-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "69aea0f22ef318dc80924a65cad3d353",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 14196,
"upload_time": "2018-03-22T21:26:35",
"url": "https://files.pythonhosted.org/packages/cf/00/f614f815cad1818833217da525c3266b6be0d5ed04b2cff19c38c414874c/webthing-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "e103f38b62e61b1916d5de8ba4c3539b",
"sha256": "b05475a36b509bfd872bff9b94d6d246b9eba8163713eaf01f72dec5ada13656"
},
"downloads": -1,
"filename": "webthing-0.4.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e103f38b62e61b1916d5de8ba4c3539b",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 12866,
"upload_time": "2018-03-28T15:55:47",
"url": "https://files.pythonhosted.org/packages/f7/92/27ad7c7fe7c4872244887a527cd9c357e64cf562eb20352609e4f39f7430/webthing-0.4.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6de5c81ca48eaaeae228bbd44fafdaa0",
"sha256": "7fe437347ceedae368b680003544b84c8dc937745ec18dc7e80db9f351f6b509"
},
"downloads": -1,
"filename": "webthing-0.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6de5c81ca48eaaeae228bbd44fafdaa0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 12848,
"upload_time": "2018-03-28T15:55:48",
"url": "https://files.pythonhosted.org/packages/85/af/0fe48ef3155f8048dd8ea2985f5d15618600ec952a3d82aca01168a39488/webthing-0.4.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9c0bf6eaa0c5d5d55812c2d164b593e3",
"sha256": "7614ae9348f2cf6cc07704c811d63361e56f80990501d245dbc0453292eb89f4"
},
"downloads": -1,
"filename": "webthing-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "9c0bf6eaa0c5d5d55812c2d164b593e3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 14281,
"upload_time": "2018-03-28T15:55:50",
"url": "https://files.pythonhosted.org/packages/30/e5/b198cf434aec711b2ebcde6a6039181ef56dffe69a58d5ad895e58210a05/webthing-0.4.1.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "0363410296d0ab51e394d8dbe09875f3",
"sha256": "559cc3b2dba01dec20672fbdc9acc0733205557937120d4784b40cedac11deba"
},
"downloads": -1,
"filename": "webthing-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0363410296d0ab51e394d8dbe09875f3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4, <4",
"size": 15607,
"upload_time": "2018-03-30T19:22:54",
"url": "https://files.pythonhosted.org/packages/02/2a/24d5335fe348126a9489889386799cb83742107510a1668486dfcd976566/webthing-0.5.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b27c213824e107044adcd37b7bf38105",
"sha256": "b22534678de003ba1a6e810493dda73a78a97c2b4febb43d95c2254de7f9d03e"
},
"downloads": -1,
"filename": "webthing-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "b27c213824e107044adcd37b7bf38105",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4, <4",
"size": 15823,
"upload_time": "2018-03-30T19:22:55",
"url": "https://files.pythonhosted.org/packages/65/3f/1618c5dc76106fc4466ca62bd2388717ae27c75d7d0b58a2bb060e296c20/webthing-0.5.0.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "6f05ecd2b44f24c1b3e9598b680485a8",
"sha256": "5161b3e4e068b894ee42052cdf58a53a1a2ab74d232a59d8e094549dd781bcc8"
},
"downloads": -1,
"filename": "webthing-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f05ecd2b44f24c1b3e9598b680485a8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4, <4",
"size": 15601,
"upload_time": "2018-04-11T12:20:10",
"url": "https://files.pythonhosted.org/packages/de/5e/9bac9fb9beae9917f0496d22a84712f90c746ffe23e83c96e3e265096e92/webthing-0.5.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8a45cac0e70dd329ec4208cce09a7378",
"sha256": "cd85a0f99629988d558c2a5165f7d1cea1331871f651a7f94a03b94248d344a7"
},
"downloads": -1,
"filename": "webthing-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "8a45cac0e70dd329ec4208cce09a7378",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4, <4",
"size": 15863,
"upload_time": "2018-04-11T12:20:11",
"url": "https://files.pythonhosted.org/packages/c0/33/96e1e258c69350bb230278e823397248e60be601e0ba661f88eddf3e6768/webthing-0.5.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "cd860bb6f7bf80aa5f545ee28256942e",
"sha256": "7b9033c8a2544419ae82fd6f7e79354d15e0a96ccebd6cac81650b1541386485"
},
"downloads": -1,
"filename": "webthing-0.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd860bb6f7bf80aa5f545ee28256942e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4, <4",
"size": 15678,
"upload_time": "2018-04-12T13:48:13",
"url": "https://files.pythonhosted.org/packages/17/f3/d687a3ff89c0858d2c58ed7c225bdc237d5620db39a136577e0bc81cb4ce/webthing-0.5.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "be958063b8d8f04175cfa335049f861c",
"sha256": "939dd36107ed8c90e04529492bd5f0b54398ae6bb4e1778508940126c91e0238"
},
"downloads": -1,
"filename": "webthing-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "be958063b8d8f04175cfa335049f861c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4, <4",
"size": 15886,
"upload_time": "2018-04-12T13:48:13",
"url": "https://files.pythonhosted.org/packages/bb/9b/3045b6434d16ee2a6ca599363f91f0fee7c7cbbe55f881701e7fdda9ca39/webthing-0.5.2.tar.gz"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "da402f414289e5b3d19c0b13c4fc7c87",
"sha256": "167ce0673df61e513186c48d5539bf23504816b0d0da61dd2ee2bc4dbf1a5ed9"
},
"downloads": -1,
"filename": "webthing-0.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "da402f414289e5b3d19c0b13c4fc7c87",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4, <4",
"size": 15802,
"upload_time": "2018-04-16T14:21:01",
"url": "https://files.pythonhosted.org/packages/00/07/fae07d8346f69fe773aabe882d322dacbcceda6a01749481d83c85cc82c3/webthing-0.5.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f8cb7edbeb6b3386c123e8aae52cf866",
"sha256": "6b0d31b731a842affd358d2cf57a7a4dbc0b264cf973496a534918730c771164"
},
"downloads": -1,
"filename": "webthing-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "f8cb7edbeb6b3386c123e8aae52cf866",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4, <4",
"size": 16000,
"upload_time": "2018-04-16T14:21:03",
"url": "https://files.pythonhosted.org/packages/6f/d5/568fc0d2d84bd504c9d53ce70ac1f91f74b2906e73fa67c35da378d0f6ed/webthing-0.5.3.tar.gz"
}
],
"0.5.4": [
{
"comment_text": "",
"digests": {
"md5": "6551605db2d5de90b342ae5db750d427",
"sha256": "24606742535664bd6445e0e141080d8454552fb0d35f62dddf627bd7a8f4a3b5"
},
"downloads": -1,
"filename": "webthing-0.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6551605db2d5de90b342ae5db750d427",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 16054,
"upload_time": "2018-05-15T13:02:51",
"url": "https://files.pythonhosted.org/packages/16/92/20a0ca14aa859e57e49adbded029b96a3fc7626cc5bbb253945bfdb87d56/webthing-0.5.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bc69d3b24482ed36ad122898d9574e2e",
"sha256": "094105e6258d0044f024e5409e49711abe661243d41d7eb9317d091b0f4f38fc"
},
"downloads": -1,
"filename": "webthing-0.5.4.tar.gz",
"has_sig": false,
"md5_digest": "bc69d3b24482ed36ad122898d9574e2e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 16196,
"upload_time": "2018-05-15T13:02:52",
"url": "https://files.pythonhosted.org/packages/63/77/d0d26cd64079d47a02f3d86fca7ff8b16fe35101c81e99f4ad9bd38cd8ed/webthing-0.5.4.tar.gz"
}
],
"0.6.0": [
{
"comment_text": "",
"digests": {
"md5": "cf608de2cdda78e419f2c8cd526213f7",
"sha256": "46e5546922f84fd4c768330588d49c37906fc820c866051fa6f9431bf0a4f215"
},
"downloads": -1,
"filename": "webthing-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cf608de2cdda78e419f2c8cd526213f7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 16120,
"upload_time": "2018-05-22T16:56:16",
"url": "https://files.pythonhosted.org/packages/db/2b/4c77c8a1c8cfd7e834b10af969e978f1f816842cf2b9ba15e272ae770813/webthing-0.6.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a503b64a9b070228252274025b923ed4",
"sha256": "7c3059e727b534efa101bef6069f2ec29c5aa430f62fb1f50b5d8dd82641562f"
},
"downloads": -1,
"filename": "webthing-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "a503b64a9b070228252274025b923ed4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 16229,
"upload_time": "2018-05-22T16:56:17",
"url": "https://files.pythonhosted.org/packages/6f/a2/c17f7ab32867db3a33fb7753b29c91d62e2d3e675d595636943ba2ac2663/webthing-0.6.0.tar.gz"
}
],
"0.7.0": [
{
"comment_text": "",
"digests": {
"md5": "5080a9ba8cd4c7706c45a849bbe79abe",
"sha256": "03736e766f31fba4f1abe46e99fe1f480d7c70403f7fdfa245ba3bc8e8bbfe70"
},
"downloads": -1,
"filename": "webthing-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5080a9ba8cd4c7706c45a849bbe79abe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 13724,
"upload_time": "2018-07-20T17:51:32",
"url": "https://files.pythonhosted.org/packages/c0/27/a00495d84741f0cfb9cd5d80dd4685e70452d3810f5a8636850a59cf692d/webthing-0.7.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f9454f2ee7760145d400d7b5bcd75fd4",
"sha256": "6aad7601f3814a970a95caa4a1311c2e44daf022ac3b69ff6596c123d0097305"
},
"downloads": -1,
"filename": "webthing-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "f9454f2ee7760145d400d7b5bcd75fd4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19157,
"upload_time": "2018-07-20T17:51:33",
"url": "https://files.pythonhosted.org/packages/7f/26/e46aebc09c0b9538278d6d1611d9e349b5befa1e02b132e29ed6eae049a0/webthing-0.7.0.tar.gz"
}
],
"0.8.0": [
{
"comment_text": "",
"digests": {
"md5": "b03572e679c3d104f996b5d85e200894",
"sha256": "0b3c597156657cca8f7e84bb3f7b50fa885cf42d864e1614ee5e4dc85425e5a1"
},
"downloads": -1,
"filename": "webthing-0.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b03572e679c3d104f996b5d85e200894",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 14009,
"upload_time": "2018-09-21T18:08:47",
"url": "https://files.pythonhosted.org/packages/89/64/fbe758d89ff5b8fc0d32a34dca73ddbc5c78413a3b2baa624d51a13c9b18/webthing-0.8.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "68d406101cdb4bfd3792668433600908",
"sha256": "4763816a9574719934f22f1af57d8d9556f5a5eb5937701c6f07c601014d8a5d"
},
"downloads": -1,
"filename": "webthing-0.8.0.tar.gz",
"has_sig": false,
"md5_digest": "68d406101cdb4bfd3792668433600908",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19247,
"upload_time": "2018-09-21T18:08:49",
"url": "https://files.pythonhosted.org/packages/e0/67/badebf092308331b08a46631b334be66e3d9cb95dd8b0abf82922eae2ded/webthing-0.8.0.tar.gz"
}
],
"0.8.1": [
{
"comment_text": "",
"digests": {
"md5": "668e290556da3bdf4d31a49f0dc5d741",
"sha256": "b074499064e52829e9ab58fd89d164167c904d1c885c486a92745a56f7cac5df"
},
"downloads": -1,
"filename": "webthing-0.8.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "668e290556da3bdf4d31a49f0dc5d741",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 14278,
"upload_time": "2018-09-24T20:39:12",
"url": "https://files.pythonhosted.org/packages/b8/02/0034deba7743bbb02ec253d443bcaa6d451f059279874ece7ca68eee70f7/webthing-0.8.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "30c276414582b30211c036cbc93bf761",
"sha256": "3f06a05ea718bbb47eb4eded4db5bf0c96f3201cff09a51ef1fe868cc7162bbf"
},
"downloads": -1,
"filename": "webthing-0.8.1.tar.gz",
"has_sig": false,
"md5_digest": "30c276414582b30211c036cbc93bf761",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19517,
"upload_time": "2018-09-24T20:39:13",
"url": "https://files.pythonhosted.org/packages/39/6a/c263c740cb4951cd1935ed77a9d8cfb8cb57749838af4bd51ea641e34ca6/webthing-0.8.1.tar.gz"
}
],
"0.9.0": [
{
"comment_text": "",
"digests": {
"md5": "bc7b01272db7f79c351022d2e055ce2b",
"sha256": "740705315a887128c9659c2e2ac5c20320ba135296df9487baf1377654f04ca0"
},
"downloads": -1,
"filename": "webthing-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc7b01272db7f79c351022d2e055ce2b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 14655,
"upload_time": "2018-11-08T21:35:35",
"url": "https://files.pythonhosted.org/packages/72/f1/dfa8428d7d0e752eb14a0a503a4cd53b94ef706d8afa02dcdc65d4ef4c5c/webthing-0.9.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "42dcff07ff5990bcf8e398733c8d968c",
"sha256": "999c2ae899c87151f299215e4cc85a8d35ada9918bd19d6d62ffa97cfe21f259"
},
"downloads": -1,
"filename": "webthing-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "42dcff07ff5990bcf8e398733c8d968c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19837,
"upload_time": "2018-11-08T21:35:37",
"url": "https://files.pythonhosted.org/packages/39/e5/e5994234c37cc03adc40515ddd576704ea3c4f776563f0cdbb8e9abd4136/webthing-0.9.0.tar.gz"
}
],
"0.9.1": [
{
"comment_text": "",
"digests": {
"md5": "6f4c64ed89d5d77ff294e518845b80d7",
"sha256": "644b9b46998c8187429b861d76f79b44c7d9b613bc0edc7f60773692d949f29a"
},
"downloads": -1,
"filename": "webthing-0.9.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f4c64ed89d5d77ff294e518845b80d7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 20152,
"upload_time": "2018-11-12T13:38:55",
"url": "https://files.pythonhosted.org/packages/39/58/bd949e39e3607a463c2086d55a51fdb5dc6b469c076744b95671ea9760f0/webthing-0.9.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "936a6156719ec8d89c63ae94de959192",
"sha256": "f84e1a116e6226e6f5bc4d428281676bb80bf47863891d66f3c94caacaf1e66e"
},
"downloads": -1,
"filename": "webthing-0.9.1.tar.gz",
"has_sig": false,
"md5_digest": "936a6156719ec8d89c63ae94de959192",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19836,
"upload_time": "2018-11-12T13:38:56",
"url": "https://files.pythonhosted.org/packages/c8/8b/47330e8cc66daa3946936002a5b4d5f1ced71fbb4c6fe590c3e5f6b87db3/webthing-0.9.1.tar.gz"
}
],
"0.9.2": [
{
"comment_text": "",
"digests": {
"md5": "6ef1590450402057559fba6271d68841",
"sha256": "abfcf9610a58c5b611005fb8bd76eed5615ff52ba0d367b8fed73f4482637e0a"
},
"downloads": -1,
"filename": "webthing-0.9.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ef1590450402057559fba6271d68841",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5, <4",
"size": 19930,
"upload_time": "2018-11-16T13:36:56",
"url": "https://files.pythonhosted.org/packages/4c/81/9d3a7137bb80dce60117e4d431040c15627169b786b4b15a6ee0b11a1c7f/webthing-0.9.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "12131c81c906a8acaacf3f7cf57ac0b3",
"sha256": "b1b0e9b69c479c57172b1a7cd85ec64c3965df7860f52c5416016f39e5f587f1"
},
"downloads": -1,
"filename": "webthing-0.9.2.tar.gz",
"has_sig": false,
"md5_digest": "12131c81c906a8acaacf3f7cf57ac0b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5, <4",
"size": 19588,
"upload_time": "2018-11-16T13:36:57",
"url": "https://files.pythonhosted.org/packages/f7/96/1e27324ab1ff1a56758459402f831bcf70282788535158c73ec0303bfd70/webthing-0.9.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "aee22c3ac0e0116fa5d037554431ae91",
"sha256": "b07a9f1219f8c352814f52724dc5d8f528ea9fe7c8ec0a9f16fd7a99a88c647f"
},
"downloads": -1,
"filename": "webthing-0.12.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aee22c3ac0e0116fa5d037554431ae91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20702,
"upload_time": "2019-07-12T17:44:02",
"url": "https://files.pythonhosted.org/packages/8c/1a/a4a05427f72c2d2b6dd69ea29e66529e7a42ef59aaa2e6a2b46cba619df0/webthing-0.12.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "65ae25061a3cd49f3205ee41f252abf2",
"sha256": "0b48ead979565804b717cc4abaf6f3dd52d9e32af169d96db9f832e4ba967973"
},
"downloads": -1,
"filename": "webthing-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "65ae25061a3cd49f3205ee41f252abf2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 20851,
"upload_time": "2019-07-12T17:44:04",
"url": "https://files.pythonhosted.org/packages/fb/08/d0cd4824c6fe8ceed9eaf465839cb42b4fec80fd0a00ead538b71079c4b7/webthing-0.12.0.tar.gz"
}
]
}