Ë
    7^(h(  ã                   ó   — 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 d dl	m
Z
mZmZ d dlZd dlZd„ Zd„ Zd„ Zd„ 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eadad„ Zdefd„Zdefd„Zdefd„Zd„ Zy)é    N)ÚABCÚabstractmethod)ÚPath)ÚDictÚListÚOptionalc                  óR   — t        j                  dt        j                  «       «      S )NÚTRITON_HOME)ÚosÚgetenvr   Úhome© ó    úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/triton/runtime/cache.pyÚget_home_dirr      s   € Ü�9‰9�]¤D§I¡I£KÓ0Ð0r   c                  óT   — t         j                  j                  t        «       dd«      S )Nú.tritonÚcache©r   ÚpathÚjoinr   r   r   r   Údefault_cache_dirr      s   € Ü�7‰7�<‰<œ›¨	°7Ó;Ð;r   c                  óT   — t         j                  j                  t        «       dd«      S )Nr   Úoverrider   r   r   r   Údefault_override_dirr      s   € Ü�7‰7�<‰<œ›¨	°:Ó>Ð>r   c                  óT   — t         j                  j                  t        «       dd«      S )Nr   Údumpr   r   r   r   Údefault_dump_dirr      s   € Ü�7‰7�<‰<œ›¨	°6Ó:Ð:r   c                   ó”   — e Zd Z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 ©Nr   ©ÚselfÚkeys     r   Ú__init__zCacheManager.__init__   ó   € Ør   Ú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+   r5   s      r   Ú	put_groupzCacheManager.put_group-   r-   r   N©T)Ú__name__Ú
__module__Ú__qualname__r&   r   r   Ústrr,   r2   r   r4   r7   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                  dd«      j	                  «       xs
 t        «       | _        t        j                  j                  | j                  | j                   «      | _        t        j                  j                  | j                  d«      | _        t        j                  | j                  d¬«       y |rot        j                  dd«      j	                  «       xs
 t        «       | _        t        j                  j                  | j                  | j                   «      | _        y t        j                  dd«      j	                  «       xs
 t        «       | _        | j                  rŠt        j                  j                  | j                  | j                   «      | _        t        j                  j                  | j                  d«      | _        t        j                  | j                  d¬«       y t        d«      ‚)	NÚTRITON_DUMP_DIRÚ ÚlockT©Úexist_okÚTRITON_OVERRIDE_DIRÚTRITON_CACHE_DIRú$Could not create or locate cache dir)r%   Ú	lock_pathr   r   Ústripr   Ú	cache_dirr   r   Úmakedirsr   r   ÚRuntimeError)r$   r%   r   r   s       r   r&   zFileCacheManager.__init__4   sL  € ØˆŒØˆŒÙÜŸY™YÐ'8¸"Ó=×CÑCÓEÒ[ÔIYÓI[ˆDŒNÜŸW™WŸ\™\¨$¯.©.¸$¿(¹(ÓCˆDŒNÜŸW™WŸ\™\¨$¯.©.¸&ÓAˆDŒNÜ�K‰K˜Ÿ™°Ö6ÙÜŸY™YÐ'<¸bÓA×GÑGÓIÒcÔMaÓMcˆDŒNÜŸW™WŸ\™\¨$¯.©.¸$¿(¹(ÓCˆD�Nô  ŸY™YÐ'9¸2Ó>×DÑDÓFÒ]ÔJ[ÓJ]ˆ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"   )r   r   r   rJ   r*   s     r   Ú
_make_pathzFileCacheManager._make_pathI   s   € Ü�w‰w�|‰|˜DŸN™N¨HÓ5Ð5r   c                 óŒ   — | j                   st        d«      ‚t        j                  j	                  | j                  |«      «      S )NrG   )rJ   rL   r   r   ÚexistsrN   r*   s     r   Úhas_filezFileCacheManager.has_fileL   s1   € Ø�~Š~ÜÐEÓFÐFÜ�w‰w�~‰~˜dŸo™o¨hÓ7Ó8Ð8r   c                 óH   — | j                  |«      r| j                  |«      S y r"   )rQ   rN   r*   s     r   r,   zFileCacheManager.get_fileQ   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)
rQ   rN   ÚopenÚjsonÚloadÚgetÚitemsr   r   rP   )
r$   r+   Úgrp_filenameÚgrp_filepathÚfÚgrp_datarV   ÚresultÚcÚps
             r   r4   zFileCacheManager.get_groupW   s±   € Ø   
