HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/redis/__pycache__/retry.cpython-310.pyc
o

$we�@s6ddlZddlmZddlmZmZGdd�d�ZdS)�N)�sleep)�ConnectionError�TimeoutErrorc@s:eZdZdZeeejffdd�Zde	fdd�Z
dd�Zd	S)
�Retryz0Retry a specific number of times after a failurecCs||_||_||_dS)a'
        Initialize a `Retry` object with a `Backoff` object
        that retries a maximum of `retries` times.
        `retries` can be negative to retry forever.
        You can specify the types of supported errors which trigger
        a retry with the `supported_errors` parameter.
        N)�_backoff�_retries�_supported_errors)�self�backoff�retries�supported_errors�r
�D/home/arjun/projects/env/lib/python3.10/site-packages/redis/retry.py�__init__
s

zRetry.__init__�specified_errorscCstt|jt|���|_dS)zM
        Updates the supported errors with the specified error types
        N)�tuple�setr)r	rr
r
r�update_supported_errorss
�zRetry.update_supported_errorsc
Cs�|j��d}	z|�WS|jyA}z(|d7}||�|jdkr)||jkr)|�|j�|�}|dkr7t|�WYd}~nd}~wwq)a&
        Execute an operation that might fail and returns its result, or
        raise the exception that was thrown depending on the `Backoff` object.
        `do`: the operation to call. Expects no argument.
        `fail`: the failure handler, expects the last error that was thrown
        rT�N)r�resetrr�computer)r	�do�fail�failures�errorr
r
r
r�call_with_retry#s 
���zRetry.call_with_retryN)�__name__�
__module__�__qualname__�__doc__rr�socket�timeoutr�listrrr
r
r
rrs

�r)r �timer�redis.exceptionsrrrr
r
r
r�<module>s