o
    Ñ­j  ã                   @  s‚   d 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)ÚSequence)ÚAny)ÚCallable.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   úL/var/www/html/CropPilot/venv/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   r0   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   )r0   r1   r   r   )r   r3   r.   r4   r   r   )	Ú__name__Ú
__module__Ú__qualname__r   r   r*   r/   r2   r7   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<   r/   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   r8   )r9   r:   r;   r   r>   r   r   r   r   r   r   ?   s    

r   N)Ú__doc__Ú
__future__r   Úcollections.abcr   Útypingr   r   r   r=   Ú_Writerr5   r4   r   r   r   r   r   r   Ú<module>   s     /