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/lib/python3.10/site-packages/redis/__pycache__/backoff.cpython-310.pyc
o

$we��@s�ddlZddlmZmZdZdZGdd�de�ZGdd�de�ZGd	d
�d
e�ZGdd�de�Z	Gd
d�de�Z
Gdd�de�ZGdd�de�Zdd�Z
dS)�N)�ABC�abstractmethodg����Mb�?g����Mb�?c@s$eZdZdZdd�Zedd��ZdS)�AbstractBackoffzBackoff interfacecC�dS)z�
        Reset internal state before an operation.
        `reset` is called once at the beginning of
        every call to `Retry.call_with_retry`
        N���selfrr�F/home/arjun/projects/env/lib/python3.10/site-packages/redis/backoff.py�reset
szAbstractBackoff.resetcCr)z'Compute backoff in seconds upon failureNr�r�failuresrrr	�computeszAbstractBackoff.computeN)�__name__�
__module__�__qualname__�__doc__r
rr
rrrr	r
s
rc@s eZdZdZdd�Zdd�ZdS)�ConstantBackoffzConstant backoff upon failurecCs
||_dS)z"`backoff`: backoff time in secondsN��_backoff)r�backoffrrr	�__init__s
zConstantBackoff.__init__cCs|jS�Nrrrrr	r
"�zConstantBackoff.computeN)rrrrrr
rrrr	rsrcs eZdZdZ�fdd�Z�ZS)�	NoBackoffzNo backoff upon failurecst��d�dS�Nr)�superrr��	__class__rr	r)szNoBackoff.__init__)rrrrr�
__classcell__rrrr	r&src@�&eZdZdZeefdd�Zdd�ZdS)�ExponentialBackoffz Exponential backoff upon failurecC�||_||_dS��e
        `cap`: maximum backoff time in seconds
        `base`: base backoff time in seconds
        N��_cap�_base�r�cap�baserrr	r0�
zExponentialBackoff.__init__cCst|j|jd|�S)N�)�minr%r&rrrr	r
8szExponentialBackoff.computeN�rrrr�DEFAULT_CAP�DEFAULT_BASErr
rrrr	r -�r c@r)�FullJitterBackoffz Full jitter backoff upon failurecCr!r"r$r'rrr	r?r*zFullJitterBackoff.__init__cCst�dt|j|jd|��S)Nrr+)�random�uniformr,r%r&rrrr	r
GszFullJitterBackoff.computeNr-rrrr	r1<r0r1c@r)�EqualJitterBackoffz!Equal jitter backoff upon failurecCr!r"r$r'rrr	rNr*zEqualJitterBackoff.__init__cCs*t|j|jd|�d}|t�d|�S)Nr+r)r,r%r&r2r3)rr�temprrr	r
VszEqualJitterBackoff.computeNr-rrrr	r4Kr0r4c@s.eZdZdZeefdd�Zdd�Zdd�ZdS)	�DecorrelatedJitterBackoffz(Decorrelated jitter backoff upon failurecCs||_||_d|_dS)r#rN)r%r&�_previous_backoffr'rrr	r^s
z"DecorrelatedJitterBackoff.__init__cCs
d|_dSr)r7rrrr	r
gs
zDecorrelatedJitterBackoff.resetcCs4t|j|jd�}t�|j|�}t|j|�|_|jS)N�)�maxr&r7r2r3r,r%)rr�max_backoffr5rrr	r
jsz!DecorrelatedJitterBackoff.computeN)	rrrrr.r/rr
r
rrrr	r6[s
	r6cCst�Sr)r4rrrr	�default_backoffqrr;)r2�abcrrr.r/rrrr r1r4r6r;rrrr	�<module>s