Ð+ˆØ�}‰}˜\Ô*ØØ—‘ |Ó4ˆÜ�,Óð 	$ 1Ü—y‘y “|ˆH÷	$à—l‘l =°$Ó7ˆàÐØØˆØ×%Ñ%Ó'ò 	‰DˆAˆqÜ�w‰w�~‰~˜aÕ Ø��q’	ð	ð ˆ÷	$ð 	$ús   ´B(Â(B1r5   c                 ó�   — | j                   st        d«      ‚t        j                  d|i«      }d|› �}| j	                  ||d¬«      S )NrG   rV   rU   F©r1   )rJ   rL   rX   Údumpsr2   ©r$   r+   r5   Úgrp_contentsr\   s        r   r7   zFileCacheManager.put_groupi   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)NrG   ztmp.pid_Ú_TrC   ÚwbÚw)rJ   rL   Ú
isinstanceÚbytesr<   rH   rN   ÚuuidÚuuid4r   Úgetpidr   r   rK   rW   ÚwriteÚreplaceÚ
removedirs)r$   r0   r+   r1   ÚfilepathÚrnd_idÚpidÚtemp_dirÚ	temp_pathÚmoder^   s              r   r2   zFileCacheManager.putp   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N©FFr8   )r9   r:   r;   r&   r<   rN   ÚboolrQ   r   r,   r   r4   r7   r2   r   r   r   r>   r>   2   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#   s     r   r&   zRemoteCacheBackend.__init__�   r'   r   Ú	filenamesr(   c                  ó   — y r"   r   )r$   r   s     r   rZ   zRemoteCacheBackend.get“   r-   r   r+   r0   c                  ó   — y r"   r   ©r$   r+   r0   s      r   r2   zRemoteCacheBackend.put—   r-   r   N)r9   r:   r;   Ú__doc__r<   r&   r   r   r   rm   rZ   r2   r   r   r   r}   r}   ‹   sd   „ ñð˜Có ð ð˜T #™Yð ¨4°°U°
Ñ+;ò ó ðð ð˜Cð  uò ó ñr   r}   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	                  dd«      | _        |j                  t        j                  j	                  dd«      t        t        j                  j	                  dd«      «      ¬«      | _        y )	Nr   ÚTRITON_REDIS_KEY_FORMATztriton:{key}:{filename}ÚTRITON_REDIS_HOSTÚ	localhostÚTRITON_REDIS_PORTië  )ÚhostÚport)	ÚredisÚ_keyr   ÚenvironrZ   Ú_key_fmtÚRedisÚintÚ_redis)r$   r%   r�   s      r   r&   z RedisRemoteCacheBackend.__init__ž   sd   € ÛØˆŒ	ÜŸ
™
Ÿ™Ð'@ÐB[Ó\ˆŒØ—k‘kÜ—‘—‘Ð 3°[ÓAÜ”R—Z‘Z—^‘^Ð$7¸Ó>Ó?ð "ó 
ˆ�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   r   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$   r   r^   Úresultsr+   r`   s         r   rZ   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!r0   c                 óZ   — | j                   j                  | j                  |«      |«       y r"   )r“   Úsetr–   r‚   s      r   r2   zRedisRemoteCacheBackend.put®   s   € Ø�‰�‰˜Ÿ™ hÓ/°Õ6r   N)r9   r:   r;   r&   r<   r–   r   r   rZ   rm   r2   r   r   r   r…   r…   œ   sb   „ ò
ðF ð F¨ó Fðh˜T #™Yð h¨4°°S°©>ó hð7˜Cð 7 uð 7°°c¸5°jÑ1Aô 7r   r…   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                  d   }|j                  d«      \  }}t        j                  |«      }t        ||«      } ||«      | _        || _        || _        t        |||¬«      | _
        y )NÚTRITON_REMOTE_CACHE_BACKENDú:)r   r   )r   r�   ÚsplitÚ	importlibÚimport_moduleÚgetattrÚ_backendÚ	_overrideÚ_dumpr>   Ú_file_cache_manager)	r$   r%   r   r   Úremote_cache_managerÚmodule_pathÚclz_nmeÚmoduleÚremote_cache_clss	            r   r&   zRemoteCacheManager.__init__´   sr   € ä!Ÿz™zÐ*GÑHÐØ3×9Ñ9¸#Ó>Ñˆ�WÜ×(Ñ(¨Ó5ˆÜ" 6¨7Ó3ÐÙ(¨Ó-ˆŒà!ˆŒØˆŒ
ô $4°CÀ(ÐQUÔ#VˆÕ r   r+   r0   c                 ó>   — | j                   j                  ||d¬«      S )NTrd   )r©   r2   r‚   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¦   rZ   Úlenr[   r°   )r$   r+   rš   ri   r0   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 )Nrd   úutf-8)
r¨   r§   r©   r2   rl   rm   r<   Úencoder¦   r°   r/   s       r   r2   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rT   )r¨   r§   r©   r4   r,   rW   rX   rY   rZ   r¦   r[   r°   )
r$   r+   r\   r]   r^   r_   rV   r`   Ú
child_pathr0   s
             r   r4   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r5   c           	      ó  — | j                   s| j                  r| j                  j                  ||«      S t	        j
                  dt        t        |j                  «       «      «      i«      }d|› �}| j                  ||«      S )NrV   rU   )
