
    &`i.'                     R   d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 d dlZd dlmZ d dlmZ d dlmZ  e j        e          Z	 d dlZdan# e$ r dZdaY nw xY w e            Z ej                    Zd	ed
efdZ G d de          Z G d de          Zde ded
e fdZ!dS )    N)ABCabstractmethod)AnyListOptional)tqdm_ray)	ObjectRef)log_onceFTresultreturnc                 r    t          | d          r| j        S t          | d          rt          |           S dS )zExtract the number of rows from a result object.

    Args:
        result: The result object from which to extract the number of rows.

    Returns:
        The number of rows, defaulting to 1 if it cannot be determined.
    num_rows__len__   )hasattrr   len)r   s    s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/data/_internal/progress_bar.pyextract_num_rowsr      sA     vz"" 		#	# 6{{q    c                       e Zd ZdZdee         ddfdZdee         dee         fdZe	de
ddfd	            Ze	de
fd
            Ze	ddedee         ddfd            Zd Zd ZdS )AbstractProgressBarz(Abstract class to define a progress bar.	remainingr   Nc                    t          j                    }|rt          j        |t	          |          dd          \  }}d}t          |t          j        |                    D ]\  }}t          |          }||z  }|                     |           t          5  |t          v r	 d d d            d S 	 d d d            n# 1 swxY w Y   |d S d S )NF皙?num_returnsfetch_localtimeoutr   	threadingcurrent_threadraywaitr   zipgetr   update_canceled_threads_lock_canceled_threads)selfr   tdonetotal_rows_processed_r   r   s           r   block_until_completez(AbstractProgressBar.block_until_complete1   sP   $&& 	!hs9~~5RU  OD) $%  swt}}55 1 1	6+F33$0$$KK,---'  )))       )                	 	 	 	 	s   B==CCrefsc                   
 i 
|}t          j                    }d}|rt          j        |t	          |          |d          \  }}|rd}d}t          |t          j        |                    D ]\  }}|
|<   t          |          }	||	z  }|                     |           t          5  |t          v r	 d d d            n	 d d d            n# 1 swxY w Y   |
fd|D             S )NTr   r   Fr   c                      g | ]
}|         S  r2   ).0refref_to_results     r   
<listcomp>z<AbstractProgressBar.fetch_until_complete.<locals>.<listcomp>^   s    333sc"333r   r   )r)   r/   r   r*   r   r+   r,   r4   r   r   r5   s             @r   fetch_until_completez(AbstractProgressBar.fetch_until_completeA   s~   	$&&
  	!h	NN'	  OD)  $##$ "477 1 1V%+c"+F33$0$$KK,---'  )))      )              !  	( 4333d3333s   (CCCnamec                     d S Nr2   r)   r8   s     r   set_descriptionz#AbstractProgressBar.set_description`       r   c                     d S r:   r2   r)   s    r   get_descriptionz#AbstractProgressBar.get_descriptiond   r=   r   r   	incrementtotalc                     d S r:   r2   r)   rA   rB   s      r   r&   zAbstractProgressBar.updateh   r=   r   c                     d S r:   r2   r?   s    r   refreshzAbstractProgressBar.refreshl       r   c                     d S r:   r2   r?   s    r   closezAbstractProgressBar.closeo   rG   r   r   N)__name__
__module____qualname____doc__r   r	   r.   r   r7   r   strr<   r@   intr   r&   rF   rI   r2   r   r   r   r   .   s       22d9o $     4i 4T#Y 4 4 4 4> C D    ^     ^        ^      r   r   c                       e Zd ZdZdZ	 	 ddedee         deded	ee         f
d
Z	deddfdZ
defdZd Zd Zddedee         ddfdZd Zd Zd Zd ZdS )ProgressBarzThin wrapper around tqdm to handle soft imports.

    If `total` is `None` known (for example, it is unknown
    because no tasks have finished yet), doesn't display the full
    progress bar. Still displays basic progress stats from tqdm.d   r   Nr8   rB   unitpositionenabledc                 (   t          || j                  | _        d| _        || _        |d         dk    rd|z   }d| _        |ddlm} |                                j	        }|rPt          j                                        s2d| _        d}t          d          rt                              d           |sd | _        nt"          r|ddlm} |                                j        rt'          j        |||          | _        n t#          j        |pd|d|d	          | _        | j                            | j                   nt*          rt-          d
           dad | _        d| _        ddlm} |                                j        | _        d| _        d S )Nr    FDataContextTprogress_bar_disabledzCProgress bar disabled because stdout is a non-interactive terminal.)rB   rT   rU   )rB   rU   dynamic_ncolsrT   
unit_scalez?[dataset]: Run `pip install tqdm` to enable progress reporting.)truncate_operator_nameMAX_NAME_LENGTH_desc	_progress_total_use_loggingray.data.contextrZ   get_currentenable_progress_barssysstdoutisattyr
   loggerinfo_bartqdmuse_ray_tqdmr   r<   needs_warningprint_last_logged_timeprogress_bar_log_interval_log_interval_logged_once)r)   r8   rB   rT   rU   rV   rZ   s          r   __init__zProgressBar.__init__~   s    ,D$2FGG
