跳转到主要内容

未知

项目描述

Eventlite

为Python函数提供轻量级的“事件”。

Latest PyPI version Number of PyPI downloads Supported Python versions Development Status License

摘要

该库的目的是为函数提供一种“抽象”的方式来“报告”事件,其方式类似于日志系统的操作。

一些示例应用

  • 日志系统: emit('log', '我的消息', level='info')

  • 报告某些运行操作的进度 emit('progress', current=20, total=100)

请注意,事件结构没有被任何方式强制;实际上,可以组合任意数量的参数/关键字,只要处理器函数能够处理它。

示例用法

import eventlite

def myfunction(foo):
    eventlite.emit(foo)

def handler(foo):
    print('You said: {0}'.format('Hello'))

with eventlite.handler(handler):
    myfunction('Hello')

API文档

该库提供了两个函数

  • eventlite.emit(*a, **kw) “发射”一个“事件”(由任意数量的参数/关键字表示)。

  • eventlite.handler(function) 返回一个上下文管理器,使得在上下文活动期间,事件被调度到某个函数。

因此,在上面的示例中,当调用 eventlite.emit() 时传递一个参数,handler() 将被调用并将单个参数传递给它。

内部实现

所有魔法都是使用一个 LocalStack (从werkzeug借用) 实现的,它为本地代理保持一个要调用的处理器堆栈。函数 emit() 简单地在一个堆栈中查找一个处理器来调度事件。

注意: 默认情况下,只有最内层的上下文管理器的处理器会被调用;这可能或可能不是期望的行为;将来将添加一些方法来改变这种行为。

历史

v0.1a

  • 初始版本,通过上下文管理器处理简单事件,并将事件分发到线程局部栈中的“上下文”。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

eventlite-0.1.1.tar.gz (7.2 kB 查看哈希值)

上传时间

支持