
    9ju!                    Z   d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ erd dlmZ d d	lmZ ej,                   G d
 d             Z G d de      Z G d dej2                        Z e       Z G d dee         ZdZ G d dej<                        Zy)    )annotationsN)AnyTYPE_CHECKING)overrideSelf)patch)config)RemoteCacheBackend)Callable)TracebackTypec                  X    e Zd ZU dZded<   dZded<   dZded<   ddZddZddZ	dd	Z
y
)Statsr   intnum_putnum_get_hitnum_get_missc                    | xj                   |j                   z  c_         | xj                  |j                  z  c_        | xj                  |j                  z  c_        | S Nr   r   r   selfothers     Z/media/conek/DATA/Code/OCR/venv/lib/python3.12/site-packages/torch/_inductor/mock_cache.py__iadd__zStats.__iadd__   sG    %E---U///    c                .    d| _         d| _        d| _        y )Nr   r   r   s    r   resetzStats.reset"   s    r   c                ~    dj                  d| j                   dd| j                   dd| j                   df      S )N zputs: z, zmisses: zhits: )joinr   r   r   r   s    r   __str__zStats.__str__'   sN    wwb)4,,-R0))*"-
 	
r   c                    t        |t        t        f      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r   )
isinstancer   _GlobalItemStatsr   r   r   r   s     r   __eq__zStats.__eq__0   sb     uu&678 8-8  E$5$558 !!U%7%77		
r   N)r   r   returnr   r'   None)r'   str)r   objectr'   bool)__name__
__module____qualname__r   __annotations__r   r   r   r   r"   r&    r   r   r   r      s4    GSKL#


r   r   c                  8     e Zd ZU ded<   d fdZd fdZ xZS )r%   zdict[str, object]cachec                0    t         |           i | _        y r   )super__init__r3   r   	__class__s    r   r6   z_GlobalItemStats.__init__>   s    
r   c                0    t         |           i | _        y r   )r5   r   r3   r7   s    r   r   z_GlobalItemStats.resetB   s    
r   r(   )r-   r.   r/   r0   r6   r   __classcell__)r8   s   @r   r%   r%   ;   s     r   r%   c                  *    e Zd ZddZddZddZd Zy)_GlobalStatsc                    t               | _        t               | _        t               | _        t               | _        t               | _        t               | _        t               | _        y r   )r%   autotune_localautotune_remotebundled_autotunefx_graphtritonaot_autograd
dynamo_pgor   s    r   r6   z_GlobalStats.__init__N   sL    .0/1 0 2(*&(,.*,r   c                p   | j                   j                          | j                  j                          | j                  j                          | j                  j                          | j
                  j                          | j                  j                          | j                  j                          y r   )r>   r   r?   r@   rA   rB   rC   rD   r   s    r   r   z_GlobalStats.resetW   sz    !!#""$##%!r   c                    t        | |      S r   )getattrr   names     r   get_statz_GlobalStats.get_stat`   s    tT""r   c                   d| j                   fd| j                  fd| j                  fd| j                  fd| j                  fd| j
                  fd| j                  ff}t        dt        j                  	       |D ]&  \  }}t        d
| d| t        j                  	       ( t        dt        j                  	       |D ]  \  }}|j                  st        d
| dt        j                  	       t        |j                  j                               D ]G  \  }}t        |      }t        |      dkD  r|d d dz   }t        d|d| t        j                  	       I  y )Nr>   r?   r@   rA   rB   rC   rD   zCache Stats:)filez  z: zCache Entries::d   z...z    )r>   r?   r@   rA   rB   rC   rD   printsysstderrr3   sorteditemsreprlen)r   subsrI   subkvs         r   reportz_GlobalStats.reportc   sE   t223 4 45!6!67't{{#T../4??+
 	n3::. 	7ID#BtfBse$3::6	7 	SZZ0 	>ID#yy4&l4"399??#45 >DAqQA1v|dsGeODRs+#**=	>	>r   Nr(   )rI   r*   r'   r%   )r-   r.   r/   r6   r   rJ   rZ   r1   r   r   r<   r<   M   s    - #>r   r<   c                  J    e Zd ZddZedd       Zedd       Zed	d       Zy)
MockBackendc                    || _         y r   )_namerH   s     r   r6   zMockBackend.__init__   s	    
r   c                     d fd}|S )Nc                     t               S r   )r\   )rI   s   r   wrapperz&MockBackend.with_name.<locals>.wrapper   s    t$$r   )r'   r\   r1   )rI   ra   s   ` r   	with_namezMockBackend.with_name   s    	% r   c                    t         j                  | j                        }||j                  v r*|t	        d      z  }|j                  j                  |      S |t	        d      z  }y )N   )r   )r   )global_statsrJ   r^   r3   r   get)r   keystats      r   _getzMockBackend._get   sV    $$TZZ0$**Ea((D::>>#&&Eq))Dr   c                ~    t         j                  | j                        }|t        d      z  }||j                  |<   y )Nrd   )r   )re   rJ   r^   r   r3   )r   rg   datarh   s       r   _putzMockBackend._put   s2    $$TZZ0a  

