a
    ǏPf                     @   s   d dl Z d dlZd dlmZ ejr6d dlZd dlmZ G dd de jZej	eej
dgef f ZG dd deZG d	d
 d
eZG dd deZe ZG dd deZG dd deZG dd deZdS )    N)_utils)RetryCallStatec                   @   sF   e Zd ZdZejdedddZd dddd	Zd d
dddZ	dS )	stop_basez(Abstract base class for stop strategies.r   retry_statereturnc                 C   s   d S N selfr   r	   r	   Z/var/www/html/python-backend/venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py__call__   s    zstop_base.__call__stop_all)otherr   c                 C   s
   t | |S r   )r   r   r   r	   r	   r   __and__"   s    zstop_base.__and__stop_anyc                 C   s
   t | |S r   )r   r   r	   r	   r   __or__%   s    zstop_base.__or__N)
__name__
__module____qualname____doc__abcabstractmethodboolr   r   r   r	   r	   r	   r   r      s
   r   r   c                   @   s0   e Zd ZdZeddddZdeddd	ZdS )
r   z+Stop if any of the stop condition is valid.Nstopsr   c                 G   s
   || _ d S r   r   r   r   r	   r	   r   __init__/   s    zstop_any.__init__r   r   c                    s   t  fdd| jD S )Nc                 3   s   | ]}| V  qd S r   r	   .0xr   r	   r   	<genexpr>3       z$stop_any.__call__.<locals>.<genexpr>)anyr   r
   r	   r#   r   r   2   s    zstop_any.__call__r   r   r   r   r   r   r   r   r	   r	   r	   r   r   ,   s   r   c                   @   s0   e Zd ZdZeddddZdeddd	ZdS )
r   z*Stop if all the stop conditions are valid.Nr   c                 G   s
   || _ d S r   r   r   r	   r	   r   r   9   s    zstop_all.__init__r   r   c                    s   t  fdd| jD S )Nc                 3   s   | ]}| V  qd S r   r	   r    r#   r	   r   r$   =   r%   z$stop_all.__call__.<locals>.<genexpr>)allr   r
   r	   r#   r   r   <   s    zstop_all.__call__r'   r	   r	   r	   r   r   6   s   r   c                   @   s    e Zd ZdZdedddZdS )_stop_neverzNever stop.r   r   c                 C   s   dS )NFr	   r
   r	   r	   r   r   C   s    z_stop_never.__call__N)r   r   r   r   r   r   r	   r	   r	   r   r)   @   s   r)   c                   @   s0   e Zd ZdZdddddZdedd	d
ZdS )stop_when_event_setz!Stop when the given event is set.zthreading.EventN)eventr   c                 C   s
   || _ d S r   )r+   )r   r+   r	   r	   r   r   M   s    zstop_when_event_set.__init__r   r   c                 C   s
   | j  S r   )r+   is_setr
   r	   r	   r   r   P   s    zstop_when_event_set.__call__)r   r   r   r   r   r   r   r	   r	   r	   r   r*   J   s   r*   c                   @   s0   e Zd ZdZeddddZdeddd	ZdS )
stop_after_attemptz.Stop when the previous attempt >= max_attempt.N)max_attempt_numberr   c                 C   s
   || _ d S r   )r.   )r   r.   r	   r	   r   r   W   s    zstop_after_attempt.__init__r   r   c                 C   s   |j | jkS r   )attempt_numberr.   r
   r	   r	   r   r   Z   s    zstop_after_attempt.__call__)r   r   r   r   intr   r   r   r	   r	   r	   r   r-   T   s   r-   c                   @   s2   e Zd ZdZejddddZdeddd	ZdS )
stop_after_delayz3Stop when the time from the first attempt >= limit.N)	max_delayr   c                 C   s   t || _d S r   )r   
to_secondsr2   )r   r2   r	   r	   r   r   a   s    zstop_after_delay.__init__r   r   c                 C   s   |j d u rtd|j | jkS )Nz4__call__() called but seconds_since_start is not set)seconds_since_startRuntimeErrorr2   r
   r	   r	   r   r   d   s    
zstop_after_delay.__call__)	r   r   r   r   r   Ztime_unit_typer   r   r   r	   r	   r	   r   r1   ^   s   r1   )r   typingpip._vendor.tenacityr   TYPE_CHECKING	threadingr   ABCr   UnionCallabler   Z	StopBaseTr   r   r)   
stop_neverr*   r-   r1   r	   r	   r	   r   <module>   s   



