
    hj                    ^    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e      Z
y)	    )annotations)datetimetimezone)TYPE_CHECKING)	BaseCache)Redisc                  N    e Zd ZddZd	dZ	 d
	 	 	 	 	 	 	 ddZddZddZddZy)
RedisCachec                    || _         y N)conn)selfr   s     TD:\EasyAligner\venv\Lib\site-packages\pip/_vendor/cachecontrol/caches/redis_cache.py__init__zRedisCache.__init__   s	    	    c                8    | j                   j                  |      S r   )r   getr   keys     r   r   zRedisCache.get   s    yy}}S!!r   Nc                   |s| j                   j                  ||       y t        |t              r{t        j                  t
        j                        }|j                  |j                  d       }||z
  }| j                   j                  |t        |j                               |       y | j                   j                  |||       y )N)tzinfo)r   set
isinstancer   nowr   utcr   replacesetexinttotal_seconds)r   r   valueexpiresnow_utcdeltas         r   r   zRedisCache.set   s     IIMM#u%*ll8<<0G~~%!///6g%EIIOOCU%8%8%:!;UCIIOOC%0r   c                :    | j                   j                  |       y r   )r   deleter   s     r   r%   zRedisCache.delete%   s    		r   c                x    | j                   j                         D ]  }| j                   j                  |        y)zIHelper for clearing all the keys in a database. Use with
        caution!N)r   keysr%   r   s     r   clearzRedisCache.clear(   s+     99>>#CIIS! $r   c                     y)z?Redis uses connection pooling, no need to close the connection.N )r   s    r   closezRedisCache.close.   s    r   )r   zRedis[bytes]returnNone)r   strr,   zbytes | Noner   )r   r.   r    bytesr!   zint | datetime | Noner,   r-   )r   r.   r,   r-   )r,   r-   )	__name__
__module____qualname__r   r   r   r%   r(   r+   r*   r   r   r
   r
      sG    " HL11$1/D1	1"r   r
   N)
__future__r   r   r   typingr   pip._vendor.cachecontrol.cacher   redisr   r
   r*   r   r   <module>r7      s'    # (   4   r   