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

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 JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组