
    ci                     p    d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ  G d d      Z G d d	      Zy)
    )LazyDict)abstractmethod)DictAnyOptional)defaultdictNc                       e Zd ZU dZeed<   edededede	eef   dedd	fd
       Z
ededd	fd       Zededd	fd       Zedd       Zedd       Zy	)Hookr   prioritymodulefunctionnamemetadata_grouphashreturnNc                     t         NNotImplementedError)selfr   r   r   r   r   s         T/var/www/html/engine/venv/lib/python3.12/site-packages/triton/profiler/hooks/hook.pyinit_handlezHook.init_handle   s
     "!    metadatac                     t         r   r   r   r   s     r   enterz
Hook.enter       !!r   c                     t         r   r   r   s     r   exitz	Hook.exit   r   r   c                     t         r   r   r   s    r   activatezHook.activate   r   r   c                     t         r   r   r"   s    r   
deactivatezHook.deactivate   r   r   )r   N)__name__
__module____qualname__r   int__annotations__r   r   strr   r   r   r   r    r#   r%    r   r   r
   r
      s    Hc"# " "C "QUVY[^V^Q_ """&" " "h "4 " " "X "$ " " " " " "r   r
   c                   >   e Zd ZU g Zee   ed<    ed       Ze	e
e	eef   f   ed<   edededede	eef   ded	d
fd       Zeded	d
fd       Zeded	d
fd       Zeddee
   d	d
fd       Zeddee
   d	d
fd       Zedede
d	d
fd       Zeddee
   d	d
fd       Zy
)HookManageractive_hooksc                       t        t              S r   )r   boolr,   r   r   <lambda>zHookManager.<lambda>%   s    [QUEV r   session_hooksr   r   r   r   r   r   Nc                 X    t         j                  D ]  }|j                  | ||||        y r   )r.   r/   r   )r   r   r   r   r   hooks         r   r   zHookManager.init_handle'   s/    ,, 	KDVXt^TJ	Kr   r   c                 P    t         j                  D ]  }|j                  |         y r   )r.   r/   r   r   r5   s     r   r   zHookManager.enter,   s#    ,, 	!DJJx 	!r   c                 b    t        t        j                        D ]  }|j                  |         y r   )reversedr.   r/   r    r7   s     r   r    zHookManager.exit1   s*     [556 	 DIIh	 r   sessionc                 |   | t         j                  j                         }n| g}|D ]q  } t         j                  |    D ]Y  }|t         j                  vr/|j	                          t         j                  j                  |       dt         j                  |    |<   [ s t         j                  j                  d d       y )NTc                     | j                   S r   r   xs    r   r2   z&HookManager.activate.<locals>.<lambda>E   
    AJJ r   keyreverse)r.   r3   keysr/   r#   appendsort)r:   sessionsr5   s      r   r#   zHookManager.activate7   s    ?"00557HyH 	@G#11': @{777MMO,,33D9;?))'248	@	@ 	  %%*>%Mr   c                    | t         j                  j                         }n| g}t               }|D ]S  } t         j                  |    D ];  t         j                  v r|j                         dt         j                  |    <   = U |D ]b  t        fdt         j                  j                         D              r4j                          t         j                  j                         d y )NFc              3   (   K   | ]	  }|     y wr   r,   .0r3   r5   s     r   	<genexpr>z)HookManager.deactivate.<locals>.<genexpr>W   s     c}}T*c   )
r.   r3   rD   setr/   addanyvaluesr%   remove)r:   rG   deactivated_hooksr5   s      @r   r%   zHookManager.deactivateG   s    ?"00557HyHE 	AG#11': A;333%))$/;@))'248A	A & 	6Dc@Y@Y@`@`@bcc!((//5	6r   r5   c                 @   dt         j                  |   | <   | t         j                  vr/| j                          t         j                  j	                  |        t         j                  j                  d d       t        j                  j                  j                  t         j                         t        j                  j                  j                  t         j                         t        j                  j                  j                  t         j                         y )NTc                     | j                   S r   r=   r>   s    r   r2   z&HookManager.register.<locals>.<lambda>b   r@   r   rA   )r.   r3   r/   r#   rE   rF   knobsruntimekernel_load_end_hookrO   r   launch_enter_hookr   launch_exit_hookr    )r5   r:   s     r   registerzHookManager.register[   s    37!!'*40{///MMO$$++D1  %%*>%M 	**..{/F/FG''++K,=,=>&&**;+;+;<r   c                    | | t         j                  vry | bt         j                  D ]  j                           t         j                  j	                          t         j                  j	                          nt         j                  j                  |       }|j                         D ]h  \  }|s	t        fdt         j                  j                         D              r:j                          t         j                  j                         j t         j                  st        j                  j                  j                  t         j                         t        j                  j                  j                  t         j                         t        j                  j                   j                  t         j"                         y y )Nc              3   (   K   | ]	  }|     y wr   r,   rJ   s     r   rL   z)HookManager.unregister.<locals>.<genexpr>y   s     g==.grM   )r.   r3   r/   r%   clearpopitemsrP   rQ   rR   rV   rW   rX   r   rY   r   rZ   r    )r:   popped_hooksactiver5   s      @r   
unregisterzHookManager.unregisteri   s>   7+2K2K#K?#00 "!"$$**,%%++-&4488AL , 2 2 4 :fgKD]D]DdDdDfggOO%,,33D9: ''MM..55k6M6MNMM++22;3D3DEMM**11+2B2BC (r   r   )r&   r'   r(   r/   listr
   r*   r   r3   r   r)   r1   staticmethodr   r+   r   r   r   r    r   r#   r%   r[   rc   r,   r   r   r.   r.   !   sk   !L$t*!1<=V1WM4T$*--.WKC K3 Kc K4PSUXPX> Kad Kim K K ! !T ! !  x  D    
 N(3- N4 N N 6HSM 6T 6 6& =t =c =d = = DHSM DT D Dr   r.   )triton.compilerr   abcr   typingr   r   r   collectionsr   triton.knobsrV   r
   r.   r,   r   r   <module>rk      s/    $  & & # " "2_D _Dr   