o
    ÖèFh^  ã                   @  sX   d dl mZ d dlmZmZ d dlmZ d dlmZ er"d dlm	Z	 G dd„ deƒZ
dS )	é    )Úannotations)ÚdatetimeÚtimezone)ÚTYPE_CHECKING)Ú	BaseCache)ÚRedisc                   @  sL   e Zd Zddd„Zdd
d„Z	dddd„Zddd„Zddd„Zddd„ZdS )Ú
RedisCacheÚconnúRedis[bytes]ÚreturnÚNonec                 C  s
   || _ d S ©N)r	   )Úselfr	   © r   úX/var/www/html/loop/nvenv/lib/python3.10/site-packages/cachecontrol/caches/redis_cache.pyÚ__init__   s   
zRedisCache.__init__ÚkeyÚstrúbytes | Nonec                 C  s   | j  |¡S r   )r	   Úget©r   r   r   r   r   r      s   zRedisCache.getNÚvalueÚbytesÚexpiresúint | datetime | Nonec                 C  sz   |s| j  ||¡ d S t|tƒr3t tj¡}|jd u r!|jd d�}|| }| j  	|t
| ¡ ƒ|¡ d S | j  	|||¡ d S )N)Útzinfo)r	   ÚsetÚ
isinstancer   Únowr   Úutcr   ÚreplaceÚsetexÚintÚtotal_seconds)r   r   r   r   Únow_utcÚdeltar   r   r   r      s   

zRedisCache.setc                 C  s   | j  |¡ d S r   )r	   Údeleter   r   r   r   r&   %   s   zRedisCache.deletec                 C  s    | j  ¡ D ]}| j  |¡ qdS )zIHelper for clearing all the keys in a database. Use with
        caution!N)r	   Úkeysr&   r   r   r   r   Úclear(   s   ÿzRedisCache.clearc                 C  s   dS )z?Redis uses connection pooling, no need to close the connection.Nr   )r   r   r   r   Úclose.   s   zRedisCache.close)r	   r
   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   )	Ú__name__Ú
__module__Ú__qualname__r   r   r   r&   r(   r)   r   r   r   r   r      s    

ÿ

r   N)Ú
__future__r   r   r   Útypingr   Úcachecontrol.cacher   Úredisr   r   r   r   r   r   Ú<module>   s   