o
    Ye(                     @  s   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	 d	ZG d
d dZdS )z
Tracing utils
    )annotations)Any)Callable)Sequence)Tuple.c                   @  sH   e Zd ZdddZddd	Zd ddZd!ddZd"ddZd#ddZdS )$	TagTracerreturnNonec                 C  s   i | _ d | _d| _d S )Nr   )
_tags2proc_writerindent)self r   3usr/lib/python3.10/site-packages/pluggy/_tracing.py__init__   s   
zTagTracer.__init__namestrTagTracerSubc                 C  s   t | |fS N)r   r   r   r   r   r   get   s   zTagTracer.gettagsSequence[str]argsSequence[object]c           	   	   C  s   t |d tr|d }|d d }ni }dtt|}d| j }d||d|g}| D ]\}}|| d| d| d q0d	|S )
N z  z
{}{} [{}]
:z    z: 
 )	
isinstancedictjoinmapr   r   formatitemsappend)	r   r   r   extracontentr   linesr   valuer   r   r   _format_message   s   

zTagTracer._format_messagetuple[str, ...]tuple[object, ...]c                 C  sR   | j d ur|r|  | || z| j| }W n
 ty!   Y d S w ||| d S r   )r   r+   r
   KeyError)r   r   r   	processorr   r   r   _processmessage*   s   zTagTracer._processmessagewriter_Writer | Nonec                 C  s
   || _ d S r   )r   )r   r1   r   r   r   	setwriter4   s   
zTagTracer.setwriterstr | tuple[str, ...]r/   
_Processorc                 C  s6   t |trt|d}nt |tsJ || j|< d S )Nr   )r    r   tuplesplitr
   )r   r   r/   r   r   r   setprocessor7   s   
zTagTracer.setprocessorN)r   r	   r   r   r   r   )r   r   r   r   r   r   )r   r,   r   r-   r   r	   )r1   r2   r   r	   )r   r4   r/   r5   r   r	   )	__name__
__module____qualname__r   r   r+   r0   r3   r8   r   r   r   r   r      s    





r   c                   @  s*   e Zd ZdddZdddZdddZdS )r   rootr   r   r,   r   r	   c                 C  s   || _ || _d S r   )r=   r   )r   r=   r   r   r   r   r   @   s   
zTagTracerSub.__init__r   objectc                 G  s   | j | j| d S r   )r=   r0   r   )r   r   r   r   r   __call__D   s   zTagTracerSub.__call__r   r   c                 C  s   |  | j| j|f S r   )	__class__r=   r   r   r   r   r   r   G   s   zTagTracerSub.getN)r=   r   r   r,   r   r	   )r   r>   r   r	   r9   )r:   r;   r<   r   r?   r   r   r   r   r   r   ?   s    

r   N)__doc__
__future__r   typingr   r   r   r   r   r>   Z_Writerr5   r   r   r   r   r   r   <module>   s     /