
    5j                    x    S SK Jr  S SKrS SKJr  S SKJr  S SKJrJ	r	  SSK
Jr  \(       a  S SKr " S S	\5      rg)
    )annotationsN)ceil)
ModuleType)TYPE_CHECKINGIterable   )MemcachedBridgec                     ^  \ rS rSr        SU 4S jjrSS jrSS jrSS jrSS jrSSS jjr	 S         SS jjr
SS	 jr\  SS
 j5       rSS jrSrU =r$ )EmcacheBridge   c                6   > [         TU ]  " X40 UD6  S U l        g N)super__init___storage)selfuri
dependencyoptions	__class__s       c/root/lseg-credit/backend/venv/lib/python3.13/site-packages/limits/aio/storage/memcached/emcache.pyr   EmcacheBridge.__init__   s     	4G4    c           
     R  #    U R                   (       dl  U R                  R                  " U R                   VVs/ s H   u  pU R                  R	                  X5      PM"     snn40 U R
                  D6I S h  vN U l         U R                   (       d   eU R                   $ s  snnf  N.7fr   )r   r   create_clienthostsMemcachedHostAddressr   )r   hps      r   get_storageEmcacheBridge.get_storage   s}     }}"&//"?"?HL

S
55a;
S#,,# DM }}}}}	 Ts   7B''B
 B'6B%7/B'c                   #    U R                  5       I S h  vN R                  UR                  S5      5      I S h  vN nU=(       a    [        UR                  5      =(       d    S$  NQ N-7fNutf-8r   )r    getencodeintvalue)r   keyitems      r   r%   EmcacheBridge.get"   sM      ,,..33CJJw4GHH'DJJ,1, /Hs   A,A(%A,A*,A,*A,c                F  #    U R                  5       I S h  vN R                  U Vs/ s H  o"R                  S5      PM     sn5      I S h  vN nUR                  5        VVs0 s H#  u  p$X$(       a  [	        UR
                  5      OS_M%     snn$  N{s  snf  NLs  snnf 7fr#   )r    get_manyr&   itemsr'   r(   )r   keyskresultsr*   s        r   r-   EmcacheBridge.get_many&   s     #//11;;(,-1XXg-
 
 BIQgad3tzz?1QQ 2-
 Rs>   B!BB!B
B!BB!$*BB!B!B!c                   #     U R                  5       I S h  vN R                  UR                  S5      5      I S h  vN   g  N+ N! U R                  R                   a     g f = f7fNr$   )r    deleter&   r   NotFoundCommandError)r   r)   s     r   clearEmcacheBridge.clear,   sT     	))++33CJJw4GHHH+H33 		sH   A'A A%A AA A'A A A$!A'#A$$A'c                   #    U R                  5       I S h  vN nUR                  S5      n UR                  XRUS9I S h  vN =(       d    SnU$  N9 N! U R                  R                   a    Sn U$ f = f7f)Nr$   )noreplyr   )r    r&   	decrementr   r6   )r   r)   amountr:   storage	limit_keyr(   s          r   decrEmcacheBridge.decr2   s{     ((**JJw'		!++Iw+OOTSTE  + P33 	E	sD   A7AA7A  AA A7A A40A73A44A7c           	     4  #    U R                  5       I S h  vN nUR                  S5      nU R                  U5      R                  5       n UR                  Xc5      I S h  vN =(       d    U$  NW N! U R                  R
                   Ga    U R                  5       I S h  vN  n UR                  Xc R                  5       [        U5      S9I S h  vN    U(       aR  UR                  U[        U[        R                  " 5       -   5      R                  S5      [        U5      SS9I S h  vN    UnO\! U R                  R                   a?    U R                  5       I S h  vN  nUR                  Xc5      I S h  vN  =(       d    Un Of = fUs $ f = f7f)Nr$   )exptimeF)rB   r:   )r    r&   _expiration_key	incrementr   r6   addr   setstrtimeNotStoredStorageCommandError)	r   r)   expiryr<   set_expiration_keyr=   r>   
expire_keyr(   s	            r   incrEmcacheBridge.incr;   s`     ((**JJw'	))#.557
	 **9==GG	 + >33 	 ,,...GMkk)x-?-?-A4PV<kXXX%!++"FTYY[0188A $V %	 &    ???? M $ 0 0 222%//	BBBLfM L!	s   FA.4FA2  A0!A2 -F0A2 2.F B#!F'+D4CAD4+D.,D43F4-F!E$"F;E><F
FFFFFFc                $  #    U R                  5       I S h  vN nUR                  U R                  U5      R                  S5      5      I S h  vN nU=(       a    [	        UR
                  5      =(       d    [        R                  " 5       $  Nu N@7fr4   )r    r%   rC   r&   floatr(   rH   )r   r)   r=   r*   s       r   
get_expiryEmcacheBridge.get_expiryU   sd     ((**[[!5!5c!:!A!A'!JKK)djj)8TYY[8 +Ks!   BB6BB?BBc                Z    U R                   R                  U R                   R                  4$ r   )r   ClusterNoAvailableNodesCommandError)r   s    r   base_exceptionsEmcacheBridge.base_exceptions\   s(    
 OO33OO((
 	
r   c                   #     U R                  5       I Sh  vN nUR                  S5      I Sh  vN   g N N!    g= f7f)zY
Check if storage is healthy by calling the ``get`` command
on the key ``limiter-check``
Ns   limiter-checkTF)r    r%   )r   r=   s     r   checkEmcacheBridge.checke   sB     
	 ,,..G++./// //	s/   A: 6: 8: A: : >A)r   )r   rG   r   r   r   zfloat | str | boolreturnNone)r[   zemcache.Client)r)   rG   r[   r'   )r/   zIterable[str]r[   zdict[bytes, int])r)   rG   r[   r\   )r   F)r)   rG   r<   r'   r:   boolr[   r'   )r   T)
r)   rG   rJ   rP   r<   r'   rK   r]   r[   r'   )r)   rG   r[   rP   )r[   z-type[Exception] | tuple[type[Exception], ...])r[   r]   )__name__
__module____qualname____firstlineno__r   r    r%   r-   r7   r?   rM   rQ   propertyrV   rY   __static_attributes____classcell__)r   s   @r   r   r      s      &	
 
-R TX %/2LP	4 
	6
 
 r   r   )
__future__r   rH   mathr   typesr   limits.typingr   r   bridger	   emcacher    r   r   <module>rl      s+    "    1 #aO ar   