3
τΑgυ  γ               @   s  d dl Z d dlZd dlZejr*d dlmZ G dd de jZG dd deZ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G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )ι    N)Ϊ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 )Ϊ
retry_basez)Abstract base class for retry strategies.r   )Ϊretry_stateΪreturnc             C   s   d S )N© )Ϊselfr   r   r   ϊX/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_vendor/tenacity/retry.pyΪ__call__   s    zretry_base.__call__Ϊ	retry_all)Ϊotherr   c             C   s
   t | |S )N)r
   )r   r   r   r   r   Ϊ__and__    s    zretry_base.__and__Ϊ	retry_anyc             C   s
   t | |S )N)r   )r   r   r   r   r   Ϊ__or__#   s    zretry_base.__or__N)
Ϊ__name__Ϊ
__module__Ϊ__qualname__Ϊ__doc__ΪabcΪabstractmethodΪboolr	   r   r   r   r   r   r   r      s
   r   c               @   s    e Zd ZdZdedddZdS )Ϊ_retry_neverz-Retry strategy that never rejects any result.r   )r   r   c             C   s   dS )NFr   )r   r   r   r   r   r	   *   s    z_retry_never.__call__N)r   r   r   r   r   r	   r   r   r   r   r   '   s   r   c               @   s    e Zd ZdZdedddZdS )Ϊ_retry_alwaysz.Retry strategy that always rejects any result.r   )r   r   c             C   s   dS )NTr   )r   r   r   r   r   r	   4   s    z_retry_always.__call__N)r   r   r   r   r   r	   r   r   r   r   r   1   s   r   c               @   s<   e Zd ZdZejegef ddddZdeddd	Z	dS )
Ϊretry_if_exceptionzARetry strategy that retries if an exception verifies a predicate.N)Ϊ	predicater   c             C   s
   || _ d S )N)r   )r   r   r   r   r   Ϊ__init__>   s    zretry_if_exception.__init__r   )r   r   c             C   s    |j jr| j|j j S dS d S )NF)ΪoutcomeΪfailedr   Ϊ	exception)r   r   r   r   r   r	   A   s    zretry_if_exception.__call__)
r   r   r   r   ΪtypingΪCallableΪBaseExceptionr   r   r	   r   r   r   r   r   ;   s   r   c                   sL   e Zd ZdZefejeje ej	eje df f dd fddZ
  ZS )Ϊretry_if_exception_typez=Retries if an exception has been raised of one or more types..N)Ϊexception_typesr   c                s    | _ t j fdd d S )Nc                s
   t |  S )N)Ϊ
isinstance)Ϊe)r"   r   r   Ϊ<lambda>S   s    z2retry_if_exception_type.__init__.<locals>.<lambda>)r"   Ϊsuperr   )r   r"   )Ϊ	__class__)r"   r   r   K   s    z retry_if_exception_type.__init__)r   r   r   r   Ϊ	Exceptionr   ΪUnionΪTyper    ΪTupler   Ϊ__classcell__r   r   )r'   r   r!   H   s   &r!   c                   sL   e Zd ZdZefejeje ej	eje df f dd fddZ
  ZS )Ϊretry_if_not_exception_typezARetries except an exception has been raised of one or more types..N)r"   r   c                s    | _ t j fdd d S )Nc                s   t |   S )N)r#   )r$   )r"   r   r   r%   a   s    z6retry_if_not_exception_type.__init__.<locals>.<lambda>)r"   r&   r   )r   r"   )r'   )r"   r   r   Y   s    z$retry_if_not_exception_type.__init__)r   r   r   r   r(   r   r)   r*   r    r+   r   r,   r   r   )r'   r   r-   V   s   &r-   c                   s\   e Zd ZdZefejeje ej	eje df f dd fddZ
dedd	d
Z  ZS )Ϊretry_unless_exception_typez:Retries until an exception is raised of one or more types..N)r"   r   c                s    | _ t j fdd d S )Nc                s   t |   S )N)r#   )r$   )r"   r   r   r%   o   s    z6retry_unless_exception_type.__init__.<locals>.<lambda>)r"   r&   r   )r   r"   )r'   )r"   r   r   g   s    z$retry_unless_exception_type.__init__r   )r   r   c             C   s   |j jsdS | j|j j S )NT)r   r   r   r   )r   r   r   r   r   r	   q   s    z$retry_unless_exception_type.__call__)r   r   r   r   r(   r   r)   r*   r    r+   r   r   r	   r,   r   r   )r'   r   r.   d   s   &r.   c               @   s>   e Zd ZdZejejgef ddddZdeddd	Z	dS )
Ϊretry_if_resultz+Retries if the result verifies a predicate.N)r   r   c             C   s
   || _ d S )N)r   )r   r   r   r   r   r   {   s    zretry_if_result.__init__r   )r   r   c             C   s    |j js| j|j j S dS d S )NF)r   r   r   Ϊresult)r   r   r   r   r   r	   ~   s    zretry_if_result.__call__)