7c>>:D!? 544444!--//DG  	3:,,.. 	 $DG/00 Y    	DII 	444444 &&((5 	$MD8TTT		 I*1%"&#  	 I%%dj1111  &WXXX %DI "#000000(4466P!r   r   c                     t          || j                  }| j        r|| _        | j        r3|| j        k    r*|| _        | j                            | j                   d S d S d S r:   )r^   r_   rc   r`   rl   r<   r;   s     r   r<   zProgressBar.set_description   sq    %dD,@AA 	DJ9 	2++DJI%%dj11111	2 	2++r   c                     | j         S r:   )r`   r?   s    r   r@   zProgressBar.get_description   s
    zr   c                    t          j                     }|| j        z
  }| j        dk    p
|| j        k    }|r| j                            d                                          }| j        s@|                    d          d         }t          	                    d| d           d| _        t          	                    | d| j
         d| j        pd	            || _        d
S d
S )z6Log progress if the required time interval has passed.r   z- :z=== Ray Data Progress {z} ===Tz: Progress Completed z / ?N)timerq   rs   r`   lstripstriprt   splitrj   rk   ra   rb   )r)   current_time	time_diff
should_log
clean_descoperation_names         r   _log_progress_if_neededz#ProgressBar._log_progress_if_needed   s    y{{ 4#99	,1WyDDV7V
 
	2**4006688J$ )!+!1!1#!6!6q!9M~MMMNNN$(!KK[[DN[[t{GYVY[[   &2D"""
	2 
	2r   c                     | j         r| j                                          d S | j        r|                                  d S d S r:   )rl   rF   rc   r   r?   s    r   rF   zProgressBar.refresh   sS    9 	+I 	+((*****	+ 	+r   rA   c                    | j         r|dk    s| j         j        |k    rl| xj        |z  c_        ||| j         _        | j         j        &| j        | j         j        k    r| j        | j         _        | j                             |           d S | j        r7|7|dk    r3| xj        |z  c_        ||| _        |                                  d S d S d S d S )Nr   )rl   rB   ra   r&   rc   rb   r   rD   s      r   r&   zProgressBar.update   s    9 	+)q..DIOu,D,DNNi'NN "'	y*t~	/O/O"&.	IY''''' 	+I$9i1nnNNi'NN # ((*****	+ 	+$9$9nnr   c                     | j         rm| j         j        ?| j        | j         j        k    r*| j        | j         _        | j                                          | j                                          d | _         d S d S r:   )rl   rB   ra   rF   rI   r?   s    r   rI   zProgressBar.close   sl    9 	y*t~/P/P"&.		!!###IOODIII	 	r   c                 .    |                                   d S r:   )rI   r?   s    r   __del__zProgressBar.__del__   s    

r   c                     i S r:   r2   r?   s    r   __getstate__zProgressBar.__getstate__   s    	r   c                     d | _         d S r:   )rl   )r)   states     r   __setstate__zProgressBar.__setstate__  s    			r   rJ   )rK   rL   rM   rN   r_   rO   r   rP   boolru   r<   r@   r   rF   r&   rI   r   r   r   r2   r   r   rR   rR   s   sJ       D D O "&?" ?"?" }?" 	?"
 ?" $?" ?" ?" ?"B2C 2D 2 2 2 2    2 2 2$+ + ++ + + + + + + +"          r   rR   r8   max_name_lengthc                    ddl m} |                                }|j        rt	          |           |k    r| S |                     d          }t	          |          dk    r|d         S |d         g}|dd         D ]}t	          d                    |                    t	          d          z   t	          |          z   t	          d          z   t	          |d                   z   |k    rD|                    d           t          d          rt          
                    d| d	            n|                    |           |                    |d                    d                    |          S )
Nr   rY   z->r   z...ray_data_truncate_operator_namez!Truncating long operator name to z characters. To disable this behavior, set `ray.data.DataContext.get_current().DEFAULT_ENABLE_PROGRESS_BAR_NAME_TRUNCATION = False`.)rd   rZ   re   #enable_progress_bar_name_truncationr   r~   joinappendr
   rj   warning)r8   r   rZ   ctxop_namestruncated_op_namesop_names          r   r^   r^     s   ,,,,,,

!
!
#
#C2 c$ii?6R6Rzz$H
8}}{
 #1+AbD> + +		,--..$ii'll $ii (2,	 
   %%e,,,9:: L L L L   E!!'****hrl+++99'(((r   )"loggingrg   r    r{   abcr   r   typingr   r   r   r"   ray.experimentalr   	ray.typesr	   ray.util.debugr
   	getLoggerrK   rj   rm   ro   ImportErrorsetr(   Lockr'   rP   r   r   rR   rO   r^   r2   r   r   <module>r      s    



      # # # # # # # # & & & & & & & & & & 



 % % % % % %       # # # # # #		8	$	$KKKMM   DMMM
 CEE ')) S S    $B B B B B# B B BJQ Q Q Q Q% Q Q Qh") ")s ")s ") ") ") ") ") ")s   
A 	AA