python事件钩子
项目描述
panglery是一个用于编写python事件钩子的库。
以下是一个基本的使用示例
import panglery p = panglery.Pangler() @p.subscribe(event='example', needs=['spam']) def example_hook(p, spam): print spam p.trigger(event='example', spam='eggs') # prints 'eggs'
以及一个稍微复杂一点的示例
@p.subscribe(needs=['spam'], returns=['spam']) def modify_spam_hook(p, spam): spam = spam + ' spam' return {'spam': spam} p.trigger(event='example', spam='eggs') # prints 'eggs spam'
钩子还可以向事件添加参数,从而触发其他钩子
p = panglery.Pangler() @p.subscribe(needs=['spam'], returns=['eggs']) def make_eggs_hook(p, spam): eggs = spam + ' eggs' return {'eggs': eggs} @p.subscribe(event='example', needs=['eggs']): def eggs_hook(p, eggs): print eggs p.trigger(event='example', spam='eggs') # prints 'eggs eggs'
PanglerAggregates可用于聚合所有超类中的多个Pangler
class ExampleBase(object): p = panglery.PanglerAggregate('hooks') hooks = panglery.Pangler() @hooks.subscribe(event='example') def example_hook_base(self, p): print 'spam' class ExampleDerived(ExampleBase): hooks = panglery.Pangler() @hooks.subscribe(event='example') def example_hook_derived(self, p): print 'eggs' inst = ExampleDerived() inst.p().trigger(event='example') # prints 'spam' and 'eggs' in some order.
项目详情
关闭
panglery-1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e68820c865338a592246e67a09c46336977c7cf579d70d06f754ea7947e7e0db |
|
MD5 | 693ba191372ecacb82e7bfa971e2bfa6 |
|
BLAKE2b-256 | 9b6f62e6c9881d271d8e9201fa16aa374aff6cf5886bcec06e9c5ab3870828c9 |