来自industrial.io的contxt sdk

contxt-sdk的Python项目详细描述


contxt python软件开发工具包

wercker status

依赖关系

这个项目需要python 3.6+。

安装

要安装contxt-sdk,只需使用pip:

$ pip install contxt-sdk

只要您的活动python环境已经安装了该包,它还将通过contxt安装命令行界面(cli)。要查看支持的命令列表,请运行以下命令:

$ contxt -h

此外,还支持通过argcomplete完成命令行选项卡。要激活,请运行以下命令并刷新bash环境:

$ activate-global-python-argcomplete

贡献

请参考release guide

命令行界面

开始

为了访问任何contxt api,我们首先需要登录。为此,请运行以下命令:

$ contxt auth login

它将提示您输入用户名和密码,这与您用于contxt应用程序的登录名相同。

可用命令

验证

$ contxt auth -h
usage: contxt auth [-h] {login,logout} ...

optional arguments:
  -h, --help      show this help message and exit

subcommands:
  {login,logout}
    login         Login to contxt
    logout        Logout of contxt
物联网
$ contxt iot -h 
usage: contxt iot [-h] {groupings,feeds,fields,unprovisioned,field-data} ...

optional arguments:
  -h, --help            show this help message and exit

subcommands:
  {groupings,feeds,fields,unprovisioned,field-data}
    groupings           Get groupings
    feeds               Get feeds
    fields              Get fields
    unprovisioned       Unprovisioned fields
    field-data          Get field data

ems

$ contxt ems -h 
usage: contxt ems [-h]
                  {util-spend,util-usage,util-spend-metrics,util-usage-metrics}
                  ...

optional arguments:
  -h, --help            show this help message and exit

subcommands:
  {util-spend,util-usage,util-spend-metrics,util-usage-metrics}
    util-spend          Utility spend
    util-usage          Utility usage
    util-spend-metrics  Utility spend metrics
    util-usage-metrics  Utility usage metrics

资产

$ contxt assets -h 
usage: contxt assets [-h]
                     {facilities,types,assets,attr,attr-vals,metrics,metric-vals}
                     ...

optional arguments:
  -h, --help            show this help message and exit

subcommands:
  {facilities,types,assets,attr,attr-vals,metrics,metric-vals}
    facilities          Get facility assets
    types               Get asset types
    assets              Get assets
    attr                Get asset attributes
    attr-vals           Get asset attribute values
    metrics             Get asset metrics
    metric-vals         Get asset metric values

继续
$ contxt contxt -h
usage: contxt contxt [-h] {orgs,mk-org,users,add-user} ...

optional arguments:
  -h, --help            show this help message and exit

subcommands:
  {orgs,mk-org,users,add-user}
    orgs                Get organizations
    mk-org              Create organization
    users               Get users
    add-user            Add user to an organization

总线

$ contxt bus -h
usage: contxt bus [-h] {channels} ...

optional arguments:
  -h, --help  show this help message and exit

subcommands:
  {channels}
    channels  Get channels

工人

机器认证

由于cli接口只是sdk中不同功能的包装器,用户还可以利用这些 函数在它们自己的代码中。在contxt中,我们有一个机器用户的概念,它由一个唯一的 客户机ID/客户机密钥对(而不是像普通用户那样的用户/密码组合)。在编写代码时 最终将进入需要调用其他api(这显然很常见)的生产环境 将在contxt中自动获得唯一的客户机id/客户机密钥对。创建此服务时, 您也可以在本地开发环境中使用这些凭据。

基层工人阶级

为了简化开发,我们在sdk中提供了一个worker基类来抽象 身份验证过程的细微差别(如果您有兴趣,here是指向此过程文档的链接,在 如果你真的很无聊,想找些“轻松”的读物)。在这个sdk的根路径中,您将 请参阅“示例”目录,其中包含一些如何执行各种任务的示例。在“sample_worker.py”文件中, 您将看到一个关于如何实现baseworker类的非常简单的示例。

在这个示例工作程序文件中,您将只看到几行代码,以便开始使用。然而,这是至关重要的, 为客户机ID和客户机机密设置环境变量。我们在环境中提供这些 原因:

  • 你永远不想把你的客户机id/客户机密钥对放在你的代码中,以便提交到任何地方。这是一个 少校否,因为这些应视为与用户凭据相同
  • contxt将在部署到contxt环境(staging、prod等)时在环境中自动设置这些值。 因此,在开发过程中设置此设置将使其在部署时实现无缝连接

看看这个example,您可以看到我们正在实现BaseWorker类。在后面 在场景中,这个类正在做所有的工作,比如获取令牌、刷新令牌等等,所以您不必这样做。在 本例中,我们将调用contxt设施(资产)服务以获取可用设施的列表 给这个工人(机器用户)。为此,我们必须实例化facilities类并传入self.auth

接下来,在do_work方法中,它只是使 调用get_facilities。您可以遍历此列表,或将其打印到 控制台(就像我们在这里做的那样)。

从这里开始,您可以继续编写应用程序逻辑,以使用所有sdk执行所需的任何任务。 您可以使用的功能。

cli示例

导出物联网数据

您可以使用以下命令从IoT服务导出字段数据:

$ contxt iot field-data -h
usage: contxt iot field-data [-h] [-e END_DATE] [-p]
                             grouping_id start_date {0,60,900,3600}

例如:

$ contxt iot field-data "09d26434-7b5b-448f-911c-2deb5e9a78ce" "2019-02-01" 60

此命令将使用t的csv文件创建目录export_<grouping_slug>_<current_time>他将分组内和指定时间范围内的每个字段关联起来。还有一个meta.json文件,其中包含有关导出的特定信息,如行计数、字段id和单位。

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

推荐PyPI第三方库


热门话题
CentOS上的java Spring Boot简易应用程序需要很长时间才能启动   java如何检查字符串值是否等于null?   收集器中的java映射值。分组方式()   java需要支持Azure AD B2C webapp集成   java如何加入线程以停止它?   java如何使用意图传递类的对象?   java如何在战争环境中发现CDI生产者?   多模块项目中java奇怪的编译器行为   java如何在web应用程序中管理密码?   java从http服务器、filehandler中删除冗余代码   java使用反射来获取泛型类的字段   java Spring MVC/Hibernate/MySQL 400错误请求错误   给定正整数a的java幂为3   在Java中将元素拆分为不同数量的列表?   java展开折叠窗格