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 Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段