Ë
    ÏÍ:j–$  ã                   óø   — 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m	Z	 d dl
Z
d dlZddlmZ  G d„ de«      Z G d„ d	e«      Z G d
„ d«      Z G d„ de«      Z G d„ de«      Zd„ Zdefd„Zdefd„Zdefd„Zd„ Zy)é    N)ÚABCÚabstractmethod)ÚDictÚListÚOptionalé   )Úknobsc                   ó–   — e Zd Zd
d„Zedee   fd„«       Zeddefd„«       Zededee	eef      fd„«       Z
edede	eef   fd„«       Zy	)ÚCacheManagerc                  ó   — y ©N© ©ÚselfÚkeyÚoverrideÚdumps       úi/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/triton/runtime/cache.pyÚ__init__zCacheManager.__init__   ó   € Øó    Úreturnc                  ó   — y r   r   ©r   Úfilenames     r   Úget_filezCacheManager.get_file   ó   € àr   c                  ó   — y r   r   ©r   Údatar   Úbinarys       r   ÚputzCacheManager.put   r   r   r   c                  ó   — y r   r   r   s     r   Ú	get_groupzCacheManager.get_group   r   r   Úgroupc                  ó   — y r   r   )r   r   r%   s      r   Ú	put_groupzCacheManager.put_group   r   r   N©FF©T)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ústrr   r"   r   r$   r'   r   r   r   r   r      sš   „ óð ð H¨S¡Mò ó ðð ñ°#ò ó ðð ð #ð ¨(°4¸¸S¸±>Ñ*Bò ó ðð ð #ð ¨d°3¸°8©nò ó ñr   r   c                   óŠ   — e Zd Zdd„Zdefd„Zdefd„Zdee   fd„Z	dedee
eef      fd„Zdede
eef   defd	„Zddefd
„Zy)ÚFileCacheManagerc                 óª  — || _         d | _        |r©t        j                  j                  | _        t        j                  j                  | j
                  | j                   «      | _        t        j                  j                  | j
                  d«      | _        t        j                  | j
                  d¬«       y |rYt        j                  j                  | _        t        j                  j                  | j
                  | j                   «      | _        y t        j                  j                  | _        | j
                  rŠt        j                  j                  | j
                  | j                   «      | _        t        j                  j                  | j
                  d«      | _        t        j                  | j
                  d¬«       y t        d«      ‚)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   zFileCacheManager.__init__$   s  € ØˆŒØˆŒÙÜ"Ÿ[™[×1Ñ1ˆDŒNÜŸW™WŸ\™\¨$¯.©.¸$¿(¹(ÓCˆDŒNÜŸW™WŸ\™\¨$¯.©.¸&ÓAˆDŒNÜ�K‰K˜Ÿ™°Ö6ÙÜ"Ÿ[™[×5Ñ5ˆDŒNÜŸW™WŸ\™\¨$¯.©.¸$¿(¹(ÓCˆD�Nô #Ÿ[™[Ÿ_™_ˆDŒNØ�~Š~Ü!#§¡§¡¨d¯n©n¸d¿h¹hÓ!G�”Ü!#§¡§¡¨d¯n©n¸fÓ!E�”Ü—‘˜DŸN™N°TÖ:ä"Ð#IÓJÐJr   r   c                 óV   — t         j                  j                  | j                  |«      S r   )r9   r:   r;   r8   r   s     r   Ú
_make_pathzFileCacheManager._make_path9   s   € Ü�w‰w�|‰|˜DŸN™N¨HÓ5Ð5r   c                 óŒ   — | j                   st        d«      ‚t        j                  j	                  | j                  |«      «      S )Nr4   )r8   r?   r9   r:   ÚexistsrA   r   s     r   Úhas_filezFileCacheManager.has_file<   s1   € Ø�~Š~ÜÐEÓFÐFÜ�w‰w�~‰~˜dŸo™o¨hÓ7Ó8Ð8r   c                 óH   — | j                  |«      r| j                  |«      S y r   )rD   rA   r   s     r   r   zFileCacheManager.get_fileA   s    € Ø�=‰=˜Ô"Ø—?‘? 8Ó,Ð,àr   r   c                 óh  — d|› �}| j                  |«      sy | j                  |«      }t        |«      5 }t        j                  |«      }d d d «       j                  dd «      }|€y i }|j                  «       D ]*  \  }}	t        j                  j                  |	«      sŒ&|	||<   Œ, |S # 1 sw Y   Œ_xY w©NÚ__grp__Úchild_paths)
rD   rA   ÚopenÚjsonÚloadÚgetÚitemsr9   r:   rC   )
r   r   Úgrp_filenameÚgrp_filepathÚfÚgrp_datarI   ÚresultÚcÚps
             r   r$   zFileCacheManager.get_groupG   s±   € Ø   
