Skip to main content

Python implementation of a W3C WoT Runtime and the WoT Scripting API

Project description

:warning: Please note that this project is currently behind the current version of the W3C WoT specifications. Our intention is to get it up to speed and implement the latest Thing Description and Scripting API versions. However, we cannot provide a timeframe for this update.

WoTPy

Travis (.com) Coverage Status PyPI

Introduction

WoTPy is an experimental implementation of a W3C WoT Runtime and the W3C WoT Scripting API in Python.

Inspired by the exploratory implementations located in the thingweb GitHub page.

Features

  • Supports Python 2.7 and Python 3.
  • Fully-implemented WoT interface.
  • Multicast discovery based on mDNS.
  • Asynchronous I/O programming model based on coroutines.
  • Multiple client and server Protocol Binding implementations.

Feature support matrix

Feature Python 2.7 Python 3 Implementation based on
HTTP binding :heavy_check_mark: :heavy_check_mark: tornadoweb/tornado
WebSockets binding :heavy_check_mark: :heavy_check_mark: tornadoweb/tornado
CoAP binding :heavy_multiplication_x: :heavy_check_mark: chrysn/aiocoap
MQTT binding :heavy_multiplication_x: :heavy_check_mark: beerfactory/hbmqtt
mDNS discovery :heavy_multiplication_x: :heavy_check_mark: jstasiak/python-zeroconf

Couroutine APIs

WoTPy is based on the Tornado Framework. Users therefore have two different API options to write code based on coroutines:

  • Users on Python 3 may use the native asyncio module. This is, in fact, the recommended approach. It should be noted that Tornado on Python 3 acts basically as a wrapper around asyncio.
  • Users on Python 2.7 are restricted to writing Tornado coroutines (asyncio is not available on Python 2.7).

Installation

pip install wotpy

Development

To install in development mode with all the test dependencies:

pip install -U -e .[tests]

To run the tests in all supported environments:

WOTPY_TESTS_MQTT_BROKER_URL=mqtt://broker-url tox

Docs

Move to the docs folder and run:

make html

If 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wotpy-0.15.1.tar.gz (97.1 kB view details)

Uploaded Source

Built Distribution

wotpy-0.15.1-py3-none-any.whl (151.7 kB view details)

Uploaded Python 3

File details

Details for the file wotpy-0.15.1.tar.gz.

File metadata

  • Download URL: wotpy-0.15.1.tar.gz
  • Upload date:
  • Size: 97.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.12

File hashes

Hashes for wotpy-0.15.1.tar.gz
Algorithm Hash digest
SHA256 8cc4b3d25ca5165e06d3b49ce2609582aaa2a1fb43b0ed84bb846cd7a6ce5752
MD5 f86a89a5e69db823f4157eb6e9a4b3bc
BLAKE2b-256 635a51617c9c2570531046b8f0c2bca405bf68505215380c22d3bd5f51754778

See more details on using hashes here.

File details

Details for the file wotpy-0.15.1-py3-none-any.whl.

File metadata

  • Download URL: wotpy-0.15.1-py3-none-any.whl
  • Upload date:
  • Size: 151.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.12

File hashes

Hashes for wotpy-0.15.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0dcffa97999afda914832bdee1d4360ab36207c952d81fb5dc1619fe8f35c3ff
MD5 a3feeafe129e9ff12d6df971d442b0dc
BLAKE2b-256 22ea3ff2ff2e28f7ffd3b339055507a72bee5eb42c74f492aa3b53e013231e3f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page