未知
项目描述
Eventlite
为Python函数提供轻量级的“事件”。
摘要
该库的目的是为函数提供一种“抽象”的方式来“报告”事件,其方式类似于日志系统的操作。
一些示例应用
日志系统: 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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 438aebdc5833a8e90c69f95f346b46ee700d847a2e69d28f00f7f2825b08e417 |
|
MD5 | 3507a21dba8c601cc083699410fc71b3 |
|
BLAKE2b-256 | 96c89ffe696b11a07cbc6b466499dabd19b36d90813ef250fe56c6055eae157e |