Ð+ˆØ�}‰}˜\Ô*ØØ—‘ |Ó4ˆÜ�,Óð 	$ 1Ü—y‘y “|ˆH÷	$à—l‘l =°$Ó7ˆàÐØØˆØ×%Ñ%Ó'ò 	‰DˆAˆqÜ�w‰w�~‰~˜aÕ Ø��q’	ð	ð ˆ÷	$ð 	$ús   ´B(Â(B1r%   c                 ó�   — | j                   st        d«      ‚t        j                  d|i«      }d|› �}| j	                  ||d¬«      S )Nr4   rI   rH   F©r!   )r8   r?   rK   Údumpsr"   ©r   r   r%   Úgrp_contentsrO   s        r   r'   zFileCacheManager.put_groupY   sI   € Ø�~Š~ÜÐEÓFÐFÜ—z‘z =°%Ð"8Ó9ˆØ   
Ð+ˆØ�x‰x˜ l¸5ˆxÓAÐAr   c                 ó¢  — | j                   st        d«      ‚t        |t        «      }|st	        |«      }| j
                  €J ‚| j                  |«      }t	        t        j                  «       «      }t        j                  «       }t        j                  j                  | j                   d|› d|› �«      }t        j                  |d¬«       t        j                  j                  ||«      }|rdnd}	t        ||	«      5 }
|
j                  |«       d d d «       t        j                   ||«       t        j"                  |«       |S # 1 sw Y   Œ6xY w)Nr4   ztmp.pid_Ú_Tr2   ÚwbÚw)r8   r?   Ú
isinstanceÚbytesr-   r5   rA   ÚuuidÚuuid4r9   Úgetpidr:   r;   r<   rJ   ÚwriteÚreplaceÚ
removedirs)r   r    r   r!   ÚfilepathÚrnd_idÚpidÚtemp_dirÚ	temp_pathÚmoderQ   s              r   r"   zFileCacheManager.put`   s  € Ø�~Š~ÜÐEÓFÐFÜ˜D¤%Ó(ˆÙÜ�t“9ˆDØ�~‰~Ð)Ð)Ð)Ø—?‘? 8Ó,ˆä”T—Z‘Z“\Ó"ˆä�i‰i‹kˆä—7‘7—<‘< §¡°(¸3¸%¸qÀÀÐ0IÓJˆÜ
�‰�H tÕ,Ü—G‘G—L‘L ¨8Ó4ˆ	á‰t 3ˆÜ�)˜TÓ"ð 	 aØ�G‰G�DŒM÷	ô 	�
‰
�9˜hÔ'Ü
�‰�hÔØˆ÷	ð 	ús   Ã>EÅENr(   r)   )r*   r+   r,   r   r-   rA   ÚboolrD   r   r   r   r$   r'   r"   r   r   r   r/   r/   "   s‚   „ óKð*6 có 6ð9 Dó 9ð
 H¨S¡Mó ð #ð ¨(°4¸¸S¸±>Ñ*Bó ð$B #ð B¨d°3¸°8©nð BÀó Bñ°#ô r   r/   c                   ó`   — e Zd ZdZdefd„Zedee   deee	f   fd„«       Z
