U
    #FZh^                     @  sX   d dl mZ d dlmZmZ d dlmZ d dlmZ erDd dlm	Z	 G dd deZ
dS )	    )annotations)datetimetimezone)TYPE_CHECKING)	BaseCache)Redisc                   @  sn   e Zd ZdddddZdddd	d
ZddddddddZdddddZddddZddddZdS )
RedisCachezRedis[bytes]None)connreturnc                 C  s
   || _ d S N)r
   )selfr
    r   f/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/cachecontrol/caches/redis_cache.py__init__   s    zRedisCache.__init__strzbytes | None)keyr   c                 C  s   | j |S r   )r
   getr   r   r   r   r   r      s    zRedisCache.getNbyteszint | datetime | None)r   valueexpiresr   c                 C  sv   |s| j || n^t|trbttj}|jd kr@|jd d}|| }| j 	|t
| | n| 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.delete)r   c                 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)N)	__name__
__module____qualname__r   r   r   r#   r%   r&   r   r   r   r   r      s    r   N)
__future__r   r   r   typingr   Zcachecontrol.cacher   Zredisr   r   r   r   r   r   <module>   s   