w3c wot运行时和wot脚本api的python实现

wotp的Python项目详细描述


工作日

Build StatusCoverage Status

简介

wotpy是python中W3C WoT RuntimeW3C WoT Scripting API的实验性实现。

灵感来自于位于thingweb GitHub page中的探索性实现。

功能

  • 支持Python2.7、3.6和3.7。
  • 完全实现了WoT接口。
  • 基于mdns的多播发现。
  • 基于协程的异步i/o编程模型。
  • 多个客户机和服务器Protocol Binding实现。

特征支持矩阵

FeaturePython 2.7Python 3Implementation 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 API

wotpy基于Tornado Framework。因此,用户有两个不同的api选项可以基于协同路由编写代码:

  • python 3上的用户可以使用本机asyncio模块。实际上,这是建议的方法。应该注意的是,python 3上的tornado基本上是围绕asyncio运行的。
  • 位于python 2.7上的用户仅限于编写Tornado coroutinesasyncio在python 2.7上不可用)。

待办事项

  • 将缺少的部分添加到文档并部署到公共站点上。
  • 订阅对象描述更改。
  • 数据架构的验证。
  • 使操作处理程序返回可观察值。
  • 更新协议绑定以接受事件订阅和取消数据。

安装

pip install wotpy

发展

要在开发模式下安装所有测试依赖项:

pip install -U -e .[tests]

要在所有支持的环境中运行测试:

WOTPY_TESTS_MQTT_BROKER_URL=mqtt://broker-url tox

文档

移到docs文件夹并运行:

make html

如果您试图在非Linux平台或使用Python2.7构建文档,_autosummary将抱怨无法导入不受支持的模块(例如Python2.7上的MQTT)。在这种情况下,文档将丢失有关不支持功能的部分。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java jstl c:set无法处理jsp文件中的js代码   春季mvc你好!Junit平台v.5.8.1 java出现错误。lang.NoSuchMethodError:org。朱尼特。站台平民util。注释。芬丹符号   java如何结合PowerMock和Robolectric   java打印从列表返回最大值   java正则表达式,用于拆分遵循ABNF格式的字符串   在Java 1.4中,如何在不迭代的情况下将结果集的值插入hashmap?   io Java:带状态的ASCII随机行文件访问   首次尝试在Eclipse之外运行java程序   为什么在Java8Lambda中使用“Collectors.toList()”而不是“Collectors::toList”?   Java为多个值中的一个调用非类方法   charat如何在小于和大于之间查找文本,然后在Java中剥离<>?   从milis创建日期时java不一致   使用Java将字符串与CMD输出进行比较   java Android应用程序可以在调试中工作,但不能发布   java notifyAll()不工作,如何在socket编程中通知所有线程   为什么java没有呢。整数扩展java。朗,朗?   二进制文件上的socketJava http请求无法读取正确的内容长度   java有可能获得100条以上的推文吗?   javaoracle与JDBC的连接