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

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 Android Action_Edit Intent无法像以前一样调用App Gallery来编辑图片   确保JRE兼容性的java适当程序(32或64位)   java JSONArray。for循环中的add(JSONObject)正在替换for循环中的旧值,数组由循环中的最后一个值组成   java需要帮助创建一个返回数组的方法,该数组的元素是另一个数组的平方   使用SmbFile w/groovy XmlSluper()创建xml。解析()Java   检查大小后的java ArrayIndexOutOfBoundsException   乘法表中的第k个最小元素   java 401 on请求,其中指定了'permitAll()'   java如何附加ORC文件   java hibernate类模型   java IDEA没有看到由自定义注释处理器生成的方法   Servlet中未声明java SerialVersionId   java linkedlist到达列表末尾时   java如何正确对齐EditText光标?   java 6编译器1.6上的eclipse重写方法错误   java如何在基于Jersey的RESTful Web服务中读取post数据   java如何在活动中正确使用接口?   Java的JIT编译器的工作速度有多快?