
    9i!+                     F   S SK r S SKrS SKrS SKJrJr  S SKJrJrJ	r	  S SK
r
S SKrS SKrS SKrS SKJrJr   " S S\5      r " S S\5      r " S	 S
5      r " S S\5      r " S S\5      rS rS\4S jrS\4S jrS\4S jrS r\R6                  " 5       S 5       rS rg)    N)ABCabstractmethod)DictListOptional)__version__knobsc                       \ rS rSrSS jr\S\\   4S j5       r\SS\4S jj5       r	\S\S\\
\\4      4S j5       r\S\S\
\\4   4S	 j5       rS
rg)CacheManager   c                     g N selfkeyoverridedumps       T/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/triton/runtime/cache.py__init__CacheManager.__init__           returnc                     g r   r   r   filenames     r   get_fileCacheManager.get_file       r   c                     g r   r   r   datar   binarys       r   putCacheManager.put   r    r   r   c                     g r   r   r   s     r   	get_groupCacheManager.get_group   r    r   groupc                     g r   r   )r   r   r*   s      r   	put_groupCacheManager.put_group   r    r   r   NFFT)__name__
__module____qualname____firstlineno__r   r   r   strr   r%   r   r(   r,   __static_attributes__r   r   r   r   r      s     HSM   #   # (4S>*B   # d38n  r   r   c                       \ rS rSrSS jrS\4S jrS\4S jrS\	\   4S jr
S\S\	\\\4      4S jrS\S	\\\4   S\4S
 jrSS\4S jjrSrg)FileCacheManager$   c                    Xl         S U l        U(       a  [        R                  R                  U l        [        R                  R                  U R
                  U R                   5      U l        [        R                  R                  U R
                  S5      U l        [        R                  " U R
                  SS9  g U(       aY  [        R                  R                  U l        [        R                  R                  U R
                  U R                   5      U l        g [        R                  R                  U l        U R
                  (       a  [        R                  R                  U R
                  U R                   5      U l        [        R                  R                  U R
                  S5      U l        [        R                  " U R
                  SS9  g [        S5      e)NlockTexist_ok$Could not create or locate cache dir)r   	lock_pathr	   cachedump_dir	cache_dirospathjoinmakedirsoverride_dirdirRuntimeErrorr   s       r   r   FileCacheManager.__init__&   s   "[[11DNWW\\$..$((CDNWW\\$..&ADNKK6"[[55DNWW\\$..$((CDN #[[__DN~~!#dnndhh!G!#dnnf!EDNNT:"#IJJr   r   c                 V    [         R                  R                  U R                  U5      $ r   )rB   rC   rD   rA   r   s     r   
_make_pathFileCacheManager._make_path;   s    ww||DNNH55r   c                     U R                   (       d  [        S5      e[        R                  R	                  U R                  U5      5      $ )Nr=   )rA   rH   rB   rC   existsrK   r   s     r   has_fileFileCacheManager.has_file>   s1    ~~EFFww~~dooh788r   c                 R    U R                  U5      (       a  U R                  U5      $ g r   )rO   rK   r   s     r   r   FileCacheManager.get_fileC   s#    ==""??8,,r   r   c                    SU 3nU R                  U5      (       d  g U R                  U5      n[        U5       n[        R                  " U5      nS S S 5        WR                  SS 5      nUc  g 0 nUR                  5        H/  u  p[        R                  R                  U	5      (       d  M+  XU'   M1     U$ ! , (       d  f       Nk= fN__grp__child_paths)
rO   rK   openjsonloadgetitemsrB   rC   rN   )
r   r   grp_filenamegrp_filepathfgrp_datarV   resultcps
             r   r(   FileCacheManager.get_groupI   s     
+}}\**|4,1yy|H  ll=$7%%'DAww~~a  q	 (   s   B55
Cr*   c                     U R                   (       d  [        S5      e[        R                  " SU05      nSU 3nU R	                  X4SS9$ )Nr=   rV   rU   Fr$   )rA   rH   rX   dumpsr%   r   r   r*   grp_contentsr\   s        r   r,   FileCacheManager.put_group[   sG    ~~EFFzz=%"89 
+xx5xAAr   c                    U R                   (       d  [        S5      e[        U[        5      nU(       d  [	        U5      nU R
                  c   eU R                  U5      n[	        [        R                  " 5       5      n[        R                  " 5       n[        R                  R                  U R                   SU SU 35      n[        R                  " USS9  [        R                  R                  Xr5      nU(       a  SOSn	[        X5       n
U
R                  U5        S S S 5        [        R                   " X5        [        R"                  " U5        U$ ! , (       d  f       N<= f)Nr=   ztmp.pid__Tr;   wbw)rA   rH   
isinstancebytesr4   r>   rK   uuiduuid4rB   getpidrC   rD   rE   rW   writereplace
removedirs)r   r#   r   r$   filepathrnd_idpidtemp_dir	temp_pathmoder^   s              r   r%   FileCacheManager.putb   s    ~~EFFD%(t9D~~)))??8,TZZ\"iik77<<(3%q0IJ
Ht,GGLL4	t3)"aGGDM # 	

9'
h #"s   E
E")rA   r   r>   Nr.   r/   )r0   r1   r2   r3   r   r4   rK   boolrO   r   r   r   r(   r,   r%   r5   r   r   r   r7   r7   $   s    K*6c 69D 9
HSM # (4S>*B $B# Bd38n B B#  r   r7   c                   n    \ rS rSrSrS\4S jr\S\\   S\	\\
4   4S j5       r\S\S	\
4S
 j5       rSrg)RemoteCacheBackend}   zD
A backend implementation for accessing a remote/distributed cache.
r   c                     g r   r   )r   r   s     r   r   RemoteCacheBackend.__init__   r   r   	filenamesr   c                     g r   r   )r   r   s     r   rZ   RemoteCacheBackend.get   r    r   r   r#   c                     g r   r   r   r   r#   s      r   r%   RemoteCacheBackend.put   r    r   r   N)r0   r1   r2   r3   __doc__r4   r   r   r   r   ro   rZ   r%   r5   r   r   r   r   r   }   sd    C  T#Y 4U
+;   C u  r   r   c                   n    \ rS rSrS rS\S\4S jrS\\   S\\\4   4S jr	S\S\
S\\\
4   4S	 jrS
rg)RedisRemoteCacheBackend   c                    SS K nXl        [        R                  R                   R                  U l        UR                  [        R                  R                   R                  [        R                  R                   R                  S9U l	        g )Nr   )hostport)
redis_keyr	   r?   
key_format_key_fmtRedisr   r   _redis)r   r   r   s      r   r    RedisRemoteCacheBackend.__init__   s\    	))44kk""''""'' " 
r   r   r   c                 J    U R                   R                  U R                  US9$ )N)r   r   )r   formatr   r   s     r   _get_key RedisRemoteCacheBackend._get_key   s     }}##		H#EEr   r   c                     U R                   R                  U Vs/ s H  o R                  U5      PM     sn5      n[        X5       VVs0 s H  u  pEUc  M
  XE_M     snn$ s  snf s  snnf r   )r   mgetr   zip)r   r   r^   resultsr   r`   s         r   rZ   RedisRemoteCacheBackend.get   s]    ++""i#HiMM!$4i#HI9<Y9Pg9P%5XTZ  9Pgg $Igs   A 		A%A%r#   c                 Z    U R                   R                  U R                  U5      U5        g r   )r   setr   r   s      r   r%   RedisRemoteCacheBackend.put   s    h/6r   )r   r   r   N)r0   r1   r2   r3   r   r4   r   r   r   rZ   ro   r%   r5   r   r   r   r   r      sb    
F F FhT#Y h4S> h7C 7u 7c5j1A 7r   r   c                       \ rS rSrSS jrS\S\4S jrS\S\\   4S jr	SS\S\4S jjr
S\S\\\\4      4S	 jrS\S
\\\4   4S jrSrg)RemoteCacheManager   c                     [         R                  R                  nU(       d  [        S5      eU" U5      U l        X l        X0l        [        XUS9U l        g )NzdUnable to instantiate RemoteCacheManager, TRITON_REMOTE_CACHE_BACKEND doesn't point to a valid class)r   r   )	r	   r?   remote_manager_classrH   _backend	_override_dumpr7   _file_cache_manager)r   r   r   r   remote_cache_clss        r   r   RemoteCacheManager.__init__   sO     ;;;;vx x(-!
 $4CQU#V r   r   r#   c                 6    U R                   R                  X!SS9$ )NTre   )r   r%   r   s      r   _materializeRemoteCacheManager._materialize   s    ''++D4+HHr   r   c                    U R                   (       d  U R                  (       a  U R                  R                  U5      $ U R                  R                  U/5      n[        U5      S:X  a  g UR                  5       u  u  p4U R                  X5      $ )Nr   )	r   r   r   r   r   rZ   lenr[   r   )r   r   r   rk   r#   s        r   r   RemoteCacheManager.get_file   sm    ::++44X>>
 --##XJ/w<1]]_
	  00r   c                 0   U R                   (       d  U R                  (       a  U R                  R                  XUS9$ [	        U[
        5      (       d  [        U5      R                  S5      nU R                  R                  X!5        U R                  X!5      $ )Nre   utf-8)
r   r   r   r%   rn   ro   r4   encoder   r   r"   s       r   r%   RemoteCacheManager.put   so    ::++//v/NN$&&t9##G,D()  00r   c                    U R                   (       d  U R                  (       a  U R                  R                  U5      $ SU 3nU R	                  U5      nUc  g [        U5       n[        R                  " U5      nS S S 5        WR                  SS 5      nS nUbG  0 nU R                  R                  U5      R                  5        H  u  pU R                  X5      Xx'   M     U$ ! , (       d  f       Nn= frT   )r   r   r   r(   r   rW   rX   rY   rZ   r   r[   r   )
r   r   r\   r]   r^   r_   rV   r`   
child_pathr#   s
             r   r(   RemoteCacheManager.get_group   s    ::++55h?? 
+}}\2,1yy|H  ll=$7 "F$(MM$5$5k$B$H$H$J 
%)%6%6z%H" %K   s   #C""
C0r*   c           	         U R                   (       d  U R                  (       a  U R                  R                  X5      $ [        R
                  " S[        [        UR                  5       5      5      05      nSU 3nU R                  X45      $ )NrV   rU   )
r   r   r   r,   rX   rf   sortedlistkeysr%   rg   s        r   r,   RemoteCacheManager.put_group   sd    ::++55hFFzz=&ejjl9K2L"MN 
+xx33r   )r   r   r   r   Nr.   r/   )r0   r1   r2   r3   r   r4   ro   r   r   r   r%   r   r(   r,   r5   r   r   r   r   r      s    WIS I I1 1# 11# 1s 1# (4S>*B .4# 4d38n 4r   r   c                     [         R                  " [        R                  U 5      5      R	                  S5      R                  S5      $ )Nr   =)base64	b32encodero   fromhexdecoderstrip)r   s    r   _base32r      s2    EMM#./66w?FFsKKr   r   c                 r    [         R                  R                  =(       d    [        nU" [	        U 5      5      $ r   r	   r?   manager_classr7   r   r   clss     r   get_cache_managerr      s&    
++
#
#
7'7Cws|r   c                 p    [         R                  R                  =(       d    [        nU" [	        U 5      SS9$ )NT)r   r   r   s     r   get_override_managerr      s(    
++
#
#
7'7Cws|d++r   c                 p    [         R                  R                  =(       d    [        nU" [	        U 5      SS9$ )NT)r   r   r   s     r   get_dump_managerr      s(    
++
#
#
7'7Cws|$''r   c                 z   UR                  5        VVs0 s H  u  pVXVS   S:X  a  SOU_M     nnnU  SSR                  UR                  5       5       SU SU 3nU H  nU SUR                  U5       3nM     [        R
                  " UR                  S5      5      R                  5       n[        U5      $ s  snnf )Nr   *ptr- r   )	r[   rD   valuesrZ   hashlibsha256r   	hexdigestr   )	version_hash	signature	constantsidskwargskvr   kws	            r   make_so_cache_keyr     s    <EOO<MN<MDAqTS[Ea/<MINN!BGGI$4$4$678)AcU
KCQvzz"~&' 
..G,
-
7
7
9C3< Os   B7c                     SS K n [        R                  R                  [        R                  R                  [        R                  R	                  [
        5      5      5      n/ n[        [
        S5       nU[        R                  " UR                  5       5      R                  5       /-  nS S S 5        [        R                  R                  US5      S4[        R                  R                  US5      S4/nU H  u  pVU R                  U/US9 H{  n[        UR                  R                  UR                  5      R                   S5       nU[        R                  " UR                  5       5      R                  5       /-  nS S S 5        M}     M     [        R                  " 5       n["        R$                  " S5      R'                  S	5      S
   n	[        [        R                  R                  USSU	 35      S5       n UR                  S5      n
U
(       d  OUR)                  U
5        M,  S S S 5        UR+                  UR                  5       5        [        R                  R                  US5      nU R                  U/SS9 H{  n[        UR                  R                  UR                  5      R                   S5       nU[        R                  " UR                  5       5      R                  5       /-  nS S S 5        M}     [,         SR                  U5      -   $ ! , (       d  f       GNw= f! , (       d  f       GM.  = f! , (       d  f       GN= f! , (       d  f       M  = f)Nr   rbcompilerztriton.compiler.backendsztriton.backends.)prefix
EXT_SUFFIX._Cz
libtriton.i   languageztriton.language.r   )pkgutilrB   rC   dirnameabspath__file__rW   r   r   readr   rD   walk_packagesmodule_finder	find_specnameorigin	sysconfigget_config_varsplitupdateappendr   )r   TRITON_PATHcontentsr^   path_prefixesrC   r   liblibtriton_hashextchunklanguage_paths               r   
triton_keyr    s   ''//"''//"''//(2K"LMKH	h	W^^AFFH-779:: 
 
k:	.0BC	k:	.0BCM &(($(?Cc''11#((;BBDIQW^^AFFH5??ABB JI @ & ^^%N

"
"<
0
6
6s
;B
?C	bggll;
3%.@A4	HAFF7OE!!%(	  
I OON,,./GGLLj9M$$m_=O$P###--chh7>>E1;;=>>H FE Q ]chhx0007 
	 JI 
I	H FEs0   47L7L-=.M ?7M
L*-
L= 
M
M!	c                     [        5        SU R                  5        SUR                  5        SUR                  5        S[        [        UR	                  5       5      5       3	nU$ )Nr   )r  hashr4   r   r[   )srcbackendbackend_optionsenv_varsr   s        r   get_cache_keyr  3  sZ    \N!CHHJ<q(8/:N:N:P9QQRSVW]^f^l^l^nWoSpRq
rCJr   )rX   rB   rp   abcr   r   typingr   r   r   r   r   	functoolsr   tritonr   r	   r   r7   r   r   r   r   r   r   r   r   	lru_cacher  r  r   r   r   <module>r     s     	  # ' '     %3 ,V| Vr "70 7,J4 J4ZL
l 
, ,
(\ (
  1  1Fr   