python的事件驱动中间件库

pyeventsystem的Python项目详细描述


图片:https://travis-ci.org/CloudVE/pyeventsystem.svg?branch=master :目标:https://travis-ci.org/CloudVE/pyeventsystem :alt:生成状态

。图片:https://codecov.io/gh/CloudVE/pyeventsystem/branch/master/graph/badge.svg :目标:https://codecov.io/gh/CloudVE/pyeventsystem :alt:覆盖状态

PyEventSystem

pyeventsystem是Python的事件驱动中间件库除了 它还提供了订阅和侦听事件的机制 一种截取函数的机制,因此适合于编写 中间件通过拦截功能,可以在之前、之后注入中间件 甚至取代原来的功能。它还为 将相关的事件处理程序分组到中间件类中,使 管理可安装的中间件

简单的例子

。代码块::python

from pyeventsystem.middleware import SimpleMiddlewareManager
from pyeventsystem.middleware import dispatch
from pyeventsystem.middleware import observe


class MyMiddleWare(object):

    def __init__(self, event_dispatcher):
        self.events = event_dispatcher

    @dispatch("a.series.of.unfortunate.events", priority=2500)
    def perform_villainy(self, name):
        return "Drop ACME Anvil on " + name

    @observe("a.series.of.unfortunate.events", priority=2400)
    def pre_log_villainy(self, event_args, name):
        print("Prepping for villainy: " + name)

    @observe("*.unfortunate.events", priority=2600)
    def post_log_villainy(self, event_args, name):
        print("Result of villainy: {0}".format(event_args['result']))


manager = SimpleMiddlewareManager()
myobj = MyMiddleWare(manager.events)
manager.add(myobj)
myobj.perform_villainy("RoadRunner")

在这个例子中,我们截取了perform_villainy函数,并且 在执行之前和之后都观察了函数。

输出为:

代码块::控制台

Prepping for villainy: RoadRunner
Result of villainy: Drop ACME Anvil on RoadRunner

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

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序