
    g)                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ eege	f   Z
eeedf   eedf   ge	f   Z G d d	      Z G d
 d      Zy)z
Tracing utils
    )annotations)Any)Callable)Sequence)Tuple.c                  <    e Zd ZddZd	dZd
dZddZddZddZy)	TagTracerc                .    i | _         d | _        d| _        y )Nr   )
_tags2proc_writerindent)selfs    D/var/www/openai/venv/lib/python3.12/site-packages/pluggy/_tracing.py__init__zTagTracer.__init__   s    =?'+    c                    t        | |f      S N)TagTracerSubr   names     r   getzTagTracer.get   s    D4'**r   c           	     j   t        |d   t              r|d   }|d d }ni }dj                  t        t        |            }d| j
                  z  }dj                  ||dj                  |            g}|j                         D ]  \  }}|j                  | d| d| d       ! d	j                  |      S )
N z  z
{}{} [{}]
:z    z: 
 )	
isinstancedictjoinmapstrr   formatitemsappend)	r   tagsargsextracontentr   linesr   values	            r   _format_messagezTagTracer._format_message   s    d2h%HE9DE((3sD>*#%%fgsxx~FG ;;=KD%LLF84vRwb9: ) wwu~r   c                    | j                   #|r!| j                  | j                  ||             	 | j                  |   } |||       y # t        $ r Y y w xY wr   )r   r,   r   KeyError)r   r&   r'   	processors       r   _processmessagezTagTracer._processmessage+   sZ    <<#LL--dD9:	"-I dD!  		s   A
 
	AAc                    || _         y r   )r   )r   writers     r   	setwriterzTagTracer.setwriter5   s	    r   c                    t        |t              rt        |j                  d            }nt        |t              sJ || j                  |<   y )Nr   )r   r"   tuplesplitr   )r   r&   r/   s      r   setprocessorzTagTracer.setprocessor8   s<    dC C)DdE*** )r   N)returnNoner   r"   r8   r   )r&   zSequence[str]r'   zSequence[object]r8   r"   )r&   tuple[str, ...]r'   ztuple[object, ...]r8   r9   )r2   z_Writer | Noner8   r9   )r&   zstr | tuple[str, ...]r/   
_Processorr8   r9   )	__name__
__module____qualname__r   r   r,   r0   r3   r7    r   r   r	   r	      s     
+""*r   r	   c                  $    e Zd ZddZddZddZy)r   c                     || _         || _        y r   )rootr&   )r   rC   r&   s      r   r   zTagTracerSub.__init__A   s    		r   c                P    | j                   j                  | j                  |       y r   )rC   r0   r&   )r   r'   s     r   __call__zTagTracerSub.__call__E   s    		!!$))T2r   c                V    | j                  | j                  | j                  |fz         S r   )	__class__rC   r&   r   s     r   r   zTagTracerSub.getH   s"    ~~diidW)<==r   N)rC   r	   r&   r;   r8   r9   )r'   objectr8   r9   r:   )r=   r>   r?   r   rE   r   r@   r   r   r   r   @   s    3>r   r   N)__doc__
__future__r   typingr   r   r   r   r"   rH   _Writerr<   r	   r   r@   r   r   <module>rM      sf    #     C5&=
!uS#Xc3h8&@A
,* ,*^	> 	>r   