U
    M»{j)  ã                   @  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   úN/var/www/html/bwave/python/venv/lib/python3.8/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  sR   | j d k	r |r |   |  ||¡¡ z| j| }W n tk
rB   Y nX |||ƒ 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   Ú	setwriter5   s    zTagTracer.setwriterzstr | tuple[str, ...]Ú
_Processor)r   r-   r	   c                 C  s6   t |tƒrt| d¡ƒ}nt |tƒs(t‚|| j|< d S )Nr   )r   r   ÚtupleÚsplitÚAssertionErrorr
   )r   r   r-   r   r   r   Úsetprocessor8   s    
zTagTracer.setprocessorN)	Ú__name__Ú
__module__Ú__qualname__r   r   r*   r.   r0   r5   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   )r9   r   )r   r9   r   r   r   r   r   A   s    zTagTracerSub.__init__Úobject)r   r	   c                 G  s   | j  | j|¡ d S r   )r9   r.   r   )r   r   r   r   r   Ú__call__E   s    zTagTracerSub.__call__r   r   c                 C  s   |   | j| j|f ¡S r   )Ú	__class__r9   r   r   r   r   r   r   H   s    zTagTracerSub.getN)r6   r7   r8   r   r;   r   r   r   r   r   r   @   s   r   N)Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   r:   Z_Writerr1   r   r   r   r   r   r   Ú<module>   s    /