
    k7i                     .    S SK Jr   " S S5      rSS jrg)    )defaultdictc                   *    \ rS rSrSrS rS rS rSrg)Hookable   Nc                 ,    [        [        5      U l        g N)r   set_hooks)selfs    V/home/james-whalen/.local/lib/python3.13/site-packages/authlib/oauth2/rfc6749/hooks.py__init__Hookable.__init__   s    !#&    c                 @    U R                   U   R                  U5        g r   )r
   add)r   	hook_typehooks      r   register_hookHookable.register_hook
   s    I""4(r   c                 H    U R                   U    H  nU" U /UQ70 UD6  M     g r   r
   )r   r   argskwargsr   s        r   execute_hookHookable.execute_hook   s'    KK	*D''' +r   r   )	__name__
__module____qualname____firstlineno__r
   r   r   r   __static_attributes__ r   r   r   r      s    F')(r   r   Nc                 H   ^^ UU4S jn[        U 5      (       a  U" U 5      $ U$ )z4Execute hooks before and after the decorated method.c                 ~   >^ ^^ T=(       d    ST R                    3mT=(       d    ST R                    3mUUU 4S jnU$ )Nbefore_after_c                 p   > U R                   " T/UQ70 UD6  T" U /UQ70 UD6nU R                  TU5        U$ r   )r   )r   r   r   result
after_namebefore_namefuncs       r   wrapper*hooked.<locals>.decorator.<locals>.wrapper   sD    k;D;F;$000Fj&1Mr   )r   )r*   r+   r(   r)   afterbefores   ` @@r   	decoratorhooked.<locals>.decorator   s9    9'$-- 96t}}o6
	 r   )callable)r*   r.   r-   r/   s    `` r   hookedr2      s#    
 ~~r   )NNN)collectionsr   r   r2   r!   r   r   <module>r4      s    #( (r   