3r   N)rI   r*   r'   r)   )rI   r*   r'   zCallable[[], MockBackend])rg   r*   r'   z
Any | None)rg   r*   rk   r   r'   r)   )	r-   r.   r/   r6   staticmethodrb   r   ri   rl   r1   r   r   r\   r\      sC          r   r\   )fx_graph_cachefx_graph_remote_cacheautotune_local_cacheautotune_remote_cachebundled_autotune_remote_cachec                  T    e Zd Zed        Zed        ZddZddZ	 	 	 	 	 	 	 	 d	dZy)
PatchCachesc                    i | _         t        D ]@  }t        t        |      rt	        t        |      | j                   |<   t        t        |d       B y )NF)_savedCacheState_CACHE_CONFIG_ENhasattrr	   rG   setattrclsrI   s     r   setUpzPatchCaches.setUp   sH    
  "$ 	)Dvt$-4VT-B$$T*FD%(	)r   c                    t         D ]?  }t        t        |       || j                  v s"t	        t        || j                  |          A y r   )rw   delattrr	   rv   ry   rz   s     r   tearDownzPatchCaches.tearDown   sD     % 	BDFD!s+++c&:&:4&@A	Br   c                6    t        j                         | _        y r   )
contextlib	ExitStack_stackr   s    r   r6   zPatchCaches.__init__   s     **,r   c                   t         j                          | j                  j                          t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        d	t
        j                  d
            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t        j                         r\t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       t	        dt
        j                  d
            }| j                  j                  |       t	        dt
        j                  d            }| j                  j                  |       | S )NzNtorch._inductor.runtime.autotune_cache.LocalAutotuneCache.backend_override_clsr>   zEtorch._inductor.remote_cache.RemoteAutotuneCache.backend_override_clsr?   zLtorch._inductor.remote_cache.RemoteBundledAutotuneCache.backend_override_clsr@   zDtorch._inductor.remote_cache.RemoteFxGraphCache.backend_override_clsrA   zHtorch._inductor.remote_cache.RemoteAOTAutogradCache.backend_override_clsrC   zFtorch._inductor.remote_cache.RemoteDynamoPGOCache.backend_override_clsrD   zJtorch._inductor.fb.remote_cache.FbRemoteAutotuneCache.backend_override_clszQtorch._inductor.fb.remote_cache.FbRemoteBundledAutotuneCache.backend_override_clszItorch._inductor.fb.remote_cache.FbRemoteFxGraphCache.backend_override_clszFtriton.fb.fb_memcache.FbMemcacheRemoteKernelCache.backend_override_clsrB   zMtorch._inductor.fb.remote_cache.FbRemoteAOTAutogradCache.backend_override_clszKtorch._inductor.fb.remote_cache.FbRemoteDynamoPGOCache.backend_override_cls)
re   r   r   	__enter__r   r\   rb   enter_contextr	   	is_fbcode)r   ctxs     r   r   zPatchCaches.__enter__   sh   \!!"23
 	!!#&S!!"34
 	!!#&Z!!"45
 	!!#&R!!*-
 	!!#&V!!.1
 	!!#&T!!,/
 	!!#&\%%&78C KK%%c*c%%&89C KK%%c*[%%j1C KK%%c*X%%h/C KK%%c*_%%n5C KK%%c*]%%l3C KK%%c*r   c                >    | j                   j                  |||       y r   )r   __exit__)r   exc_type	exc_value	tracebacks       r   r   zPatchCaches.__exit__  s     	Xy)<r   Nr(   )r'   r   )r   ztype[BaseException] | Noner   zBaseException | Noner   zTracebackType | Noner'   r)   )	r-   r.   r/   classmethodr|   r   r6   r   r   r1   r   r   rt   rt      sa    ) ) B B-M^=,= (= (	=
 
=r   rt   ) 
__future__r   r   dataclassesrP   	threadingtypingr   r   typing_extensionsr   r   unittest.mockr   torch._inductorr	   torch._inductor.remote_cacher
   collections.abcr   typesr   	dataclassr   r%   localr<   re   r\   rw   AbstractContextManagerrt   r1   r   r   <module>r      s    #   
  % ,  " ; (# !
 !
 !
H	u 	$->9?? ->` ~$S) : l=*33 l=r   