U
    \Shi
                  	   @  s   d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ eeZddd	d
dZedZdd d efddddddddddZG dd deZG dd dZdS )    )annotationsN)AnyCallableIterableIteratorTypeVar)__)logging)boldr   str)chunkreturnc                 C  sD   t | ttfr<t| dkr&t| d S | d  d| d  S t| S )N   r   z .. )
isinstancelisttuplelenr   )r    r   F/root/rtd-docs/venv/lib/python3.8/site-packages/sphinx/util/display.pydisplay_chunk   s
    r   TZ	darkgreenzIterable[T]intzCallable[[Any], str]zIterator[T])iterablesummarycolorlength	verbositystringify_funcr   c           
      c  s   |dk }t |}|dkrPtj|dd | D ]"}tj||d d|d |V  q*ntt| ddD ]f\}	}|rvtjddd tj| d	|	| d
ddd tj||d|d tjd| |d |V  q\td d S )Nr   r   Tnonl )r    r   )startz[2K[z >4.0%z]  )r
   loggerinfo	enumerate)
r   r   r   r   r   r   Zsingle_lineZbold_summaryitemir   r   r   status_iterator   s    
 r+   c                   @  s   e Zd ZdS )SkipProgressMessageN)__name__
__module____qualname__r   r   r   r   r,   :   s   r,   c                   @  sN   e Zd ZdddddZddddZd	d
dddddZdddddZdS )progress_messager   None)messager   c                 C  s
   || _ d S N)r2   )selfr2   r   r   r   __init__?   s    zprogress_message.__init__)r   c                 C  s   t jt| jd dd d S )Nz... Tr   )r&   r'   r
   r2   )r4   r   r   r   	__enter__B   s    zprogress_message.__enter__ztype[BaseException] | NonezBaseException | NonezTracebackType | Nonebool)typvaltbr   c                 C  sT   t |tr.ttd |jr*tj|j  dS |rBttd nttd dS )NZskippedTZfaileddoneF)r   r,   r&   r'   r   args)r4   r8   r9   r:   r   r   r   __exit__E   s    
zprogress_message.__exit__r   )fr   c                   s&   t  dddd fdd}|S )Nr   )r<   kwargsr   c               
     s&     | |W  5 Q R  S Q R X d S r3   r   )r<   r?   r>   r4   r   r   wrapperX   s    z*progress_message.__call__.<locals>.wrapper)	functoolswraps)r4   r>   rA   r   r@   r   __call__W   s    zprogress_message.__call__N)r-   r.   r/   r5   r6   r=   rD   r   r   r   r   r0   >   s   r0   )
__future__r   rB   typingr   r   r   r   r   Zsphinx.localer   Zsphinx.utilr	   Zsphinx.util.consoler
   TracebackType	getLoggerr-   r&   r   r   r+   	Exceptionr,   r0   r   r   r   r   <module>   s   
