K i!+@ddlZddlZddlZddlmZmZddlmZmZm Z ddl Z ddl Z ddl Z ddl Z ddlmZmZGddeZGddeZGd d ZGd d eZGd deZdZdefdZdefdZdefdZdZe j6dZdZy)N)ABCabstractmethod)DictListOptional) __version__knobsceZdZd dZedeefdZed defdZededee eeffdZ edede eeffdZ y ) CacheManagercyNselfkeyoverridedumps Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/triton/runtime/cache.py__init__zCacheManager.__init__ returncyr rrfilenames rget_filezCacheManager.get_file rcyr rrdatarbinarys rputzCacheManager.putrrrcyr rrs r get_groupzCacheManager.get_grouprrgroupcyr r)rrr%s r put_groupzCacheManager.put_grouprrNFFT) __name__ __module__ __qualname__rrrstrrr"rr$r'rrrr r s  HSM   #   # (4S>*B   # d38n  rr ceZdZd dZdefdZdefdZdeefdZ dedee eeffdZ dede eefdefd Z d defd Z y )FileCacheManagerc||_d|_|rtjj|_t jj|j |j|_t jj|j d|_t j|j dy|rYtjj|_t jj|j |j|_ytjj|_|j rt jj|j |j|_t jj|j d|_t j|j dytd)NlockTexist_ok$Could not create or locate cache dir) r lock_pathr cachedump_dir cache_dirospathjoinmakedirs override_dirdir RuntimeErrorrs rrzFileCacheManager.__init__&s "[[11DNWW\\$..$((CDNWW\\$..&ADN KK 6 "[[55DNWW\\$..$((CDN#[[__DN~~!#dnndhh!G!#dnnf!E DNNT:"#IJJrrcVtjj|j|Sr )r9r:r;r8rs r _make_pathzFileCacheManager._make_path;sww||DNNH55rc|js tdtjj |j |S)Nr4)r8r?r9r:existsrArs rhas_filezFileCacheManager.has_file>s1~~EF Fww~~dooh788rcH|j|r|j|Syr )rDrArs rrzFileCacheManager.get_fileCs == "??8, ,rrchd|}|j|sy|j|}t|5}tj|}dddj dd}|yi}|j D]*\}} tjj| s&| ||<,|S#1swY_xYwN__grp__ child_paths) rDrAopenjsonloadgetitemsr9r:rC) rr grp_filename grp_filepathfgrp_datarIresultcps rr$zFileCacheManager.get_groupIs  + }}\*|4 ,  $1yy|H $ll=$7  %%' DAqww~~a q    $ $s B((B1r%c|js tdtjd|i}d|}|j ||dS)Nr4rIrHFr!)r8r?rKdumpsr"rrr% grp_contentsrOs rr'zFileCacheManager.put_group[sI~~EF Fzz=%"89   + xx l5xAArc|js tdt|t}|s t |}|j J|j |}t tj}tj}tjj|jd|d|}tj|dtjj||}|rdnd} t|| 5} | j|dddtj ||tj"||S#1swY6xYw)Nr4ztmp.pid__Tr2wbw)r8r? isinstancebytesr-r5rAuuiduuid4r9getpidr:r;r<rJwritereplace removedirs) rr rr!filepathrnd_idpidtemp_dir temp_pathmoderQs rr"zFileCacheManager.putbs~~EF FD%(t9D~~)))??8,TZZ\"iik77<<(3%q0IJ Ht,GGLL84 t3 )T " a GGDM  9h' h   s >EENr(r))r*r+r,rr-rAboolrDrrrr$r'r"rrrr/r/$sK*6c69D9 HSM #(4S>*B$B#Bd38nBB#rr/c`eZdZdZdefdZedeedeee ffdZ edede fd Z y ) RemoteCacheBackendzL A backend implementation for accessing a remote/distributed cache. rcyr r)rrs rrzRemoteCacheBackend.__init__rr filenamesrcyr r)rrqs rrMzRemoteCacheBackend.getrrrr cyr rrrr s rr"zRemoteCacheBackend.putrrN) r*r+r,__doc__r-rrrrr`rMr"rrrroro}sd C  T#Y 4U +;   C u  rroc`eZdZdZdedefdZdeedeeeffdZdede deee ffdZ y ) RedisRemoteCacheBackendc$ddl}||_tjjj|_|j tjjjtjjj|_ y)Nr)hostport) redis_keyr r6 key_format_key_fmtRedisryrz_redis)rrr{s rrz RedisRemoteCacheBackend.__init__s^  ))44 kk""''""''"  rrrcP|jj|j|S)N)rr)r~formatr|rs r_get_keyz RedisRemoteCacheBackend._get_keys }}## H#EErrqc|jj|Dcgc]}|j|c}}t||Dcic] \}}| || c}}Scc}wcc}}wr )rmgetrzip)rrqrQresultsrrSs rrMzRedisRemoteCacheBackend.gets[++""i#HDMM!$4#HI9h7C7u7c5j1A7rrwceZdZd dZdedefdZdedeefdZd dedefdZ dedee eeffdZ ded e eeffd Z y )RemoteCacheManagerctjj}|s td|||_||_||_t||||_y)NzdUnable to instantiate RemoteCacheManager, TRITON_REMOTE_CACHE_BACKEND doesn't point to a valid class)rr) r r6remote_manager_classr?_backend _override_dumpr/_file_cache_manager)rrrrremote_cache_clss rrzRemoteCacheManager.__init__sU ;;;;vx x(- ! $4C(QU#V rrr c>|jj||dS)NTrW)rr"rts r _materializezRemoteCacheManager._materializes ''++D(4+HHrrc |js |jr|jj|S|jj |g}t |dk(ry|j\\}}|j||S)Nr) rrrrrrMlenrNr)rrrr\r s rrzRemoteCacheManager.get_filesq ::++44X> > --##XJ/ w<1 ]]_ D  400rc|js |jr|jj|||St |t st |jd}|jj|||j||S)NrWutf-8) rrrr"r_r`r-encoderrrs rr"zRemoteCacheManager.putsr ::++//hv/N N$&t9##G,D (D)  400rc|js |jr|jj|Sd|}|j |}|yt |5}t j|}dddjdd}d}|Hi}|jj|jD]\}} |j|| ||<|S#1swYixYwrG) rrrr$rrJrKrLrMrrNr) rrrOrPrQrRrIrS child_pathr s rr$zRemoteCacheManager.get_groups ::++55h? ?  + }}\2   ,  $1yy|H $ll=$7   "F$(MM$5$5k$B$H$H$J I D%)%6%6z4%Hz" I  $ $s CCr%c |js |jr|jj||St j dt t|ji}d|}|j||S)NrIrH) rrrr'rKrXsortedlistkeysr"rYs rr'zRemoteCacheManager.put_groupsh ::++55hF Fzz=&ejjl9K2L"MN   + xx l33rNr(r)) r*r+r,rr-r`rrrr"rr$r'rrrrrs WISII 1 1# 11#1s1#(4S>*B.4#4d38n4rrctjtj|j dj dS)Nr=)base64 b32encoder`fromhexdecoderstrip)rs r_base32rs2   EMM#. / 6 6w ? F Fs KKrrchtjjxst}|t |Sr r r6 manager_classr/rrclss rget_cache_managerrs& ++ # # 7'7C ws| rcltjjxst}|t |dS)NT)rrrs rget_override_managerrs( ++ # # 7'7C ws|d ++rcltjjxst}|t |dS)NT)rrrs rget_dump_managerrs( ++ # # 7'7C ws|$ ''rc p|jDcic]\}}||ddk(rdn|}}}|ddj|jd|d|}|D]}|d|j|}t j |j dj}t|Scc}}w)Nr*ptr-r) rNr;valuesrMhashlibsha256r hexdigestr) version_hash signature constantsidskwargskvrkws rmake_so_cache_keyrs> E ? 1;;=> >H ? ??]chhx0 007;; C C )) ? ?s046L6L9(L,96L9LL) ,L69M ctd|jd|jd|jdtt|j  }|S)Nr)rhashr-rrN)srcbackendbackend_optionsenv_varsrs r get_cache_keyr3sZ \N!CHHJrs #'' % 3 ,V|Vr  "707,J4J4ZL l ,, (\(  1 1Fr