ó
„DìPc           @   sN   d  Z  d e f d „  ƒ  YZ e Z y d d l m Z Wn e k
 rI n Xd S(   s   Hookable object support
t   _py_hookablec           B   sP   e  Z d Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z	 RS(	   t	   _originalt   _implementationc         O   s   t  | ƒ d k r3 d | k r3 | j d ƒ f } n  | rH t d ƒ ‚ n  t  | ƒ d k ri t d ƒ ‚ n  | d |  _ |  _ d  S(   Ni    t   implementations   Unknown keyword argumentsi   s   Exactly one argument required(   t   lent   popt	   TypeErrorR   R   (   t   selft   argst   kw(    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   __init__   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   <lambda>   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyR      s    c         C   s   |  j  | } |  _  | S(   N(   R   (   R   t   new_callablet   old(    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   sethook    s    c         C   s   |  j  |  _ d  S(   N(   R   R   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   reset$   s    c         O   s   |  j  | | Ž  S(   N(   R   (   R   R   R	   (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   __call__'   s    (   s	   _originals   _implementation(
   t   __name__t
   __module__t	   __slots__R
   t   propertyt   originalR   R   R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyR       s   				i   (   t   hookableN(   t   __doc__t   objectR    R   t   _zope_hookablet   ImportError(    (    (    s:   /usr/lib/python2.7/dist-packages/zope/hookable/__init__.pyt   <module>   s   