
    ע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y)    N)	timedelta   c            
       h    e Zd ZdZdededej                  dej                  dej                  f
dZy)	LoggerProtocolz}
    Protocol used by utils expecting a logger (eg: before_log).

    Compatible with logging, structlog, loguru, etc...
    levelmsgargskwargsreturnc                     y N )selfr   r   r	   r
   s        P/sites/domain-asset-master/.venv/lib/python3.12/site-packages/tenacity/_utils.pylogzLoggerProtocol.log#   s        N)	__name__
__module____qualname____doc__intstrtypingAnyr   r   r   r   r   r      s@    ".4jjDJJJ	r   r   pos_numr   c                 h    | dk(  ry| dk(  ry| dk(  ry| dk(  ryd	| cxk  rd
k  ry t        | dz        S )Nr   th   str   nd   rd      
   find_ordinalr   s    r   r'   r'   (   sP    !|	A	A	A	
g		 
 GbL))r   c                      |  t        |        S r   r&   r(   s    r   
to_ordinalr*   8   s    Y|G,-..r   cb.c                 `   g }	 |j                  | j                         |st	        |       S 	 | j
                  r|j                  d| j
                         dj                  |      S # t        $ r/ 	 |j                  | j                         n# t        $ r Y nw xY wY ~w xY w# t        $ r Y Ww xY w)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( Bx	}}2==1 xx!!  	OOBKK( 		  		sF   A& (B! &	B0BB	BBBBB!	B-,B-	time_unitc                 `    t        t        | t              r| j                               S |       S r   )float
isinstancer   total_seconds)r5   s    r   
to_secondsr:   X   s1    %/	9%E	! KT r   callc                     t        j                  |       ryt        j                  |       ryt        | t        j
                        xr | j                  }|xs t        | dd       }t        j                  |      S )NFT__call__)inspectisclassiscoroutinefunctionr8   	functoolspartialfuncgetattr)r;   partial_calldunder_calls      r   is_coroutine_callablerG   ^   sa    t""4(dI$5$56D499LA'$
D"AK&&{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 wr   r   )r	   r
   r;   s     r   innerz!wrap_to_async_func.<locals>.innern   s     T$V$$s   	)rG   r   r   )r;   rJ   s   ` r   wrap_to_async_funcrK   h   s?     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__ 	*# *# * / / /"&//#vzz/: "s "2 c5)34. U 4VZZ @ 4T 4	
//#vzz/
*	__S&**6::667	r   