Virtual Object python implementation using a W3C WoT Runtime and the WoT Scripting API
Project description
VO-WoT
This repository is based on the Web of Things Python implementation WoTPy.
Introduction
This repository is a fork of the original WoTPy repository.
VO-WoT 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 Eclipse thingweb GitHub page.
Features
- Supports Python 3 with versions >= 3.8
- Fully-implemented
WoT
interface. - Asynchronous I/O programming model based on coroutines.
- Multiple client and server Protocol Binding implementations.
Feature support matrix
Feature | Python 3 | Implementation based on |
---|---|---|
HTTP binding | :heavy_check_mark: | tornadoweb/tornado |
WebSockets binding | :heavy_check_mark: | tornadoweb/tornado |
CoAP binding | :heavy_check_mark: | chrysn/aiocoap |
MQTT binding | :heavy_check_mark: | Yakifo/amqtt |
Installation
pip install vo-wot
Development
To install in development mode with all the test dependencies:
pip install -U -e .[tests,docs]
Some WoTPy features (e.g. CoAP binding) are not available outside of Linux. If you have Docker available in your system, and want to easily run the tests in a Linux environment (whether you're on macOS or Windows) you can use the Docker-based test script:
$ WOTPY_TESTS_MQTT_BROKER_URL=mqtt://192.168.1.141 ./pytest-docker-all.sh
...
+ docker run --rm -it -v /var/folders/zd/02pk7r3954s_t03lktjmvbdc0000gn/T/wotpy-547bed6bacf34ddc95b41eceb46553dd:/app -e WOTPY_TESTS_MQTT_BROKER_URL=mqtt://192.168.1.141 python:3.9 /bin/bash -c 'cd /app && pip install -U .[tests] && pytest -v --disable-warnings'
...
Python 3.8 :: OK
Python 3.9 :: OK
Python 3.10 :: OK
Python 3.11 :: OK
WOTPY_TESTS_MQTT_BROKER_URL
defines the url of the MQTT broker. It will listen to port 1883
by default. If your broker is set up in a different way, you can provide the port in the url as well.
WOTPY_TESTS_ZENOH_ROUTER_URL
defines the url of the Zenoh router. An example router url value is tcp/192.168.1.1:7447
assuming the router is bound on the interface with the IP 192.168.1.1
and listens to port 7447
. Check the Zenoh router's output (zenohd
command) for more info.
You can also test only for a specific Python version with the PYTHON_TAG
variable and the pytest-docker.sh
script like this:
$ WOTPY_TESTS_MQTT_BROKER_URL=mqtt://192.168.1.141 PYTHON_TAG=3.8 ./pytest-docker.sh
Development in VSCode with devcontainers
We have also provided a convenient devcontainer
configuration to better recreate your local development environment. VSCode should detect it if you have the Remote - Containers extension installed.
Docs
The documentation is currently hosted here.
Alternatively to build the documentation, move to the docs
folder and run:
make html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file vo_wot-0.18.11.tar.gz
.
File metadata
- Download URL: vo_wot-0.18.11.tar.gz
- Upload date:
- Size: 99.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aad57f7019e2b6f8f5a76a9bc30706f5c2c287f3c3951736211f89077edc0952 |
|
MD5 | 54937a597ee41a69172fdf53cff9288f |
|
BLAKE2b-256 | 2a7c126b89ab13ee76aa0964c0b4634655e1dae77b2b376ccfbc5884ebcddb54 |
File details
Details for the file vo_wot-0.18.11-py3-none-any.whl
.
File metadata
- Download URL: vo_wot-0.18.11-py3-none-any.whl
- Upload date:
- Size: 146.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fb64a32b6714744a8da05d4bb7e5d247fdcfc3f23ba8d7126d9cb408cd5f82f |
|
MD5 | 9ce2923f5338802ff89990b91b2701e2 |
|
BLAKE2b-256 | 4599cc0a237bf5e06d6d37d7b688b516dd0d9a462897e751216f47462e0dee0a |