File: //lib/python3.6/site-packages/redis/__pycache__/_compat.cpython-36.pyc
3
be�^B � @ sr d Z ddlZddlZddlZdd� Zdd� Zdd� Zejd d k s^ejd d kr�ejd
dk r�ddlZdd
� Z dd� Z
dd� Zndd� Z
dd� Zejd d k �rddlZyddl
mZ W n$ ek
r� G dd� de�ZY nX d5Zdd� Zee
�Z
ee�Zee�Zee�Zee�Zejd d k �r�ddlmZ ddlmZmZ ddlmZmZ ddlmZ dd lmZ d!d"� Zd#d$� Z d%d&� Z!d'd(� Z"d)d*� Z#d+d,� Z$e%Z%e&Z&e'Z'e(Z(e)Z)ej*Z+nxdd-l,mZmZmZ dd.lmZ dd l-mZ d/d$� Z d0d&� Z!d1d(� Z"d2d*� Z#d3d"� Ze$Z$e.Z%e/Ze0Ze1Z&e2Z'e2Z(e3Z)e+Z+ydd4l-m4Z4m5Z5m6Z6 W n* ek
�rl dd4lm4Z4m5Z5m6Z6 Y nX dS )6z5Internal module for Python 2 backwards compatibility.� Nc O s | j ||�S )N)�sendall)�sock�args�kwargs� r �/usr/lib/python3.6/_compat.pyr s r c O s | j ||�S )N)�shutdown)r r r r r r r s r c O s | j |f|�|�S )N)Zwrap_socket)�contextr r r r r r �ssl_wrap_socket s r
� � � c O s� d\}}d}y| j � }W n tk
r, Y nX |r>tj� | }z�x�|rx|rxtj� }||krjtjtjd��n| j|| � yd}|||�S tjk
r� } z|jd tj kr�wB� W Y d d }~X qBX qBW W d |r�| j|� X d S )N� Fz timed outTr )Nr )
Z
gettimeout�AttributeError�time�socket�error�errnoZEWOULDBLOCKZ
settimeoutr ZEINTR) �s�funcr r �timeoutZdeadlineZ attemptedZnow�er r r �_retryable_call s0
r c O s t | | jf|�|�S )N)r �recv)r r r r r r r @ s r c O s t | | jf|�|�S )N)r � recv_into)r r r r r r r C s r c O s | j ||�S )N)r )r r r r r r r G s c O s | j ||�S )N)r )r r r r r r r J s )�SSLErrorc @ s e Zd ZdZdS )� _SSLErrorz4A replacement in case ssl.SSLError is not available.N)�__name__�
__module__�__qualname__�__doc__r r r r r V s r �!The handshake operation timed out�The read operation timed out�The write operation timed outc s t j� �� fdd��}|S )Nc sv y
�| |�S t k
rp } zJt|j�dkr8t|jd �p:d� t� fdd�tD ��r^tj|j� �� W Y d d }~X nX d S )Nr r � c 3 s | ]}|� kV qd S )Nr )�.0�x)�messager r � <genexpr>g s z7_handle_ssl_timeout.<locals>.wrapper.<locals>.<genexpr>)r �lenr �unicode�any�_EXPECTED_SSL_TIMEOUT_MESSAGESr r )r r r )r )r'