a
    xd                     @   sD   d dl Z dd ZG dd deZG dd deZG dd	 d	eZdS )
    Nc           
      C   s   | j rt S t|}||kr$d| nd}d|||f }d }| jr| jrdd l}z |j }	|j|	|}d }W n ty   |j	d}Y n0 t
| |||S )Nz of %d z%-- Testing: %d%s tests, %d workers --r   z	Testing: )quiet
NopDisplaylensuccinctZuseProgressBarZlit.ProgressBarZProgressBarZTerminalController
ValueErrorZSimpleProgressBarDisplay)
optstestsZtotal_testsworkers	num_testsZof_totalheaderprogress_barZlitZtc r   T/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lit/display.pycreate_display   s"    
r   c                   @   s   e Zd Zdd Zdd ZdS )ProgressPredictorc                 C   s`   d| _ d| _d| _d| _d| _|D ]8}|jrL|  jd7  _|  j|j7  _q"|  jd7  _q"d S )Nr              )	completedtime_elapsedpredictable_tests_remainingpredictable_time_remainingunpredictable_tests_remainingprevious_elapsed)selfr
   testr   r   r   __init__   s    zProgressPredictor.__init__c                 C   s   |  j d7  _ |  j|jj7  _|jrF|  jd8  _|  j|j8  _n|  jd8  _| j| j | j | j  }|| j }| j| }| j| }|dkr| j| S dS )Nr   r   )r   r   resultelapsedr   r   r   r   )r   r   Zaverage_test_timeZunpredictable_time_remainingZtotal_time_remainingZ
total_timer   r   r   update)   s"    




zProgressPredictor.updateN)__name__
__module____qualname__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 Nr   r   r   r   r   print_headerA       zNopDisplay.print_headerc                 C   s   d S r$   r   )r   r   r   r   r   r    B   r'   zNopDisplay.updatec                 C   s   d S r$   r   r   interruptedr   r   r   clearC   r'   zNopDisplay.clearN)r!   r"   r#   r&   r    r*   r   r   r   r   r   @   s   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )r   c                 C   s8   || _ t|| _|| _|r"t|nd | _|| _d| _d S )Nr   )r	   r   r   r   r   progress_predictorr   r   )r   r	   r
   r   r   r   r   r   r   G   s    
zDisplay.__init__c                 C   s(   | j rt| j  | jr$| jdd d S )Nr   r   )r   printr   r    r%   r   r   r   r&   P   s    
zDisplay.print_headerc                 C   s   |  j d7  _ | p0| jjp0| jj o0| jj }|rT| jrJ| jjdd | | | jr| rjd| j_	| j
|}| j||  d S )Nr   F)r)   RED)r   	isFailurer	   showAllOutputr   r   r   r*   print_resultZbarColorr+   r    getFullName)r   r   Zshow_resultpercentr   r   r   r    V   s    
zDisplay.updatec                 C   s   | j r| j | d S r$   )r   r*   r(   r   r   r   r*   g   s    zDisplay.clearc           
      C   s  |  }td|jjj|| j| jf  | r6| jj	s>| jj
r| r\tdd|  df  |jj}tjjrz|jtjjdd}W n ty   Y n0 |jtjjdd}t| td |jjrtdd|  df  t|jj }|D ]\}}td	|| f  qtd |jjrt|jj }|D ]T\}}td
d|f  |jr0t|j }	|	D ]\}}td|| f  qbq0tj  d S )Nz%s: %s (%d of %d)z%s TEST '%s' FAILED %sz********************replace)encodingerrorsignorez%s TEST '%s' RESULTS %sz
**********z%s: %s z%s MICRO-TEST: %sz***z    %s:  %s )r1   r,   r   codenamer   r   r.   r	   Z
showOutputr/   outputsysstdoutr4   encodeUnicodeDecodeErrordecodeZmetricssorteditemsformatZmicroResultsflush)
r   r   Z	test_nameoutr@   Zmetric_namevalueZmicro_test_nameZ
micro_testZsorted_metricsr   r   r   r0   k   sR    



zDisplay.print_resultN)r!   r"   r#   r   r&   r    r*   r0   r   r   r   r   r   F   s
   	r   )r:   r   objectr   r   r   r   r   r   r   <module>   s   &