U
    ,ò¿W$  ã                   @   s   d Z G dd„ deƒZdS )zG This module supplies a pure-Python version of zope.hookable.hookable.
c                   @   sH   e Zd ZdZedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Z	dd„ Z
dS )Úhookable)Z
__originalZ__implementationc                 C   s   | j S ©N)Ú_hookable__original©Úself© r   ú9/usr/lib/python3/dist-packages/zope/component/hookable.pyÚ<lambda>   ó    zhookable.<lambda>c                 C   s   | j S r   ©Ú_hookable__implementationr   r   r   r   r      r	   c                 C   s   | | _ | _d S r   ©r   r   )r   Úimplementationr   r   r   Ú__init__   s    zhookable.__init__c                 C   s   | j | }| _ |S r   r
   )r   ZnewimplementationÚoldr   r   r   Úsethook   s    zhookable.sethookc                 C   s   | j | _d S r   r   r   r   r   r   Úreset   s    zhookable.resetc                 O   s   | j ||ŽS r   r
   )r   ÚargsÚkwr   r   r   Ú__call__    s    zhookable.__call__N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__ÚpropertyZoriginalr   r   r   r   r   r   r   r   r   r      s   r   N)Ú__doc__Úobjectr   r   r   r   r   Ú<module>   s   