edede	fd	„«       Zy
)ÚRemoteCacheBackendzL
    A backend implementation for accessing a remote/distributed cache.
    r   c                  ó   — y r   r   )r   r   s     r   r   zRemoteCacheBackend.__init__€   r   r   Ú	filenamesr   c                  ó   — y r   r   )r   rq   s     r   rM   zRemoteCacheBackend.getƒ   r   r   r   r    c                  ó   — y r   r   ©r   r   r    s      r   r"   zRemoteCacheBackend.put‡   r   r   N)r*   r+   r,   Ú__doc__r-   r   r   r   r   r`   rM   r"   r   r   r   ro   ro   {   sd   „ ñð˜Có ð ð˜T #™Yð ¨4°°U°
Ñ+;ò ó ðð ð˜Cð  uò ó ñr   ro   c                   ó`   — e Zd Zd„ Zdedefd„Zdee   deeef   fd„Zdede	deee	f   fd„Z
y	)
ÚRedisRemoteCacheBackendc                 ó$  — dd l }|| _        t        j                  j                   j                  | _        |j                  t        j                  j                   j                  t        j                  j                   j                  ¬«      | _	        y )Nr   )ÚhostÚport)
ÚredisÚ_keyr	   r6   Ú
key_formatÚ_key_fmtÚRedisry   rz   Ú_redis)r   r   r{   s      r   r   z RedisRemoteCacheBackend.__init__Ž   s^   € ÛØˆŒ	ÜŸ™×)Ñ)×4Ñ4ˆŒØ—k‘kÜ—‘×"Ñ"×'Ñ'Ü—‘×"Ñ"×'Ñ'ð "ó 
ˆ�r   r   r   c                 óP   — | j                   j                  | j                  |¬«      S )N)r   r   )r~   Úformatr|   r   s     r   Ú_get_keyz RedisRemoteCacheBackend._get_key—   s    € Ø�}‰}×#Ñ#¨¯	©	¸HÐ#ÓEÐEr   rq   c                 óÎ   — | j                   j                  |D �cg c]  }| j                  |«      ‘Œ c}«      }t        ||«      D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}w c c}}w r   )r€   Úmgetrƒ   Úzip)r   rq   rQ   Úresultsr   rS   s         r   rM   zRedisRemoteCacheBackend.getš   s[   € Ø—+‘+×"Ñ"¸iÖ#H¸ D§M¡M°!Õ$4Ò#HÓIˆÜ9<¸YÈÓ9P×gÑ%5 X¨vÐTZÑTf�˜&Ñ ÓgÐgùò $IùÛgs   šAÁ
A!ÁA!r    c                 óZ   — | j                   j                  | j                  |«      |«       y r   )r€   Úsetrƒ   rt   s      r   r"   zRedisRemoteCacheBackend.putž   s   € Ø�‰�‰˜Ÿ™ hÓ/°Õ6r   N)r*   r+   r,   r   r-   rƒ   r   r   rM   r`   r"   r   r   r   rw   rw   Œ   sb   „ ò
ðF ð F¨ó Fðh˜T #™Yð h¨4°°S°©>ó hð7˜Cð 7 uð 7°°c¸5°jÑ1Aô 7r   rw   c                   ó†   — e Zd Zdd„Zdedefd„Zdedee   fd„Zddedefd„Z	dedee
eef      fd„Zded	e
eef   fd
„Zy)ÚRemoteCacheManagerc                 ó®   — t         j                  j                  }|st        d«      ‚ ||«      | _        || _        || _        t        |||¬«      | _        y )NzdUnable to instantiate RemoteCacheManager, TRITON_REMOTE_CACHE_BACKEND doesn't point to a valid class)r   r   )	r	   r6   Úremote_manager_classr?   Ú_backendÚ	_overrideÚ_dumpr/   Ú_file_cache_manager)r   r   r   r   Úremote_cache_clss        r   r   zRemoteCacheManager.__init__¤   sU   € ä Ÿ;™;×;Ñ;ÐÙÜØvóxð xá(¨Ó-ˆŒà!ˆŒØˆŒ
ô $4°CÀ(ÐQUÔ#VˆÕ r   r   r    c                 ó>   — | j                   j                  ||d¬«      S )NTrW   )r‘   r"   rt   s      r   Ú_materializezRemoteCacheManager._materialize²   s    € à×'Ñ'×+Ñ+¨D°(À4Ð+ÓHÐHr   r   c                 ó  — | j                   s| j                  r| j                  j                  |«      S | j                  j                  |g«      }t        |«      dk(  ry |j                  «       \  \  }}| j                  ||«      S )Nr   )	r�   r�   r‘   r   rŽ   rM   ÚlenrN   r”   )r   r   r‡   r\   r    s        r   r   zRemoteCacheManager.get_file¶   sq   € à�:Š:˜ŸšØ×+Ñ+×4Ñ4°XÓ>Ð>ð
 —-‘-×#Ñ# X JÓ/ˆÜˆw‹<˜1ÒØØ—]‘]“_‰
‰	ˆˆDØ× Ñ  ¨4Ó0Ð0r   c                 ó  — | j                   s| j                  r| j                  j                  |||¬«      S t	        |t
        «      st        |«      j                  d«      }| j                  j                  ||«       | j                  ||«      S )NrW   úutf-8)
r�   r�   r‘   r"   r_   r`   r-   ÚencoderŽ   r”   r   s       r   r"   zRemoteCacheManager.putÄ   sr   € à�:Š:˜ŸšØ×+Ñ+×/Ñ/°°hÀvÐ/ÓNÐNä˜$¤Ô&Ü�t“9×#Ñ# GÓ,ˆDØ�‰×Ñ˜( DÔ)Ø× Ñ  ¨4Ó0Ð0r   c                 óÄ  — | j                   s| j                  r| j                  j                  |«      S d|› �}| j	                  |«      }|€y t        |«      5 }t        j                  |«      }d d d «       j                  dd «      }d }|�Hi }| j                  j                  |«      j                  «       D ]  \  }}	| j                  ||	«      ||<   Œ |S # 1 sw Y   ŒixY wrG   )r�   r�   r‘   r$   r   rJ   rK   rL   rM   rŽ   rN   r”   )
r   r   rO   rP   rQ   rR   rI   rS   Ú
child_pathr    s
             r   r$   zRemoteCacheManager.get_groupÎ   sã   € à�:Š:˜ŸšØ×+Ñ+×5Ñ5°hÓ?Ð?à   
