Ë
    ±Œj£  ã                  ón   — d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 ddl
mZ erd dlZ G d„ d	e«      Zy)
é    )ÚannotationsN)Úceil)Ú
ModuleType)ÚTYPE_CHECKINGÚIterableé   )ÚMemcachedBridgec                  óž   ‡ — e Zd Z	 	 	 	 	 	 	 	 dˆ fd„Ze	 	 dd„«       Zdd„Zdd„Zdd„Zdd„Z	ddd„Z
	 d	 	 	 	 	 	 	 	 	 dd„Zdd	„Zdd
„Zˆ xZS )ÚMemcachioBridgec                ó6   •— t        ‰| �  ||fi |¤Ž d | _        y ©N)ÚsuperÚ__init__Ú_storage)ÚselfÚuriÚ
dependencyÚoptionsÚ	__class__s       €úp/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/limits/aio/storage/memcached/memcachio.pyr   zMemcachioBridge.__init__   s    ø€ ô 	‰Ñ˜˜jÑ4¨GÒ4Ø8<ˆ�ó    c                ó‚   — | j                   j                  j                  | j                   j                  j                  fS r   )r   ÚerrorsÚNoAvailableNodesÚMemcachioConnectionError)r   s    r   Úbase_exceptionszMemcachioBridge.base_exceptions   s4   € ð
 �O‰O×"Ñ"×3Ñ3Ø�O‰O×"Ñ"×;Ñ;ð
ð 	
r   c              ƒ  óø   K  — | j                   sK | j                  j                  | j                  D ��cg c]	  \  }}||f‘Œ c}}fi | j                  ¤Ž| _         | j                   sJ ‚| j                   S c c}}w ­wr   )r   r   ÚClientÚhostsr   )r   ÚhÚps      r   Úget_storagezMemcachioBridge.get_storage!   sl   è ø€ Ø�}Š}Ø2˜DŸO™O×2Ñ2Ø$(§J¢JÔ/¡J™D˜A˜q�!�Q’ JÒ/ñà—,‘,ñˆDŒMð �}Š}Ðˆ}Ø�}‰}Ðùó	 0ùs   ‚2A:´A4
Á8A:c              ƒ  ó€   K  — | j                  |g«      ƒ d {  –—† j                  |j                  d«      d«      S 7 Œ#­w)Núutf-8r   )Úget_manyÚgetÚencode©r   Úkeys     r   r&   zMemcachioBridge.get*   s3   è ø€ Ø—m‘m S EÓ*×*×/Ñ/°·
±
¸7Ó0CÀQÓGÐGÐ*ús   ‚>˜<™$>c              ƒ  ó*  K  —  | j                  «       ƒ d{  –—† j                  |D �cg c]  }|j                  d«      ‘Œ c}Ž ƒ d{  –—† }|j                  «       D ��ci c]  \  }}|t	        |j
                  «      “Œ c}}S 7 Œlc c}w 7 ŒBc c}}w ­w)zo
        Return multiple counters at once

        :param keys: the keys to get the counter values for
        Nr$   )r"   r&   r'   ÚitemsÚintÚvalue)r   ÚkeysÚkÚresultsÚvs        r   r%   zMemcachioBridge.get_many-   s…   è ø€ ð 7˜t×/Ñ/Ó1×1×6Ñ6Ù)-Ó.© Aˆa�h‰h�wÕ¨Ñ.ð
