
    !<i                     4    d dl mZ  G d d          ZddZdS )    )defaultdictc                   $    e Zd ZdZd Zd Zd ZdS )HookableNc                 8    t          t                    | _        d S N)r   set_hooks)selfs    /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/authlib/oauth2/rfc6749/hooks.py__init__zHookable.__init__   s    !#&&    c                 F    | j         |                             |           d S r   )r	   add)r
   	hook_typehooks      r   register_hookzHookable.register_hook
   s#    I""4(((((r   c                 >    | j         |         D ]} || g|R i | d S r   )r	   )r
   r   argskwargsr   s        r   execute_hookzHookable.execute_hook   sE    K	* 	( 	(DD''''''''	( 	(r   )__name__
__module____qualname__r	   r   r   r    r   r   r   r      sF        F' ' ') ) )( ( ( ( (r   r   Nc                 J    fd}t          |           r ||           S |S )z4Execute hooks before and after the decorated method.c                 L     p	d j          p	d j           fd}|S )Nbefore_after_c                 n     | j         g|R i |  | g|R i |}|                      |           |S r   )r   )r
   r   r   result
after_namebefore_namefuncs       r   wrapperz*hooked.<locals>.decorator.<locals>.wrapper   s`    Dk;D;;;F;;;T$000000Fj&111Mr   )r   )r#   r$   r!   r"   afterbefores   ` @@r   	decoratorzhooked.<locals>.decorator   sZ    9 9$- 9 966t}66
	 	 	 	 	 	 	 r   )callable)r#   r&   r%   r'   s    `` r   hookedr)      sF    
 
 
 
 
 
 ~~ yr   )NNN)collectionsr   r   r)   r   r   r   <module>r+      s]    # # # # # #( ( ( ( ( ( ( (     r   