向跛行时间发送通知的包。

lmnotif的Python项目详细描述


lmnotify是用于向发送通知的包 LaMetric Time。为了达到这个目的 封装发送到lametric设备的rest api调用。

模块安装

安装lmnotify模块的最简单方法是通过pip

pip install lmnotify

或者克隆/下载此存储库并安装:

python3 setup.py install

python setup.py install

基本设置

跛行时间只能由授权应用程序访问。因此, 要访问设备的每个应用程序都需要注册 在LaMetric Developer网页上。

创建自定义应用程序

注册lmnotifypython模块需要以下步骤 作为新的跛行应用在他们的网页上:

  1. 注册并登录开发人员网页https://developer.lametric.com
  2. 单击右上角的create按钮,然后选择 通知应用程序,然后再次单击创建
  3. 输入应用程序名称、说明和重定向URL
  4. 最后,单击save创建应用程序。

对于新创建的应用程序,您将获得凭据,即client id 以及客户端机密。要设置 python模块。

背景

但是,lmnotifypython模块必须注册到lametric 云,从长远来看,与云的交互非常有限 必要的。云相关restful api的主要功能是处理用户 存储在云中的信息以及注册的跛行装置。 特别是,后者是非常重要的,因为设备列表 包含可用于与 本地网络中没有连接到云的设备。

因此,模块的默认配置将接收 当get_devices和store第一次调用时,来自云端的跛行设备 它们在~/.lmdevices文件中。所有get_devices的进一步调用都将 只需读取此文件并返回设备,而不必与 跛行云。

模块的配置

有三种不同的方式向 模块:按构造函数、环境变量或配置文件。

一。by构造函数:只需在 LaMetricManager类的构造函数,例如:

CLIENT_ID = "<my_client_id>"
CLIENT_SECRET = "<my_client_secret>"

lmn = LaMetricManager(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

2.by环境变量:只需设置LAMETRIC_CLIENT_IDLAMETRIC_CLIENT_SECRET环境变量,例如在bash中:

export LAMETRIC_CLIENT_ID="<my_client_id>"
export LAMETRIC_CLIENT_SECRET="<my_client_secret>"

当不在构造函数中提供client_idclient_secret时, 将改为使用环境变量。

三。按配置文件:默认配置文件设置为~/.lmconfig。什么时候? 初始化不带参数的LaMetricManager类配置文件 将被加载,如果它已经存在。否则您可以设置 auto_create_config构造函数中的参数设置为true,以创建空的 配置文件。只需在配置文件中填写您的凭据:

[lametric]
client_id = <put the client id here>
client_secret = <put the client secret here>

在下一次启动时,将自动读取配置文件 client_idclient_secret在构造函数或 LAMETRIC_CLIENT_IDLAMETRIC_CLIENT_SECRET环境变量 准备好了。

如上文背景部分所述,在获得设备之后 从跛行云一次,所有进一步的相互作用可以在本地完成 与跛行云没有任何相互作用。

示例

举个简单的例子,我们用一个图标向 跛行时间。假设您已经提供了应用程序凭据 使用环境变量或配置文件,以便没有参数 在lametricmanager的构造函数中设置。

from lmnotify import LaMetricManager, Model, SimpleFrame

# create an instance of the LaMetricManager
lmn = LaMetricManager()

# get devices
devices = lmn.get_devices()

# use first device to do some tests
lmn.set_device(devices[0])

# prepare a simple frame with an icon and some text
sf = SimpleFrame("i210", "Hello World!")

# prepare the model that will be send as notification
model = Model(frames=[sf])

# send the notification the device
lmn.send_notification(model)

更多示例见https://github.com/keans/lmnotify/tree/master/examples

开发

如果你想参与开发,请查看源代码 在https://github.com/keans/lmnotify.git

开始开发:

git clone git@github.com:keans/lmnotify.git
cd lmnotify/
virtualenv env
source env/bin/activate
pip install -r requirements.txt

对于详细调试输出,只需将日志记录级别设置为debug:

import logging
logging.basicConfig(level=logging.DEBUG)

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

推荐PyPI第三方库


热门话题
爪哇太阳报。安全验证器。ValidatorException:PKIX路径生成失败   java理解为什么在onDispatchTouchEvent()返回True后仍调用onClick()   java如何在资源包中使用JSF标记/如何在资源包中重写URL?   java什么是流控制异常的替代方案?   java使用Spring数据JPA/MongoDB交叉存储,一个查询可以跨越两个数据库吗?   Apache Sling/felix中的java OSGi slf4j日志记录   为什么当我们想要水平/垂直旋转矩阵时,我们要把这个项除以2?   尝试从外部网页接收JSON字符串时出现安卓 Java NullPointerException   java执行异常:从Callable调用方法时   java在jetty上以调试模式运行webapp,使用maven jetty插件在intellij中构建成功(应用程序应在调试模式下启动)   带有内存数据库的linux Java应用程序的构建时间太长   基于java的随机数单元测试算法   java类型javax。摆动JComponent无法解析   Google日历API和UI小部件Java   java tomcat没有突然和任意地响应   java无法使用jsoup在html中获取图像src   我无法让Java接受键盘输入字符串   java如何开始使用Bambol而不让部署永远继续?   java如何使用另一个类的actionPerformed方法删除一个类/组件中的按钮?   java JSON反序列化brakets{}中的一系列对象