a
    a*j                     @  sd   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	m
Z
mZ d dlmZ G dd deZdS )	    )annotationsN)ABCabstractmethod)
ModuleType)OptionalTypeUnion)get_package_datac                	   @  s  e Zd ZdZdZee dZee dZee dZee dZ	ee dZ
ee dZd	d
ddddZd	d	dddZeddddZeddddddddZedddddZeddddd Zeed!dd"d#ZedGd	d&dd&d&d'd(d)Zed	d&dd*d+Zed	ddd,d-Zed	d&d&d.d/d0d1Zed	d	d&d2d3d4d5ZedHd	d&d&d&dd6d7d8ZedId	d	d&d&d&dd9d:d;Zed	d<dd=d>Zeddd?d@ZedAddBdCZedAddDdEZdFS )JRedisBridgeZLIMITSzresources/redis/lua_scriptsz/moving_window.luaz/acquire_moving_window.luaz/clear_keys.luaz/incr_expire.luaz/sliding_window.luaz/acquire_sliding_window.luastrr   None)uri
dependencyreturnc                 C  sR   || _ tj| j | _|| _i | _| jjr8| jj| jd< | jjrN| jj| jd< d S )Nusernamepassword)	r   urllibparseurlparseZ
parsed_urir   Zparsed_authr   r   )selfr   r    r   [/var/www/html/assistant/venv/lib/python3.9/site-packages/limits/aio/storage/redis/bridge.py__init__   s    zRedisBridge.__init__)keyr   c                 C  s   | j  d| S )N:)PREFIXr   r   r   r   r   prefixed_key(   s    zRedisBridge.prefixed_key)r   c                 C  s   d S Nr   r   r   r   r   register_scripts+   s    zRedisBridge.register_scriptszOptional[str]boolz,Optional[dict[str, Union[str, float, bool]]]zUnion[str, float, bool])service_nameuse_replicassentinel_kwargsoptionsr   c                 K  s   d S r   r   )r   r"   r#   r$   r%   r   r   r   use_sentinel.   s    zRedisBridge.use_sentinel)r%   r   c                 K  s   d S r   r   r   r%   r   r   r   	use_basic7   s    zRedisBridge.use_basicc                 K  s   d S r   r   r'   r   r   r   use_cluster:   s    zRedisBridge.use_clusterz3Union[Type[Exception], tuple[Type[Exception], ...]]c                 C  s   d S r   r   r   r   r   r   base_exceptions=   s    zRedisBridge.base_exceptionsF   int)r   expiryelastic_expiryamountr   c                   s   d S r   r   )r   r   r-   r.   r/   r   r   r   incrC   s    zRedisBridge.incrc                   s   d S r   r   r   r   r   r   getL   s    zRedisBridge.getc                   s   d S r   r   r   r   r   r   clearO   s    zRedisBridge.clearztuple[float, int])r   limitr-   r   c                   s   d S r   r   )r   r   r3   r-   r   r   r   get_moving_windowR   s    zRedisBridge.get_moving_windowztuple[int, float, int, float])previous_keycurrent_keyr-   r   c                   s   d S r   r   )r   r5   r6   r-   r   r   r   get_sliding_windowW   s    zRedisBridge.get_sliding_window)r   r3   r-   r/   r   c                   s   d S r   r   )r   r   r3   r-   r/   r   r   r   acquire_entry\   s    zRedisBridge.acquire_entry)r5   r6   r3   r-   r/   r   c                   s   d S r   r   )r   r5   r6   r3   r-   r/   r   r   r   acquire_sliding_window_entrye   s    z(RedisBridge.acquire_sliding_window_entryfloatc                   s   d S r   r   r   r   r   r   
get_expiryo   s    zRedisBridge.get_expiryc                   s   d S r   r   r   r   r   r   checkr   s    zRedisBridge.checkzOptional[int]c                   s   d S r   r   r   r   r   r   resetu   s    zRedisBridge.resetc                   s   d S r   r   r   r   r   r   	lua_resetx   s    zRedisBridge.lua_resetN)Fr+   )r+   )r+   ) __name__
__module____qualname__r   ZRES_DIRr	   ZSCRIPT_MOVING_WINDOWZSCRIPT_ACQUIRE_MOVING_WINDOWZSCRIPT_CLEAR_KEYSZSCRIPT_INCR_EXPIREZSCRIPT_SLIDING_WINDOWZSCRIPT_ACQUIRE_SLIDING_WINDOWr   r   r   r    r&   r(   r)   propertyr*   r0   r1   r2   r4   r7   r8   r9   r;   r<   r=   r>   r   r   r   r   r
      sf       	r
   )
__future__r   r   abcr   r   typesr   Zlimits.typingr   r   r   Zlimits.utilr	   r
   r   r   r   r   <module>   s   