
    &`iS
                         d dl mZ d dlmZmZmZ d dlZd dlmZm	Z	 erd dl
mZ deee                  ded         fd	Zg d
ZdedefdZdedefdZde	de	fdZdS )    )ThreadPoolExecutor)TYPE_CHECKINGAnyListN)BlockAccessorCallableClass	RefBundlesimple_datareturnr
   c                 P   ddl }ddl}ddlm} g }| D ]}|                    d|i          }|                     |t          j        |          t          j	        |          
                                fgd|j        j                            |d                               |S )	zcCreate ref bundles from a list of block data.

    One bundle is created for each input block.
    r   Nr	   idTF)preserve_index)owns_blocksschema)pandaspyarrow'ray.data._internal.execution.interfacesr
   	DataFrameappendrayputr   	for_blockget_metadatalibSchemafrom_pandas)r   pdpar
   outputblocks         u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/data/_internal/execution/util.pymake_ref_bundlesr#      s    
 AAAAAAF 
 
dE]++I %/66CCEE !v}00u0MM	 	 		
 	
 	
 	
 M    )BKiBMiBGiBTiBPiB	num_bytesc                     d}| dk    rF|t          t                    dz
  k     r+| dz  } |dz  }| dk    r|t          t                    dz
  k     +| dt          |          S )zDReturn a human-readable memory string for the given amount of bytes.r   i      z.1f)lenmemory_units)r+   ks     r"   memory_stringr1   *   sz    	A
t

C$5$5$9 9 9T		Q t

C$5$5$9 9 9 ..\!_...r$   locality_hitsc                 "    |sdS d|  d| |z    dS )z9Return a human-readable string for object locality stats.z[all objects local][/z objects local] )r2   locality_missess     r"   locality_stringr8   3   s.     %$$O}OO}>OOOOr$   callable_clsc                 "     G d d|           }|S )aB  Returns a thread-safe CallableClass with the same logic as the provided
    `callable_cls`.

    This function allows the usage of concurrent actors by safeguarding user logic
    behind a separate thread.

    This allows batch slicing and formatting to occur concurrently, to overlap with the
    user provided UDF.
    c                   2     e Zd Z fdZ fdZ fdZ xZS )Cmake_callable_class_single_threaded.<locals>._SingleThreadedWrapperc                 d    t          d          | _         t                      j        |i | d S )Nr-   )max_workers)r   thread_pool_executorsuper__init__)selfargskwargs	__class__s      r"   rA   zLmake_callable_class_single_threaded.<locals>._SingleThreadedWrapper.__init__F   s8    (:q(I(I(ID%EGGd-f-----r$   c                 D    t                                                      S N)r@   __repr__)rB   rE   s    r"   rH   zLmake_callable_class_single_threaded.<locals>._SingleThreadedWrapper.__repr__J   s    77##%%%r$   c                 z     | j         j        t                      j        g|R i |}|                                S rG   )r?   submitr@   __call__result)rB   rC   rD   futurerE   s       r"   rK   zLmake_callable_class_single_threaded.<locals>._SingleThreadedWrapper.__call__M   s>    5T.5egg6FXXXXQWXXF==??"r$   )__name__
__module____qualname__rA   rH   rK   __classcell__)rE   s   @r"   _SingleThreadedWrapperr<   E   sj        	. 	. 	. 	. 	.	& 	& 	& 	& 	&	# 	# 	# 	# 	# 	# 	# 	# 	#r$   rR   r6   )r9   rR   s     r"   #make_callable_class_single_threadedrS   :   s4    # # # # # # # # "!r$   )concurrent.futuresr   typingr   r   r   r   ray.data.blockr   r   r   r
   r#   r/   floatstrr1   intr8   rS   r6   r$   r"   <module>rZ      s#   1 1 1 1 1 1 + + + + + + + + + + 



 7 7 7 7 7 7 7 7 BAAAAAA$tCy/ d;6G    8 877/U /s / / / /P3 PC P P P P"m " " " " " " "r$   