a
    xdB                     @   sn  d Z ddlZddlZddlZdd Zdd Zdd Zejd d	k s^ejd d	krejd
 dk rddlZdd Z	dd Z
dd Zndd Z
dd Zejd d	k rddlZzddlmZ W n" ey   G dd deZY n0 dZdd Zee
Z
eeZeeZeeZeeZejd d	k rddlmZ ddlmZmZ ddlmZmZ ddlmZ ddlmZ dd  Zd!d" Z d#d$ Z!d%d& Z"d'd( Z#d)d* Z$e%Z%e&Z&e'Z'e(Z(e)Z)ej*Z+nxdd+l,mZmZmZ dd,lmZ ddl-mZ d-d" Z d.d$ Z!d/d& Z"d0d( Z#d1d  Ze$Z$e.Z%e/Ze0Ze1Z&e2Z'e2Z(e3Z)e+Z+zdd2l-m4Z4m5Z5m6Z6 W n( eyh   dd2lm4Z4m5Z5m6Z6 Y n0 dS )3z5Internal module for Python 2 backwards compatibility.    Nc                 O   s   | j |i |S N)sendallsockargskwargs r   E/var/www/html/Ranjet/env/lib/python3.9/site-packages/redis/_compat.pyr      s    r   c                 O   s   | j |i |S r   )shutdownr   r   r   r	   r
      s    r
   c                 O   s   | j |g|R i |S r   )wrap_socket)contextr   r   r   r   r   r	   ssl_wrap_socket   s    r            c           	   
   O   s  d\}}d}z|   }W n ty*   Y n0 |r<t | }z|rt|rtt }||krfttjdn| ||  z$d}||i |W W |r| | S  tjy } z*|jd tj	krW Y d }~q> W Y d }~q>d }~0 0 q>W |r| | n|r| | 0 d S )N)Ng        Fz	timed outTr   )

gettimeoutAttributeErrortimesocketerrorerrnoEWOULDBLOCK
settimeoutr   ZEINTR)	sfuncr   r   timeoutdeadlineZ	attemptednower   r   r	   _retryable_call   s8    
r   c                 O   s   t | | jg|R i |S r   )r   recvr   r   r   r	   r    @   s    r    c                 O   s   t | | jg|R i |S r   )r   	recv_intor   r   r   r	   r!   C   s    r!   c                 O   s   | j |i |S r   )r    r   r   r   r	   r    G   s    c                 O   s   | j |i |S r   )r!   r   r   r   r	   r!   J   s    )SSLErrorc                   @   s   e Zd ZdZdS )	_SSLErrorz4A replacement in case ssl.SSLError is not available.N)__name__
__module____qualname____doc__r   r   r   r	   r#   V   s   r#   )z!The handshake operation timed outzThe read operation timed outzThe write operation timed outc                    s   t   fdd}|S )Nc               
      s~   z| i |W S  t yx } zPt|jdkr<t|jd p>d t fddtD rbtj|j  W Y d }~n
d }~0 0 d S )Nr   r    c                 3   s   | ]}| v V  qd S r   r   ).0xmessager   r	   	<genexpr>g       z7_handle_ssl_timeout.<locals>.wrapper.<locals>.<genexpr>)r#   lenr   unicodeany_EXPECTED_SSL_TIMEOUT_MESSAGESr   r   )r   r   r   r   r+   r	   wrappera   s     z$_handle_ssl_timeout.<locals>.wrapper)	functoolswraps)r   r4   r   r3   r	   _handle_ssl_timeout`   s    	r7   )unquote)parse_qsurlparse)imapizip)letters)Queuec                 G   s@   zt | g|R  W S  ty:   t| d}t | Y S 0 dS )z* return the unicode representation of obj Zstring_escapeN)r0   UnicodeDecodeErrorstrencode)objr   Z
ascii_textr   r   r	   safe_unicode{   s
    rC   c                 C   s   |   S r   )	iteritemsr*   r   r   r	   rD      s    rD   c                 C   s   |   S r   )iterkeysrE   r   r   r	   rF      s    rF   c                 C   s   |   S r   )
itervaluesrE   r   r   r	   rG      s    rG   c                 C   s   t | tr| S | ddS Nzutf-8replace)
isinstancer@   rA   rE   r   r   r	   	nativestr   s    rK   c                 C   s   |   S r   )nextrE   r   r   r	   rL      s    rL   )r9   r8   r:   )ascii_lettersc                 C   s   t |  S r   )iteritemsrE   r   r   r	   rD      s    c                 C   s   t |  S r   )rN   keysrE   r   r   r	   rF      s    c                 C   s   t |  S r   )rN   valuesrE   r   r   r	   rG      s    c                 C   s   t | tr| S | ddS rH   )rJ   r@   decoderE   r   r   r	   rK      s    c                 C   s   t | tr| dd} t| S rH   )rJ   bytesrR   r@   )valuer   r   r	   rC      s    
)	LifoQueueEmptyFull)7r'   r   r   sysr   r
   r   version_infor   r   r    r!   r5   sslr"   r#   ImportError	Exceptionr2   r7   urllibr8   r:   r9   	itertoolsr;   r<   stringr=   rM   r>   rC   rD   rF   rG   rK   rL   unichrxrange
basestringr0   longr   BlockingIOErrorurllib.parsequeuechrmapzipranger@   intrU   rV   rW   r   r   r   r	   <module>   s   %
	