具有漂亮实时web用户界面的通用python自动化库

automate的Python项目详细描述


Travis CI StatusCoverage StatusDocumentation Statushttps://img.shields.io/pypi/v/automate.svghttps://img.shields.io/pypi/pyversions/automate.svghttps://img.shields.io/badge/licence-GPL-blue.svg

自动化

automate是一个通用的python自动化库。 其目标是提供方便和健壮的面向对象编程 复杂状态机系统的框架。自动化可用于设计 复杂的自动化系统,但它很容易学习和使用的乐趣。是的 最初是考虑到家庭机器人/自动化项目而开发的, 但在性质上是相当普遍的,可以从不同的应用程序中找到 可以利用自动化的领域。自动化可以嵌入 在其他python软件中作为组件运行其操作 它自己的线。

亮点:

  • 支持的硬件:
    • 覆盆子pi gpio输入/输出端口
    • Arduino support 用于模拟和数字输入/输出端口以及VirtualWire无线网络 用AutomateFirmata
    • 易于编写扩展以支持其他硬件
  • 通过序列化保存和还原系统状态
  • 智能设计:
    • 通过py.test单元/集成测试进行全面测试
    • 利用Traits库,特别是 通知系统。
    • IPython控制台,用于实时监视、修改和控制系统
    • 多功能函数/可调用库,用于编写状态程序逻辑
  • rpc和websocket接口,用于连接其他应用程序或其他自动化系统。
  • 全面且可定制 Web User Interface
  • 可以自动绘制系统的UML图(如示例所示 本文档的)

示例

让我们以一个小型自动化程序为例:

fromautomateimport*classMySystem(System):# HW swtich connected Raspberry Pi GPIO port 1hardware_switch=RpioSensor(port=1)# Switch that is controllable, for example, from WEB interfaceweb_switch=UserBoolSensor()# Lamp relay that switches lamp on/off, connected to GPIO port 2lamp=RpioActuator(port=2)# Program that controls the system behaviourprogram=Program(active_condition=Or('web_switch','hardware_switch'),on_activate=SetStatus('lamp',True))my_system=MySystem()

这个简单的例子有两个传感器hardware_switchweb_switch,执行器(lamp)和一个 包含做什么和什么时候做的逻辑。如果web_switchhardware_switch有 状态True

安装automatic

automate可以像普通python包一样安装。我建议安装 在虚拟环境中(请参见virtualenv)。

  1. (可选):创建并开始使用virtualenv:

    mkvirtualenv automate
    workon automate
    
  2. 从pypi安装:

    pip install automate
    

也可以指定一些附加功能,例如web、rpc、raspberrypi、arduino:

pip install automate[web,rpc,raspberrypi,arduino]

或者如果您想要全部:

pip install automate[all]

许可证

自动化是自由软件:您可以重新发布和/或修改它 根据由 自由软件基金会,或者许可证的第3版,或者 (由您选择)任何更高版本。

自动化是分布式的,希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU通用公共许可证了解更多详细信息。

你应该收到GNU通用公共许可证的副本 以及自动化。如果没有,请参阅http://www.gnu.org/licenses/

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

推荐PyPI第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文