
    Pi                     ~    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dS )
    )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d	S )Hookr   prioritymodulefunctionnamemetadata_grouphashreturnNc                     t           NNotImplementedError)selfr   r   r   r   r   s         r/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/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d
S )HookManageractive_hooksc                  *    t          t                    S r   )r   boolr,   r   r   <lambda>zHookManager.<lambda>%   s    [QUEVEV r   session_hooksr   r   r   r   r   r   Nc                 V    t           j        D ]}|                    | ||||           d S r   )r.   r/   r   )r   r   r   r   r   hooks         r   r   zHookManager.init_handle'   sA    , 	K 	KDVXt^TJJJJ	K 	Kr   r   c                 N    t           j        D ]}|                    |            d S r   )r.   r/   r   r   r5   s     r   r   zHookManager.enter,   s3    , 	! 	!DJJx    	! 	!r   c                 h    t          t          j                  D ]}|                    |            d S r   )reversedr.   r/   r    r7   s     r   r    zHookManager.exit1   s=     [566 	  	 DIIh	  	 r   sessionc                 r   | t           j                                        }n| g}|D ]m} t           j        |          D ]X}|t           j        vr3|                                 t           j                            |           dt           j        |          |<   Ynt           j                            d d           d S )NTc                     | j         S r   r   xs    r   r2   z&HookManager.activate.<locals>.<lambda>E       AJ r   keyreverse)r.   r3   keysr/   r#   appendsort)r:   sessionsr5   s      r   r#   zHookManager.activate7   s    ?"05577HHyH 	@ 	@G#1': @ @{777MMOOO,33D999;?)'2488	@ 	 %%*>*>%MMMMMr   c                    | t           j                                        }n| g}t                      }|D ]O} t           j        |          D ]:t           j        v r|                               dt           j        |          <   ;P|D ]lt          fdt           j                                        D                       s3                                 t           j        	                               md S )NFc              3   (   K   | ]}|         V  d S r   r,   .0r3   r5   s     r   	<genexpr>z)HookManager.deactivate.<locals>.<genexpr>W   s(      cc}}T*ccccccr   )
r.   r3   rD   setr/   addanyvaluesr%   remove)r:   rG   deactivated_hooksr5   s      @r   r%   zHookManager.deactivateG   s   ?"05577HHyHEE 	A 	AG#1': A A;333%))$///;@)'2488A & 	6 	6Dcccc@Y@`@`@b@bccccc 6!!!(//555	6 	6r   r5   c                 
   dt           j        |         | <   | t           j        vr3|                                  t           j                            |            t           j                            d d           t          j        j        	                    t           j
                   t          j        j        	                    t           j                   t          j        j        	                    t           j                   d S )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_hookrN   r   launch_enter_hookr   launch_exit_hookr    )r5   r:   s     r   registerzHookManager.register[   s    37!'*40{///MMOOO$++D111 %%*>*>%MMM 	*..{/FGGG'++K,=>>>&**;+;<<<<<r   c                 l   | | t           j        vrd S | `t           j        D ]                                 t           j                                         t           j                                         nt           j                            |           }|                                D ]r\  }|st          fdt           j                                        D                       s3                                 t           j        	                               st           j        st          j        j        	                    t           j                   t          j        j        	                    t           j                   t          j        j        	                    t           j                   d S d S )Nc              3   (   K   | ]}|         V  d S r   r,   rJ   s     r   rL   z)HookManager.unregister.<locals>.<genexpr>y   s(      gg==.ggggggr   )r.   r3   r/   r%   clearpopitemsrO   rP   rQ   rU   rV   rW   r   rX   r   rY   r    )r:   popped_hooksactiver5   s      @r   
unregisterzHookManager.unregisteri   s   7+2K#K#KF?#0 " "!!!!$**,,,%++----&488AAL , 2 2 4 4 : :f ggggKD]DdDdDfDfggggg :OO%%%,33D999' 	DM.55k6MNNNM+22;3DEEEM*11+2BCCCCC	D 	Dr   r   )r&   r'   r(   r/   listr
   r*   r   r3   r   r)   r1   staticmethodr   r+   r   r   r   r    r   r#   r%   rZ   rb   r,   r   r   r.   r.   !   s         !L$t*!!!1<=V=V1W1WM4T$*--.WWWKC K3 Kc K4PSUXPX> Kad Kim K K K \K ! !T ! ! ! \!  x  D       \ 
 N N(3- N4 N N N \N 6 6HSM 6T 6 6 6 \6& =t =c =d = = = \= D DHSM DT D D D \D D Dr   r.   )triton.compilerr   abcr   typingr   r   r   collectionsr   triton.knobsrU   r
   r.   r,   r   r   <module>rj      s    $ $ $ $ $ $       & & & & & & & & & & # # # # # #      " " " " " " " "2_D _D _D _D _D _D _D _D _D _Dr   