MINI MINI MANI MO
σ
ΎΓ9Qc @ sq d Z d d g Z d e f d YZ d e f d YZ d e f d YZ d e e f d YZ d S(
s[ This module contains variants of certain base types which call registered
hooks on changes.t Hookablet HookableSett HookableTypec B s e Z d Z e d Z RS( c C s½ | j d r§ y | d } WnY t k
rx d } xC t d | D]+ } | rk t d t | qF | } qF Wn Xx+ | d D] } t j | | | | <q Wn t j | | | | S( Nt _hookable_change_methodst _hookable_base_classc S s
| t k S( N( R ( t x( ( s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyt <lambda>$ s s too many base classes: %s(
t has_keyt KeyErrort Nonet filtert TypeErrort strR t wrap_methodt typet __new__( t clst namet basest dctt baset base_candidatet
methodname( ( s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyR s
c s+ t | | f d } | | _ | S( Nc s | | | } | j | S( N( t
_run_hooks( t selft pt kt retval( t func( s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyt
methodwrapper4 s
( t getattrt func_name( R R R R ( ( R s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyR
0 s ( t __name__t
__module__R t classmethodR
( ( ( s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyR s t
_HookEntryc B s, e Z d Z d Z d Z d Z RS( c C s | | _ | | _ | | _ d S( N( t _HookEntry__hookt _HookEntry__argst _HookEntry__kwargs( R t hookt argst kwargs( ( s6 /usr/lib/python2.7/site-packages/slip/util/hookable.pyt __init__? s c C s4 | j | j k o3 | j | j k o3 | j | j k S( N( R$ R% R&