�
J�g� � � � d dl mZ d dlmZmZmZmZmZmZm Z d dl
mZmZm
Z
erd dlmZ e d� � Z G d� d� � ZdS ) � )�sleep)�
TYPE_CHECKING�Any� Awaitable�Callable�Tuple�Type�TypeVar)�ConnectionError�
RedisError�TimeoutError)�AbstractBackoff�Tc � � e Zd ZdZdZeeffdddedee e
df fd�Zd efd
�Z
deg ee f dee
gef d
efd�ZdS )�Retryz0Retry a specific number of times after a failure��_backoff�_retries�_supported_errors�backoffr �retries�supported_errors.c �0 � || _ || _ || _ 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 )�selfr r r s �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/redis/asyncio/retry.py�__init__zRetry.__init__ s � � ��
���
�!1����� �specified_errorsc �r � t t | j t |� � z � � � � | _ dS )zM
Updates the supported errors with the specified error types
N)�tuple�setr )r r s r �update_supported_errorszRetry.update_supported_errors&