Ð+ˆØ—}‘} \Ó2ˆØÐØÜ�,Óð 	$ 1Ü—y‘y “|ˆH÷	$à—l‘l =°$Ó7ˆàˆð Ð"ØˆFØ$(§M¡M×$5Ñ$5°kÓ$B×$HÑ$HÓ$Jò IÑ �
˜DØ%)×%6Ñ%6°zÀ4Ó%H��zÒ"ðIð ˆ÷	$ð 	$ús   ÁCÃCr%   c           	      ó  — | j                   s| j                  r| j                  j                  ||«      S t	        j
                  dt        t        |j                  «       «      «      i«      }d|› �}| j                  ||«      S )NrI   rH   )
r�   r�   r‘   r'   rK   rX   ÚsortedÚlistÚkeysr"   rY   s        r   r'   zRemoteCacheManager.put_groupå   sh   € à�:Š:˜ŸšØ×+Ñ+×5Ñ5°hÀÓFÐFä—z‘z =´&¼¸e¿j¹j»lÓ9KÓ2LÐ"MÓNˆØ   
Ð+ˆØ�x‰x˜ lÓ3Ð3r   Nr(   r)   )r*   r+   r,   r   r-   r`   r”   r   r   r"   r   r$   r'   r   r   r   r‹   r‹   ¢   sƒ   „ óWðI Sð I°ó Ið1 ð 1¨°#©ó 1ñ1 #ð 1°só 1ð #ð ¨(°4¸¸S¸±>Ñ*Bó ð.4 #ð 4¨d°3¸°8©nô 4r   r‹   c                 óŽ   — t        j                  t        j                  | «      «      j	                  d«      j                  d«      S )Nr˜   ú=)Úbase64Ú	b32encoder`   ÚfromhexÚdecodeÚrstrip)r   s    r   Ú_base32r§   ï   s2   € ä×ÑœEŸM™M¨#Ó.Ó/×6Ñ6°wÓ?×FÑFÀsÓKÐKr   r   c                 óh   — t         j                  j                  xs t        } |t	        | «      «      S r   ©r	   r6   Úmanager_classr/   r§   ©r   Úclss     r   Úget_cache_managerr­   ô   s&   € Ü
�+‰+×
#Ñ
#Ò
7Ô'7€CÙŒw�s‹|ÓÐr   c                 ól   — t         j                  j                  xs t        } |t	        | «      d¬«      S )NT)r   r©   r«   s     r   Úget_override_managerr¯   ù   s(   € Ü
�+‰+×
#Ñ
#Ò
7Ô'7€CÙŒw�s‹| dÔ+Ð+r   c                 ól   — t         j                  j                  xs t        } |t	        | «      d¬«      S )NT)r   r©   r«   s     r   Úget_dump_managerr±   þ   s(   € Ü
�+‰+×
#Ñ
#Ò
7Ô'7€CÙŒw�s‹| $Ô'Ð'r   c                 óp  — |j                  «       D ��ci c]  \  }}||d   dk(  rdn|“Œ }}}| › ddj                  |j                  «       «      › d|› d|› �}|D ]  }|› d|j                  |«      › �}Œ t	        j
                  |j                  d«      «      j                  «       }t        |«      S c c}}w )Nr   Ú*Úptrú-Ú r˜   )	rN   r;   ÚvaluesrM   ÚhashlibÚsha256r™   Ú	hexdigestr§   )	Úversion_hashÚ	signatureÚ	constantsÚidsÚkwargsÚkÚvr   Úkws	            r   Úmake_so_cache_keyrÃ     s¸   € à<E¿O¹OÓ<M×N±D°A°q�˜Q˜q™T Sš[‘E¨aÑ/ÐN€IÑNØˆN˜!˜BŸG™G I×$4Ñ$4Ó$6Ó7Ð8¸¸)¸ÀAÀcÀUÐ
K€CØò (ˆØ��Q�v—z‘z "“~Ð&Ð'‰ð(ä
�.‰.˜Ÿ™ GÓ,Ó
-×
7Ñ
7Ó
9€CÜ�3‹<Ðùó Os   ”B2)rK   r9   ra   Úabcr   r   Útypingr   r   r   r¢   r¸   r¶   r	   r   r/   ro   rw   r‹   r§   r­   r¯   r±   rÃ   r   r   r   ú<module>rÆ      s�   ðÛ Û 	Û ß #ß 'Ñ 'Û Û å ô�3ô ô,V�|ô V÷rñ ô"7Ð0ô 7ô,J4˜ô J4òZLð
˜ló ð
, ó ,ð
(˜\ó (ó
r   