r   r   r   r   r   r   ΪAnyr   r   r	   r   r   r   r   r/   x   s   r/   c               @   s>   e Zd ZdZejejgef ddddZdeddd	Z	dS )
Ϊretry_if_not_resultz*Retries if the result refutes a predicate.N)r   r   c             C   s
   || _ d S )N)r   )r   r   r   r   r   r      s    zretry_if_not_result.__init__r   )r   r   c             C   s"   |j js| j|j j  S dS d S )NF)r   r   r   r0   )r   r   r   r   r   r	      s    zretry_if_not_result.__call__)
r   r   r   r   r   r   r1   r   r   r	   r   r   r   r   r2      s   r2   c                   s8   e Zd ZdZdeje eje dd fddZ  ZS )Ϊretry_if_exception_messagez2Retries if an exception message equals or matches.N)ΪmessageΪmatchr   c                s    r|rt | jj d r8ttd fdd}|}n:|r`tj|ttdfdd}|}nt | jj dt j| d S )Nz.() takes either 'message' or 'match', not both)r   r   c                s    t | kS )N)Ϊstr)r   )r4   r   r   Ϊmessage_fnc    s    z8retry_if_exception_message.__init__.<locals>.message_fncc                s   t  jt| S )N)r   r5   r6   )r   )Ϊprogr   r   Ϊ	match_fnc§   s    z6retry_if_exception_message.__init__.<locals>.match_fncz3() missing 1 required argument 'message' or 'match')	Ϊ	TypeErrorr'   r   r    r   ΪreΪcompiler&   r   )r   r4   r5   r7   r   r9   )r'   )r4   r8   r   r      s    
z#retry_if_exception_message.__init__)NN)	r   r   r   r   r   ΪOptionalr6   r   r,   r   r   )r'   r   r3      s    r3   c                   sH   e Zd ZdZd
eje eje dd fddZdeddd	Z	  Z
S )Ϊretry_if_not_exception_messagez5Retries until an exception message equals or matches.N)r4   r5   r   c                s&   t  j|| | j  fdd| _d S )Nc                 s    | | S )Nr   )Zargs_Zkwargs_)Ϊif_predicater   r   r%   Ό   s    z9retry_if_not_exception_message.__init__.<locals>.<lambda>)r&   r   r   )r   r4   r5   )r'   )r?   r   r   ΄   s    z'retry_if_not_exception_message.__init__r   )r   r   c             C   s   |j jsdS | j|j j S )NT)r   r   r   r   )r   r   r   r   r   r	   Ύ   s    z'retry_if_not_exception_message.__call__)NN)r   r   r   r   r   r=   r6   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   z1Retries if any of the retries condition is valid.N)Ϊretriesr   c             G   s
   || _ d S )N)r@   )r   r@   r   r   r   r   Η   s    zretry_any.__init__r   )r   r   c                s   t  fdd| jD S )Nc             3   s   | ]}| V  qd S )Nr   )Ϊ.0Ϊr)r   r   r   ϊ	<genexpr>Λ   s    z%retry_any.__call__.<locals>.<genexpr>)Ϊanyr@   )r   r   r   )r   r   r	   Κ   s    zretry_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/Retries if all the retries condition are valid.N)r@   r   c             G   s
   || _ d S )N)r@   )r   r@   r   r   r   r   Ρ   s    zretry_all.__init__r   )r   r   c                s   t  fdd| jD S )Nc             3   s   | ]}| V  qd S )Nr   )rA   rB   )r   r   r   rC   Υ   s    z%retry_all.__call__.<locals>.<genexpr>)Ϊallr@   )r   r   r   )r   r   r	   Τ   s    zretry_all.__call__)r   r   r   r   r   r   r   r	   r   r   r   r   r
   Ξ   s   r
   )r   r;   r   ΪTYPE_CHECKINGΪpip._vendor.tenacityr   ΪABCr   r   Ϊretry_neverr   Ϊretry_alwaysr   r!   r-   r.   r/   r2   r3   r>   r   r
   r   r   r   r   Ϊ<module>   s&   
