B
    uf^                 @  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   a/home/ankuromar296_gmail_com/myenv/lib/python3.7/site-packages/cachecontrol/caches/redis_cache.py__init__   s    zRedisCache.__init__strzbytes | None)keyr   c             C  s   | j |S )N)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   Znow_utcdeltar   r   r   r      s    

zRedisCache.setc             C  s   | j | d S )N)r
   delete)r   r   r   r   r   r    %   s    zRedisCache.delete)r   c             C  s$   x| j  D ]}| j | qW dS )zIHelper for clearing all the keys in a database. Use with
        caution!N)r
   keysr    )r   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   