
    i                        d dl Z d dlZd dlZd dlZd dlmZ ej        dz  Z G d dej                  Z	de
defdZde
defd	Zd
ej        dej        f         defdZej        e
eef         ZdedefdZdej        dej        f         defdZdej        dej        f         dej        dej        ej                 f         fdZdS )    N)	timedelta   c            
       L    e Zd ZdZdededej        dej        dej        f
dZdS )	LoggerProtocolz}
    Protocol used by utils expecting a logger (eg: before_log).

    Compatible with logging, structlog, loguru, etc...
    levelmsgargskwargsreturnc                    d S N )selfr   r   r	   r
   s        B/var/www/icac/venv/lib/python3.11/site-packages/tenacity/_utils.pylogzLoggerProtocol.log#   s    S    N)	__name__
__module____qualname____doc__intstrtypingAnyr   r   r   r   r   r      s`         ".4jDJJ	     r   r   pos_numr   c                     | dk    rdS | dk    rdS | dk    rdS | dk    rdS d	| cxk    rd
k    rn ndS t          | dz            S )Nr   th   str   nd   rd      
   find_ordinalr   s    r   r'   r'   (   ss    !||t	At	At	At	
g									tGbL)))r   c                 (    |  t          |            S r   r&   r(   s    r   
to_ordinalr*   8   s    .|G,,...r   cb.c                 j   g }	 |                     | j                   n<# t          $ r/ 	 |                     | j                   n# t          $ r Y nw xY wY nw xY w|st	          |           S 	 | j        r|                    d| j                   n# t          $ r Y nw xY wd                    |          S )znGet a callback fully-qualified name.

    If no name can be produced ``repr(cb)`` is called and returned.
    r   .)appendr   AttributeErrorr   reprr   insertjoin)r+   segmentss     r   get_callback_namer4   <   s    
 H((((   	OOBK(((( 	 	 	D	
  	"Bxx	} 22=111 	 	 	D	xx!!!sD    
AAA
AAAAA-"B 
BB	time_unitc                 r    t          t          | t                    r|                                 n|           S r   )float
isinstancer   total_seconds)r5   s    r   
to_secondsr:   X   s7    %/	9%E%ET	!!!9  r   callc                     t          j        |           rdS t          j        |           rdS t          | t          j                  o| j        }|pt          | dd           }t          j        |          S )NFT__call__)inspectisclassiscoroutinefunctionr8   	functoolspartialfuncgetattr)r;   partial_calldunder_calls      r   is_coroutine_callablerG   ^   sq    t u"4(( tdI$566D49LA'$
D"A"AK&{333r   c                 ~     t                     r S dt          j        dt          j        dt          j        f fd}|S )Nr	   r
   r   c                     K    | i |S r   r   )r	   r
   r;   s     r   innerz!wrap_to_async_func.<locals>.innern   s      tT$V$$$r   )rG   r   r   )r;   rJ   s   ` r   wrap_to_async_funcrK   h   sZ     T"" %6: % %
 % % % % % % Lr   )rA   r>   sysr   datetimer   maxsizeMAX_WAITProtocolr   r   r   r'   r*   Callabler   r4   Unionr7   time_unit_typer:   boolrG   	AwaitablerK   r   r   r   <module>rV      s         



       
 ;?	 	 	 	 	V_ 	 	 	*# *# * * * * / / / / / /"&/#vz/: "s " " " "2 c5)34. U    4VZ @ 4T 4 4 4 4	
/#vz/
*	_S&*6:667	 	 	 	 	 	r   