÷ 
ˆð -4¯M©M¬OÔ<©O¡D A q�”3�q—w‘w“<‘¨OÒ<Ð<ð 2úÚ.ð
úó =ùs>   ‚B—B˜B©BÁBÁBÁ	BÁ  BÂ BÂBÂBc              ƒ  ó�   K  — | j                  «       ƒ d {  –—† j                  |j                  d«      «      ƒ d {  –—†  y 7 Œ+7 Œ­w©Nr$   )r"   Údeleter'   r(   s     r   ÚclearzMemcachioBridge.clear8   s6   è ø€ Ø×%Ñ%Ó'×'×/Ñ/°·
±
¸7Ó0CÓD×DÑDÐ'øÐDús   ‚A–A—%A¼A½AÁAc              ƒ  ó¤   K  — | j                  «       ƒ d {  –—† }|j                  d«      }|j                  |||¬«      ƒ d {  –—† xs dS 7 Œ57 Œ
­w)Nr$   )Únoreplyr   )r"   r'   Údecr)r   r)   Úamountr7   ÚstorageÚ	limit_keys         r   r8   zMemcachioBridge.decr;   sK   è ø€ Ø×(Ñ(Ó*×*ˆØ—J‘J˜wÓ'ˆ	Ø—\‘\ )¨V¸W�\ÓE×EÒJÈÐJð +øàEús!   ‚A–A—,AÁAÁ	AÁAc              ƒ  ó¦  K  — | j                  «       ƒ d {  –—† }|j                  d«      }| j                  |«      j                  «       }|j                  ||«      ƒ d {  –—† x}€Ù| j                  «       ƒ d {  –—† }|j	                  ||› j                  «       t        |«      ¬«      ƒ d {  –—† rW|rS|j                  |t        |t        j                  «       z   «      j                  d«      t        |«      d¬«      ƒ d {  –—†  |S | j                  «       ƒ d {  –—† }|j                  ||«      ƒ d {  –—† xs |S |S 7 �Œ,7 Œä7 ŒÌ7 Œš7 ŒG7 Œ/7 Œ­w)Nr$   )ÚexpiryF)r=   r7   )	r"   r'   Ú_expiration_keyÚincrÚaddr   ÚsetÚstrÚtime)	r   r)   r=   r9   Úset_expiration_keyr:   r;   Ú
expire_keyr-   s	            r   r?   zMemcachioBridge.incr@   s3  è ø€ ð ×(Ñ(Ó*×*ˆØ—J‘J˜wÓ'ˆ	Ø×)Ñ)¨#Ó.×5Ñ5Ó7ˆ
Ø#ŸL™L¨°FÓ;×;Ð<ˆEÐEØ ×,Ñ,Ó.×.ˆGØ—[‘[ ¨v¨h×,>Ñ,>Ó,@ÌÈfË�[ÓV×VÐVÙ%Ø!Ÿ+™+Ø"Ü˜F¤T§Y¡Y£[Ñ0Ó1×8Ñ8¸ÓAÜ# F›|Ø %ð	 &ó ÷ ð ð �à $× 0Ñ 0Ó 2×2�Ø$Ÿ\™\¨)°VÓ<×<ÒFÀÐFØˆð# +ùð <øØ.øØVøðøð 3øØ<ús}   ‚E–E—A	EÁ EÁ!EÁ:EÁ;3EÂ.E	Â/AEÄEÄEÄEÄEÄ7EÄ8EÅEÅEÅ	EÅEÅEÅEc              ƒ  ó2  K  — | j                  «       ƒ d {  –—† }| j                  |«      j                  d«      }|j                  |«      ƒ d {  –—† j                  |d «      }|xr t	        |j
                  «      xs t        j                  «       S 7 Œ|7 ŒE­wr3   )r"   r>   r'   r&   Úfloatr-   rC   )r   r)   r:   Úexpiration_keyÚitems        r   Ú
get_expiryzMemcachioBridge.get_expiryV   sx   è ø€ Ø×(Ñ(Ó*×*ˆØ×-Ñ-¨cÓ2×9Ñ9¸'ÓBˆØ—k‘k .Ó1×1×6Ñ6°~ÀtÓLˆàÒ)œ˜dŸj™jÓ)Ò8¬T¯Y©Y«[Ð8ð	 +øà1ús"   ‚B–B—8BÁBÁABÂBc              ƒ  ó†   K  — 	 | j                  «       ƒ d{  –—† }|j                  d«      ƒ d{  –—†  y7 Œ7 Œ#  Y yxY w­w)zq
        Check if storage is healthy by calling the ``get`` command
        on the key ``limiter-check``
        Ns   limiter-checkTF)r"   r&   )r   r:   s     r   ÚcheckzMemcachioBridge.check]   sD   è ø€ ð
	Ø ×,Ñ,Ó.×.ˆGØ—+‘+Ð.Ó/×/Ð/àð /øØ/ùð	Ùüs/   ‚A„: —6˜: °8±: µA¶: ¸: º>¼A)r   rB   r   r   r   zfloat | str | boolÚreturnÚNone)rM   z-type[Exception] | tuple[type[Exception], ...])rM   zmemcachio.Client[bytes])r)   rB   rM   r,   )r.   zIterable[str]rM   zdict[bytes, int])r)   rB   rM   rN   )r   F)r)   rB   r9   r,   r7   ÚboolrM   r,   )r   T)
r)   rB   r=   rG   r9   r,   rD   rO   rM   r,   )r)   rB   rM   rG   )rM   rO   )Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr   r"   r&   r%   r5   r8   r?   rJ   rL   Ú__classcell__)r   s   @r   r   r      s¤   ø„ ð=àð=ð ð=ð &ð	=ð
 
õ=ð ð
à	6ò
ó ð
óóHó	=óEôKð TXðØðØ %ðØ/2ðØLPðà	óó,9÷r   r   )Ú
__future__r   rC   Úmathr   Útypesr   Útypingr   r   Úbridger	   Ú	memcachior   © r   r   Ú<module>r\      s+   ðÝ "ã Ý Ý ß *å #áÛôZ�oõ Zr   