
    -j\                        d dl mZ d dlZ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Zd dlmZ d dlmZ d dlmZ  ej        e          Zdd	Zd
 Z G d dej                  Ze	 G d d                      ZdS )    )annotationsN)	dataclassfield)tqdm)MaxRetriesExceeded)	RunConfigargsthreading.ExceptHookArgsc                .    t          |            | j        N)printexc_type)r	   s    X/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/ragas/executor.pyrunner_exception_hookr      s    	$KKK
-    c                    t           j        d d         dk     rd| ini }|dk    rt          j        |fi |S t          j        |fi |fdfd|D             }t          j        |fi |S )N   )   
   loopc                t   K   4 d {V  |  d {V cd d d           d {V  S # 1 d {V swxY w Y   d S r    )coro	semaphores    r   	sema_corozas_completed.<locals>.sema_coro$   s       	 	 	 	 	 	 	 	::::::	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   '
11c                &    g | ]} |          S r   r   ).0cr   s     r   
<listcomp>z as_completed.<locals>.<listcomp>(   s!    ...1))A,,...r   )sysversion_infoasyncioas_completed	Semaphore)r   corosmax_workersloop_arg_dict
sema_corosr   r   s        @@r   r$   r$      s    &)&6rr&:W&D&DVTNN"Mb#E;;];;; !+????I     /......J
<<m<<<r   c                  6     e Zd Z	 	 	 dd fdZddZd Z xZS )RunnerTNjobs!t.List[t.Tuple[t.Coroutine, str]]descstrkeep_progress_barboolraise_exceptions
run_configt.Optional[RunConfig]c                D   t                                                       || _        || _        || _        || _        |pt                      | _        t          j	                    | _
        t          | j
        d | j        D             | j        j                  | _        d S )Nc                    g | ]\  }}|S r   r   )r   r   _s      r   r    z#Runner.__init__.<locals>.<listcomp>@   s    111GD!4111r   )r   r&   r'   )super__init__r,   r.   r0   r2   r   r3   r#   new_event_loopr   r$   r'   futures)selfr,   r.   r0   r2   r3   	__class__s         r   r9   zRunner.__init__-   s     			!2 0$3	 *,,	#11ty1113
 
 
r   returnt.List[t.Any]c                  K   g }t          | j        | j        t          | j                  | j                  D ]}dt          j        f}	 | d {V }np# t          $ r,}t          
                    d|j                    Y d }~n?d }~wt          $ r/}| j        r|t                              dd           Y d }~nd }~ww xY w|                    |           |S )N)r.   totalleaver   zmax retries exceeded for z&Runner in Executor raised an exceptionT)exc_info)r   r;   r.   lenr,   r0   npnanr   loggerwarning	evolution	Exceptionr2   errorappend)r<   resultsfutureres        r   	_aresultszRunner._aresultsD   s2     Ldi..(
 
 
 	 	F RVA
 LLLLLL% J J JH1;HHIIIIIIII   ( GLL@4 !        	 NN1s$   
A
C "BC %B;;C c                    g }	 | j                             |                                           }|| _        | j                                          d S # || _        | j                                          w xY wr   )r   run_until_completerQ   rM   stop)r<   rM   s     r   runz
Runner.run]   sl    	i224>>3C3CDDG"DLINN #DLINNs   ,A "A4)TTN)
r,   r-   r.   r/   r0   r1   r2   r1   r3   r4   r>   r?   )__name__
__module____qualname__r9   rQ   rU   __classcell__)r=   s   @r   r+   r+   ,   sp        
 #'!%,0
 
 
 
 
 
 
.   2      r   r+   c                      e Zd ZU dZded<   dZded<    eed          Zd	ed
<   dZ	ded<    ee
d          Zded<   ddZddddZddZdS )Executor
Evaluatingr/   r.   Tr1   r0   F)default_factoryreprr?   r,   r2   r4   r3   callable
t.Callablec                    fd}|S )Nc                 (   K    | i | d {V fS r   r   )r	   kwargsr`   counters     r   wrapped_callable_asynczAExecutor.wrap_callable_with_index.<locals>.wrapped_callable_asynco   s3      ((D";F";";;;;;;;;;r   r   )r<   r`   re   rf   s    `` r   wrap_callable_with_indexz!Executor.wrap_callable_with_indexn   s*    	< 	< 	< 	< 	< 	< &%r   N)namerh   t.Optional[str]c                   |                      |t          | j                            }| j                             ||i ||f           d S r   )rg   rD   r,   rL   )r<   r`   rh   r	   rd   callable_with_indexs         r   submitzExecutor.submitt   sT     #;;Hc$)nnUU	--t>v>>EFFFFFr   r>   c                r   t          | j        | j        | j        | j        | j                  }|                                 	 |                                 n# w xY w|j        2| j        rt          d          t                              d           g S t          |j        d           }d |D             S )N)r,   r.   r0   r2   r3   zCExecutor failed to complete. Please check logs above for full info.z5Executor failed to complete. Please check logs above.c                    | d         S )Nr   r   )xs    r   <lambda>z"Executor.results.<locals>.<lambda>   s
    AaD r   )keyc                    g | ]
}|d          S )   r   )r   rO   s     r   r    z$Executor.results.<locals>.<listcomp>   s    ---!---r   )r+   r,   r.   r0   r2   r3   startjoinrM   RuntimeErrorrG   rK   sorted)r<   executor_jobsorted_resultss      r   rM   zExecutor.resultsz   s    "4!2
 
 
 		CCCC'$ "Y   TUUU	 4..III--n----s   A A)r`   ra   )r`   ra   rh   ri   rV   )rW   rX   rY   r.   __annotations__r0   r   listr,   r2   r   r3   rg   rl   rM   r   r   r   r\   r\   f   s         D"""""%5AAADAAAA"""""(-ie(T(T(TJTTTT& & & & DHG G G G G G. . . . . .r   r\   )r	   r
   )
__future__r   r#   loggingr!   	threadingtypingtdataclassesr   r   numpyrE   	tqdm.autor   ragas.exceptionsr   ragas.run_configr   	getLoggerrW   rG   r   r$   Threadr+   r\   r   r   r   <module>r      sE   " " " " " "   



         ( ( ( ( ( ( ( (           / / / / / / & & & & & &		8	$	$   = = = 7 7 7 7 7Y 7 7 7t *. *. *. *. *. *. *. *. *. *.r   