o
    KDi                     @  sP   d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 G dd deZ
dS )    )annotationsN)ABCabstractmethod)
ModuleType)Iterablec                   @  s   e Zd Zd-d	d
Zd.ddZeed/ddZed0ddZed1ddZ	ed2ddZ
ed3d4d d!Ze		"d5d6d&d'Zed7d(d)Zed8d*d+Zd,S )9MemcachedBridgeuristr
dependencyr   optionsfloat | str | boolreturnNonec                 K  s   || _ tj| j | _|| _g | _|| _| jj	 
dd }| jj	 |d  dD ]}|d\}}| j|t|f q,| jjrK| jj| jd< | jjrX| jj| jd< d S d S )N@   ,:usernamepassword)r   urllibparseurlparse
parsed_urir
   hostsr   netlocstripfindsplitappendintr   r   )selfr   r
   r   seplochostport r%   \/var/www/Datamplify/venv/lib/python3.10/site-packages/limits/aio/storage/memcached/bridge.py__init__   s   zMemcachedBridge.__init__keyc                 C  s   |d S )z
        Return the expiration key for the given counter key.

        Memcached doesn't natively return the expiration time or TTL for a given key,
        so we implement the expiration time on a separate key.
        z/expiresr%   r    r(   r%   r%   r&   _expiration_key!   s   zMemcachedBridge._expiration_key-type[Exception] | tuple[type[Exception], ...]c                 C  s   d S Nr%   r    r%   r%   r&   base_exceptions*   s   zMemcachedBridge.base_exceptionsr   c                      d S r,   r%   r)   r%   r%   r&   get0      zMemcachedBridge.getkeysIterable[str]dict[bytes, int]c                   r/   r,   r%   )r    r2   r%   r%   r&   get_many3   r1   zMemcachedBridge.get_manyc                   r/   r,   r%   r)   r%   r%   r&   clear6   r1   zMemcachedBridge.clearr   Famountnoreplyboolc                   r/   r,   r%   )r    r(   r7   r8   r%   r%   r&   decr9   r1   zMemcachedBridge.decrTexpiryfloatset_expiration_keyc                   r/   r,   r%   )r    r(   r;   r7   r=   r%   r%   r&   incr<   s   zMemcachedBridge.incrc                   r/   r,   r%   r)   r%   r%   r&   
get_expiryE   r1   zMemcachedBridge.get_expiryc                   r/   r,   r%   r-   r%   r%   r&   checkH   r1   zMemcachedBridge.checkN)r   r	   r
   r   r   r   r   r   )r(   r	   r   r	   )r   r+   )r(   r	   r   r   )r2   r3   r   r4   )r(   r	   r   r   )r   F)r(   r	   r7   r   r8   r9   r   r   )r   T)
r(   r	   r;   r<   r7   r   r=   r9   r   r   )r(   r	   r   r<   )r   r9   )__name__
__module____qualname__r'   r*   propertyr   r.   r0   r5   r6   r:   r>   r?   r@   r%   r%   r%   r&   r   
   s,    

	r   )
__future__r   r   abcr   r   typesr   limits.typingr   r   r%   r%   r%   r&   <module>   s    