用于处理异步事件的工具。

eventemitter的Python项目详细描述


用于发布和侦听事件的工具。

示例用法

事件发射器

eventEmitter类可以直接使用或作为mix-in来提供 能够发布和订阅事件。

importloggingfromeventemitterimportEventEmitterlog=logging.getLogger(__name__)emitter=EventEmitter()deflog_event(event,*args,**kwargs):log.debug('%s%s%s',event,args,kwargs)emitter.on('an-event',log_event)emitter.emit('an-event',1,2,keyword=3)awaitasyncio.sleep(0)# 'an-even (1, 2), {keyword: 3}' gets logged.

侦听器函数可以使用defasync def定义。所有的听众 以延迟的方式执行。调用emit的coro必须为事件屈服 传播。

不可预测

如果侦听事件的回调样式模型不可取,则 iterable提供了处理事件的第二个模型。

importloggingfromeventemitterimportEventEmitterfromeventemitterimportEventIterablelog=logging.getLogger(__name__)emitter=EventEmitter()iterable=EventIterable(emitter,'an-event')asyncforargs,kwargsiniterable:log.debug('%s%s%s',event,args,kwargs)

eventiterable实现了异步iterable接口,可用于 与任何工具结合 aitertools

测试

所有测试套件都与它们测试和运行的模块一一配对 直接与同一模块相邻。所有的测试都有望通过 Python3.5及以上版本。要运行测试,请使用包含tox.ini文件的tox或 创建一个virtualenv并安装“[测试]”附加程序。

许可证

Copyright 2015 Kevin Conway

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

贡献

首先,如果你正在修补,那么谢谢你!以下是一些建议 合并修补程序:

风格

只要代码通过pep8和pyflakes门,那么样式就是 可以接受。

文件

pep257门将检查所有公共方法是否都有docstring。如果你是 添加一些新的东西,比如helper函数,试试 napoleon style of docstrings

测试

确保修补程序通过所有测试。如果要添加新功能,请不要 忘了投一两个测试。如果你正在修复一个bug,那么一定要添加 至少进行一次测试以防止回归。

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

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件