Python的事件驱动中间件库
项目描述
.. 图像:: https://travis-ci.org/CloudVE/pyeventsystem.svg?branch=master :target: https://travis-ci.org/CloudVE/pyeventsystem :alt: 构建状态
.. 图像:: https://codecov.io/gh/CloudVE/pyeventsystem/branch/master/graph/badge.svg :target: https://codecov.io/gh/CloudVE/pyeventsystem :alt: 覆盖状态
pyeventsystem
pyeventsystem 是一个用于 Python 的事件驱动中间件库。除了提供订阅和监听事件的机制外,它还提供拦截函数的机制,这使得它非常适合编写中间件。通过拦截函数,中间件可以在原始函数之前、之后甚至替换原始函数。它还提供了将相关事件处理器分组到中间件类中的功能,这使得管理可安装的中间件变得更加容易。
简单示例
.. code-block:: 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
函数,并在执行前后观察了该函数。
输出如下
.. code-block:: console
Prepping for villainy: RoadRunner
Result of villainy: Drop ACME Anvil on RoadRunner
项目详情
关闭
pyeventsystem-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4a3d199759a040d2cd17f8b4293cc1c3f3c2ae50ae531fb5f9f955a895fca8b9 |
|
MD5 | 66d5a1c1f8fa897ce5e58612d6bc195b |
|
BLAKE2b-256 | b51ef7499ca118bd5186072fffc3922ae58abe501c4633b1d6da25e30b16b841 |
关闭
pyeventsystem-0.1.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a651eca3ec0b7e8600e2d4f042ab519b2d3bf74969e783b7a51fb87c506a7a6 |
|
MD5 | 0d7facdc929343147da4eafc647afc8e |
|
BLAKE2b-256 | e5d399dac9569f8e90c21889a6d91d187404eb831ceef4638c98c3ff8915ae44 |