a
    !f(                     @  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                   @  sp   e Zd ZddddZddddd	Zd
dddddZddddddZdddddZddddddZdS )	TagTracerNone)returnc                 C  s   i | _ d | _d| _d S )Nr   )
_tags2proc_writerindent)self r   P/var/www/html/python-backend/venv/lib/python3.9/site-packages/pluggy/_tracing.py__init__   s    zTagTracer.__init__strTagTracerSubnamer	   c                 C  s   t | |fS N)r   r   r   r   r   r   get   s    zTagTracer.getzSequence[str]zSequence[object])tagsargsr	   c           	   	   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mapr   r   formatitemsappend)	r   r   r   extracontentr   linesr   valuer   r   r   _format_message   s    
zTagTracer._format_messagetuple[str, ...]ztuple[object, ...]c                 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._processmessagez_Writer | None)writerr	   c                 C  s
   || _ d S r   )r   )r   r/   r   r   r   	setwriter4   s    zTagTracer.setwriterzstr | tuple[str, ...]
_Processor)r   r-   r	   c                 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)	__name__
__module____qualname__r   r   r*   r.   r0   r4   r   r   r   r   r      s   
r   c                   @  s>   e Zd ZddddddZdddd	d
Zdd dddZdS )r   r   r+   r   )rootr   r	   c                 C  s   || _ || _d S r   )r8   r   )r   r8   r   r   r   r   r   @   s    zTagTracerSub.__init__object)r   r	   c                 G  s   | j | j| d S r   )r8   r.   r   )r   r   r   r   r   __call__D   s    zTagTracerSub.__call__r   r   c                 C  s   |  | j| j|f S r   )	__class__r8   r   r   r   r   r   r   G   s    zTagTracerSub.getN)r5   r6   r7   r   r:   r   r   r   r   r   r   ?   s   r   N)__doc__
__future__r   typingr   r   r   r   r   r9   Z_Writerr1   r   r   r   r   r   r   <module>   s    /