a
    ܌xd                     @   s$   d Z G dd dZG dd dZdS )z
Tracing utils
c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )	TagTracerc                 C   s   i | _ d | _d| _d S )N    )
_tags2proc_writerindent)self r   G/var/www/html/Ranjet/env/lib/python3.9/site-packages/pluggy/_tracing.py__init__   s    zTagTracer.__init__c                 C   s   t | |fS N)TagTracerSubr   namer   r   r   get   s    zTagTracer.getc           	   	   C   s   t |d tr$|d }|d d }ni }dtt|}d| j }d||d|g}| D ]$\}}|| d| d| d q`d	|S )
N z  z
{}{} [{}]
:z    z: 
 )	
isinstancedictjoinmapstrr   formatitemsappend)	r   tagsargsextracontentr   linesr   valuer   r   r   _format_message   s    
zTagTracer._format_messagec                 C   sP   | j d ur |r |  | || z| j| }W n ty@   Y n0 ||| d S r
   )r   r"   r   KeyError)r   r   r   	processorr   r   r   _processmessage    s    zTagTracer._processmessagec                 C   s
   || _ d S r
   )r   )r   writerr   r   r   	setwriter*   s    zTagTracer.setwriterc                 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   setprocessor-   s    
zTagTracer.setprocessorN)	__name__
__module____qualname__r	   r   r"   r%   r'   r*   r   r   r   r   r      s   
r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )r   c                 C   s   || _ || _d S r
   )rootr   )r   r.   r   r   r   r   r	   6   s    zTagTracerSub.__init__c                 G   s   | j | j| d S r
   )r.   r%   r   )r   r   r   r   r   __call__:   s    zTagTracerSub.__call__c                 C   s   |  | j| j|f S r
   )	__class__r.   r   r   r   r   r   r   =   s    zTagTracerSub.getN)r+   r,   r-   r	   r/   r   r   r   r   r   r   5   s   r   N)__doc__r   r   r   r   r   r   <module>   s   /