HEX
Server: LiteSpeed
System: Linux ws4.angoweb.net 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: tswangoe (2287)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
Upload Files
File: //proc/self/root/usr/lib/python3.9/site-packages/redis/asyncio/__pycache__/retry.cpython-39.pyc
a

��b��@snddlmZddlmZmZmZmZmZmZm	Z	ddl
mZmZm
Z
erTddlmZe	d�ZGdd�d�ZdS)	�)�sleep)�
TYPE_CHECKING�Any�	Awaitable�Callable�Tuple�Type�TypeVar)�ConnectionError�
RedisError�TimeoutError)�AbstractBackoff�Tc@sbeZdZdZdZeeffdeee	e
dfd�dd�Zege
efee
gefed�d	d
�ZdS)�Retryz0Retry a specific number of times after a failure��_backoff�_retries�_supported_errorsr
.)�backoff�retries�supported_errorscCs||_||_||_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.
        Nr)�selfrrr�r�7/usr/lib/python3.9/site-packages/redis/asyncio/retry.py�__init__szRetry.__init__)�do�fail�returnc
�s�|j��d}z|�IdHWS|jy�}z\|d7}||�IdH|jdkr\||jkr\|�|j�|�}|dkr~t|�IdHWYd}~qd}~00qdS)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
        rN�)r�resetrrZcomputer)rrrZfailures�errorrrrr�call_with_retry&s	
zRetry.call_with_retryN)�__name__�
__module__�__qualname__�__doc__�	__slots__r
r�intrrrrrrrrr!rrrrr
s����rN)Zasyncior�typingrrrrrrr	Zredis.exceptionsr
rrZ
redis.backoffr
rrrrrr�<module>s$