r¨   r§   r©   r7   rX   re   ÚsortedÚlistÚkeysr2   rf   s        r   r7   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   Nrz   r8   )r9   r:   r;   r&   r<   rm   r°   r   r,   r2   r   r4   r7   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ž   ÚDEFAULTc                 óŽ   — t        j                  t        j                  | «      «      j	                  d«      j                  d«      S )Nr´   ú=)Úbase64Ú	b32encoderm   ÚfromhexÚdecodeÚrstrip©r%   s    r   Ú_base32rÅ     s2   € ä×ÑœEŸM™M¨#Ó.Ó/×6Ñ6°wÓ?×FÑFÀsÓKÐKr   r(   c                 óî   — dd l }|j                  j                  dd «      }|�@|t        k7  r7|j	                  d«      \  }}t        j                  |«      }t        ||«      a|at        t        | «      «      S )Nr   ÚTRITON_CACHE_MANAGERr¡   )
r   r�   rZ   Ú__cache_cls_nmer¢   r£   r¤   r¥   Ú__cache_clsrÅ   )r%   r   Úuser_cache_managerr«   r¬   r­   s         r   Úget_cache_managerrË     sp   € ÛàŸ™Ÿ™Ð(>ÀÓEÐð Ð%Ð*<ÄÒ*OØ1×7Ñ7¸Ó<Ñˆ�WÜ×(Ñ(¨Ó5ˆÜ˜f gÓ.ˆØ,ˆä”w˜s“|Ó$Ð$r   c                 ó.   — t        t        | «      d¬«      S )NT)r   ©rÉ   rÅ   rÄ   s    r   Úget_override_managerrÎ     s   € Ü”w˜s“|¨dÔ3Ð3r   c                 ó.   — t        t        | «      d¬«      S )NT)r   rÍ   rÄ   s    r   Úget_dump_managerrÐ     s   € Ü”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ú-rA   r´   )	r[   r   ÚvaluesrZ   Ú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)r£   rX   r   rn   Úabcr   r   Úpathlibr   Útypingr   r   r   r¿   rÖ   r   r   r   r   r    r>   r}   r…   rž   rÉ   rÈ   rÅ   rË   rÎ   rÐ   rá   r   r   r   ú<module>rå      s³   ðÛ Û Û 	Û ß #Ý ß 'Ñ 'Û Û ò1ò<ò?ò;ô�3ô ô,V�|ô V÷rñ ô"7Ð0ô 7ô,J4˜ô J4ðZ €Ø€òLð
%˜ló %ð 4 ó 4ð0˜\ó 0ór   