Ë
    uPêj¬  ã                   ób   — d dl Z d dlmZmZmZ ddlmZ erd dlmZ	 e	ez  ZneZ G d„ de«      Z
y)é    N)ÚTYPE_CHECKINGÚAnyÚFinalé   )Ú	BaseCache)ÚSpanc                   óˆ   — e Zd Zddedz  fd„Zd„ Zd„ Zd„ Zd„ Zde	fd	„Z
d
edefd„Zd„ Zde	fd„Zd
edefd„Zd„ Zd„ Zd„ Zy)Ú	DiskCacheNÚdisk_cache_dirc                 ó¦   — 	 dd l }|€|j                  d«      | _        y |j                  |«      | _        y # t        $ r}t        d«      |‚d }~ww xY w)Nr   zCPlease install litellm with `litellm[caching]` to use disk caching.z.litellm_cache)Ú	diskcacheÚModuleNotFoundErrorÚCacheÚ
disk_cache)Úselfr   ÚdcÚes       ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/caching/disk_cache.pyÚ__init__zDiskCache.__init__   sW   € ð	tÛ"ð
 Ð!Ø Ÿh™hÐ'7Ó8ˆD�Oà Ÿh™h ~Ó6ˆD�Oøô #ò 	tÜ%Ð&kÓlÐrsÐsûð	tús   ‚6 ¶	A¿AÁAc                 óˆ   — d|v r"| j                   j                  |||d   ¬«       y | j                   j                  ||«       y )NÚttl)Úexpire)r   Úset©r   ÚkeyÚvalueÚkwargss       r   Ú	set_cachezDiskCache.set_cache   s:   € Ø�F‰?Ø�O‰O×Ñ  U°6¸%±=ÐÕAà�O‰O×Ñ  UÕ+ó    c              ‹   ó6   K  —  | j                   d||dœ|¤Ž y ­w©N©r   r   © ©r   r   s       r   Úasync_set_cachezDiskCache.async_set_cache!   s   è ø€ Øˆ�‰Ð6˜3 eÑ6¨vÓ6ùs   ‚c              ‹   ó~   K  — |D ]4  \  }}d|v r| j                  |||d   ¬«       Œ"| j                  ||¬«       Œ6 y ­w)Nr   )r   r   r   r"   r$   )r   Ú
cache_listr   Ú	cache_keyÚcache_values        r   Úasync_set_cache_pipelinez"DiskCache.async_set_cache_pipeline$   sI   è ø€ Ø&0ò 	AÑ"ˆI�{Ø˜‰Ø—‘ 9°KÀVÈEÁ]�ÕSà—‘ 9°K�Õ@ñ		Aùs   ‚;=c                 ó’   — | j                   j                  |«      }|r	 t        j                  |«      }|S y # t        $ r |}Y |S w xY w©N)r   ÚgetÚjsonÚloadsÚ	Exception)r   r   r   Úoriginal_cached_responseÚcached_responses        r   Ú	get_cachezDiskCache.get_cache+   sU   € Ø*.¯/©/×*=Ñ*=¸cÓ*BÐ Ù#ð;Ü"&§*¡*Ð-EÓ"F�ð #Ð"Øøô ò ;Ø":‘Ø"Ð"ð;ús   Ÿ7 ·AÁAÚkeysc                 ób   — g }|D ]'  } | j                   dd|i|¤Ž}|j                  |«       Œ) |S ©Nr   r#   ©r3   Úappend©r   r4   r   Ú
return_valÚkÚvals         r   Úbatch_get_cachezDiskCache.batch_get_cache5   sD   € Øˆ
Øò 	#ˆAØ �$—.‘.Ñ1 QÐ1¨&Ñ1ˆCØ×Ñ˜cÕ"ð	#ð Ðr   r   Úreturnc                 óä   — | j                   j                  «       5  | j                  |¬«      }t        |t        «      r|nd}||z   } | j
                  ||fi |¤Ž |cd d d «       S # 1 sw Y   y xY w)N)r   r   )r   Útransactr3   Ú
isinstanceÚintr   )r   r   r   r   Úcached_valueÚ
init_valueÚ	new_values          r   Úincrement_cachezDiskCache.increment_cache<   sj   € Ø�_‰_×%Ñ%Ó'ñ 	Ø"&§.¡.°S .Ó"9ˆLÜ0:¸<ÌÔ0M¡ÐSTˆJØ)¨EÑ1ˆIØˆD�N‰N˜3 	Ñ4¨VÒ4Ø÷	÷ 	ò 	ús   ›AA&Á&A/c              ‹   ó2   K  —  | j                   dd|i|¤ŽS ­wr6   )r3   )r   r   r   s      r   Úasync_get_cachezDiskCache.async_get_cacheD   s   è ø€ Øˆt�~‰~Ñ0 #Ð0¨Ñ0Ð0ùs   ‚c              ‹   ój   K  — g }|D ]'  } | j                   dd|i|¤Ž}|j                  |«       Œ) |S ­wr6   r7   r9   s         r   Úasync_batch_get_cachezDiskCache.async_batch_get_cacheG   sH   è ø€ Øˆ
Øò 	#ˆAØ �$—.‘.Ñ1 QÐ1¨&Ñ1ˆCØ×Ñ˜cÕ"ð	#ð Ðùs   ‚13c              ‹   ó4   K  —  | j                   d||dœ|¤ŽS ­wr!   )rF   r   s       r   Úasync_incrementzDiskCache.async_incrementN   s#   è ø€ Ø#ˆt×#Ñ#ÐC¨°5ÑC¸FÑCÐCùs   ‚c                 ó8   — | j                   j                  «        y r,   )r   Úclear©r   s    r   Úflush_cachezDiskCache.flush_cacheQ   s   € Ø�‰×ÑÕr   c              ƒ   ó   K  — y ­wr,   r#   rO   s    r   Ú
disconnectzDiskCache.disconnectT   s	   è ø€ Øùs   ‚c                 ó:   — | j                   j                  |«       y r,   )r   Úpop)r   r   s     r   Údelete_cachezDiskCache.delete_cacheW   s   € Ø�‰×Ñ˜CÕ r   r,   )Ú__name__Ú
__module__Ú__qualname__Ústrr   r   r%   r*   r3   Úlistr=   rB   rF   rH   rJ   rL   rP   rR   rU   r#   r   r   r
   r
      s|   „ ñ
7 s¨T¡zó 
7ò,ò7òAòð Dó ð¨#ð ¸Có ò1ð°ó ðD°ð DÀ#ó Dò òó!r   r
   )r.   Útypingr   r   r   Ú
base_cacher   Úopentelemetry.tracer   Ú_Spanr
   r#   r   r   ú<module>r_      s3   ðÛ ß ,Ñ ,å !áÝ1à�3‰;�Dà€DôJ!�	õ J!r   