
    &`ikQ                        d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
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 d dlmZ d dlmZmZ d dlmZmZ d d	lm Z  d d
l!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 	 d dl6Z6n# e7$ r dZ6Y nw xY wer
d dl8Z8d dl9m:Z:  ed          Z; e j<        e=          Z> ed          Z?dZ@ ed eAe2dz                      ZBde3defdZCde3defdZD G d de	          ZE G d de'          ZFdddeAde
eA         fd ZG G d! d"e&          ZH G d# d$e,          ZIdS )%    N)TYPE_CHECKINGAnyCallableDictIteratorListMappingOptionalTupleTypeVarUnion)parse)get_pyarrow_version)env_integer)TENSOR_COLUMN_NAME)convert_to_pyarrow_arraypyarrow_table_from_pydict)transform_polarstransform_pyarrow)shuffle)row_reprrow_repr_prettyrow_str)TableBlockAccessorTableBlockBuilder)BlockBlockAccessorBlockColumnBlockColumnAccessorBlockExecStatsBlockMetadataWithSchema	BlockTypeU)DEFAULT_TARGET_MAX_BLOCK_SIZEDataContext)Expr)SortKeyTz13.0.0
__bsp_stub#RAY_DATA_ARROW_MAX_CHUNK_SIZE_BYTES    contextreturnc                 N    | j         s| j        rt          j        S t          j        S N)
use_polarsuse_polars_sortr   sortr   r,   s    r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/data/_internal/arrow_block.pyget_sort_transformr5   J   s)     &W4 &$$ %%    c                 N    | j         s| j        rt          j        S t          j        S r/   )r0   r1   r   concat_and_sortr   r3   s    r4   get_concat_and_sort_transformr9   Q   s)     1W4 1// 00r6   c                       e Zd ZdZdefdZdeeee         f         defdZ	de
fdZd Zdeeef         fd	Zd
 Zd Zd ZdS )ArrowRowzA
    Row of a tabular Dataset backed by a Arrow Table block.
    rowc                     || _         d S r/   )_row)selfr<   s     r4   __init__zArrowRow.__init__]   s    			r6   keyr-   c                      ddl m}  |            dt          t                   dt          f fd}t          |t                    }|r|gn|} ||          }|d S |r|d         S |S )Nr   ) get_arrow_extension_tensor_typeskeysr-   c                    j         j        }t          |                    | d                   j                  rt          fd| D                       S j                             |           }t          |          dk    rd S d |j        D             }	 t          d |D                       S # t          $ r |cY S w xY w)Nr   c                 T    g | ]$}t                               j        |d           %S )r   )col_namerow_idx)ArrowBlockAccessor_build_tensor_rowr>   ).0rA   r?   s     r4   
<listcomp>z:ArrowRow.__getitem__.<locals>.get_item.<locals>.<listcomp>j   sI          +<< IQ =    r6   c                     g | ]
}|d          S r    rK   cols     r4   rL   z:ArrowRow.__getitem__.<locals>.get_item.<locals>.<listcomp>v   s    555SV555r6   c                 6    g | ]}|                                 S rO   as_py)rK   items     r4   rL   z:ArrowRow.__getitem__.<locals>.get_item.<locals>.<listcomp>y   s     ===tdjjll===r6   )
r>   schema
isinstancefieldtypetupleselectlencolumnsAttributeError)rD   rV   tableitemsr?   tensor_arrow_extension_typess       r4   get_itemz&ArrowRow.__getitem__.<locals>.get_iteme   s    Y%F&,,tAw//46RSS 	    $(	     I$$T**E5zzQt55u}555E==u===>>>!    s   B1 1C ?C )ray.data.extensionsrC   r   strr   rW   )r?   rA   rC   rb   is_single_itemrD   r`   ra   s   `      @r4   __getitem__zArrowRow.__getitem__`   s    HHHHHH'G'G'I'I$	49 	 	 	 	 	 	 	 	6 $C--&/uuC=4 	8OLr6   c              #   0   K   | j         j        D ]}|V  d S r/   )r>   column_names)r?   ks     r4   __iter__zArrowRow.__iter__   s/      ' 	 	AGGGG	 	r6   c                     | j         j        S r/   )r>   num_columnsr?   s    r4   __len__zArrowRow.__len__   s    y$$r6   c                 D    t          |                                           S r/   )dictr`   rm   s    r4   	as_pydictzArrowRow.as_pydict   s    DJJLL!!!r6   c                      t          |           S r/   )r   rm   s    r4   __str__zArrowRow.__str__   s    t}}r6   c                      t          |           S r/   )r   rm   s    r4   __repr__zArrowRow.__repr__   s    ~~r6   c                 $    t          | ||          S r/   )r   )r?   pcycles      r4   _repr_pretty_zArrowRow._repr_pretty_   s    tQ...r6   N)__name__
__module____qualname____doc__r   r@   r   rd   r   rf   r   rj   rn   r   rq   rs   ru   ry   rO   r6   r4   r;   r;   X   s         C    *uS$s)^4 * * * * *X(    % % %"4S> " " " "    / / / / /r6   r;   c                        e Zd Z fdZedeeee         f         de	fd            Z
edee	         de	fd            Zedefd            Zedd	            Zdefd
Z xZS )ArrowBlockBuilderc                     t           t          d          t                                          t           j        t
          f           d S Nz+Run `pip install pyarrow` for Arrow support)pyarrowImportErrorsuperr@   Tablebytes)r?   	__class__s    r4   r@   zArrowBlockBuilder.__init__   s<    ?KLLL'-/00000r6   r]   r-   c                 X    t          d |                                 D                       S )Nc                 6    i | ]\  }}|t          ||          S rO   )r   )rK   column_namecolumn_valuess      r4   
<dictcomp>z8ArrowBlockBuilder._table_from_pydict.<locals>.<dictcomp>   s9       .K 5m[QQ  r6   )r   r`   )r]   s    r4   _table_from_pydictz$ArrowBlockBuilder._table_from_pydict   s8    ( 29--//  
 
 	
r6   tablesc                 d    t          |           dk    rt          j        | d          S | d         S )N   Tpromote_typesr   )r\   r   concat)r   s    r4   _combine_tablesz!ArrowBlockBuilder._combine_tables   s1    v;;??$+F$GGGG!9r6   c                      dS )NFrO   rO   r6   r4   _concat_would_copyz$ArrowBlockBuilder._concat_would_copy   s    ur6   pyarrow.Tablec                       t          i           S r/   )r   rO   r6   r4   _empty_tablezArrowBlockBuilder._empty_table   s    (,,,r6   c                     t           j        S r/   r"   ARROWrm   s    r4   
block_typezArrowBlockBuilder.block_type   
    r6   r-   r   )rz   r{   r|   r@   staticmethodr   rd   r   r   r   r   r   boolr   r   r"   r   __classcell__r   s   @r4   r   r      s       1 1 1 1 1
 
Dd3i$8 
U 
 
 
 \
 U     \     \ - - - \-I        r6   r   r_   r   max_chunk_size_bytesc                 z    | j         dk    rdS | j         | j        z  }t          dt          ||z                      S )aP  
    Calculate the max chunk size in rows for Arrow to Batches conversion in
    ArrowBlockAccessor.iter_rows().
    Args:
        table: The pyarrow table to calculate the max chunk size for.
        max_chunk_size_bytes: The max chunk size in bytes.
    Returns:
        The max chunk size in rows, or None if the table is empty.
    r   Nr   )nbytesnum_rowsmaxint)r_   r   avg_row_sizes      r4   _get_max_chunk_sizer      sB     |qt|en41c.=>>???r6   c            
       L    e Zd ZeZdC fdZdedefdZdee	         fdZ
de	d	edefd
Zededd fd            Zeefdedede	dej        fd            ZdDdedededdfdZdee         ddfdZdEdZdFdZ	 dGdeee	ee	         f                  deej        ee	ej        f         f         fdZdHdZdefd Z defd!Z!d"e"dd#fd$Z#d%e	d&e$ddfd'Z%ede&fd(            Z'edHd)            Z(d*eee         d+d,f         ddfd-Z)dee	         defd.Z*dee	         ddfd/Z+d0ee	e	f         ddfd1Z,dId3Z-d4ed5d6ddfd7Z.d5d6defd8Z/d9ee0         d5d6ded#         fd:Z1ed;ee         d5d6de2ee3f         fd<            Z4de5fd=Z6d>ede7ee8ej        f                  fd?Z9dJdBZ: xZ;S )KrI   r_   r   c                     t           t          d          t                                          |           d | _        d S r   )r   r   r   r@   _max_chunk_size)r?   r_   r   s     r4   r@   zArrowBlockAccessor.__init__   s=    ?KLLL.2r6   indexr-   c                 V    |                      ||dz   d          }t          |          S )Nr   F)copy)slicer;   )r?   r   base_rows      r4   _get_rowzArrowBlockAccessor._get_row   s+    ::eUQYU:;;!!!r6   c                     | j         j        S r/   )_tablerh   rm   s    r4   rh   zArrowBlockAccessor.column_names   s    {''r6   namevaluec                    dd l m} t          |t          j        t          j        f          r|                     ||          S t          |t          j                  r|j        }nt          j	        |g          }t          j
        t          | j                  |          }|                    ||          }|                     ||          S )Nr   )rY   )pyarrow.computecomputerW   r   ArrayChunkedArrayupsert_columnScalarrY   
infer_typenullsr\   r   	fill_null)r?   r   r   pcrY   arrays         r4   fill_columnzArrowBlockAccessor.fill_column   s    $$$$$$ egmW-ABCC 	3%%dE222 %00 3z)5'22M#dk"2"2>>>ELL..E%%dE222r6   datac                 z    t           j                            |          } | |                                          S r/   )r   ipcopen_streamread_all)clsr   readers      r4   
from_byteszArrowBlockAccessor.from_bytes   s1    ((..s6??$$%%%r6   r<   rH   rG   c                     | |         |         }|                                 }t          |t          j                  sJ t	          |                      |S r/   )rT   rW   npndarrayrY   )r<   rH   rG   elementarrs        r4   rJ   z$ArrowBlockAccessor._build_tensor_row   sJ    
 h-(mmoo#rz**55DII55*
r6   Fstartendr   c                 p    | j                             |||z
            }|rt          j        ||          }|S r/   )r   r   r   combine_chunks)r?   r   r   r   views        r4   r   zArrowBlockAccessor.slice  s=    {  e44 	@$3D$??Dr6   random_seedc                 ,    t          | j        |          S r/   )r   r   )r?   r   s     r4   random_shufflez!ArrowBlockAccessor.random_shuffle  s    t{K000r6   pyarrow.lib.Schemac                     | j         j        S r/   )r   rV   rm   s    r4   rV   zArrowBlockAccessor.schema      {!!r6   pandas.DataFramec                     ddl m} t          j                    }| j                            |j                  }|j        r ||          }|S )Nr   ) _cast_tensor_columns_to_ndarrays)ignore_metadata)"ray.air.util.data_batch_conversionr   r%   get_currentr   	to_pandaspandas_block_ignore_metadataenable_tensor_extension_casting)r?   r   ctxdfs       r4   r   zArrowBlockAccessor.to_pandas  s_    WWWWWW %''[""33S"TT. 	611"55B	r6   Nr]   c                    || j         j        }d}nt          |t                    rd}n|g}d}t	          | j         j                  }|D ]}||vrt          d| d|           g }|D ]L}| j         |         }t          j        |          }|                    t          j	        |d                     M|rt          |          dk    sJ |d         S t          t          ||                    S )NFTzCannot find column z, available columns: zero_copy_onlyr   r   )r   rh   rW   listset
ValueErrorr   combine_chunked_arrayappendto_numpyr\   rp   zip)	r?   r]   should_be_single_ndarraycolumn_names_setcolumncolumn_values_ndarraysrG   rQ   combined_arrays	            r4   r   zArrowBlockAccessor.to_numpy  sQ    ?k.G',$$&& 	,',$$iG'+$t{788 	 	F--- *& * *'* *   . "$ 		 		H+h'C /DSIIN"))!*>%PPP    $ 	>w<<1$$$$)!,,G%;<<===r6   c                     | j         S r/   )r   rm   s    r4   to_arrowzArrowBlockAccessor.to_arrowD  s
    {r6   c                 >    | j         j        dk    r| j         j        ndS Nr   )r   rl   r   rm   s    r4   r   zArrowBlockAccessor.num_rowsG  s#     (,{'>'B'Bt{##Ir6   c                     | j         j        S r/   )r   r   rm   s    r4   
size_byteszArrowBlockAccessor.size_bytesL  r   r6   accr   c                 8   |                                  }|                                 }|j        D ]i}|                    |          }||j        v r3d}|}||j        v r$d                    ||          }|dz  }||j        v $|}|                    ||          }j|S )Nr   z{}_{})r   rh   r   formatappend_column)r?   r   rsrG   rQ   inew_names           r4   _zipzArrowBlockAccessor._zipO  s    MMOOLLNN 
	/ 
	/H((8$$C1>))#!.00&~~h::HFA !.00 $#..AAr6   r   column_datac                 :   t          |t          j        t          j        f          sJ dt	          |                       | j        j                            |          }|dk    r| j                            ||          S | j        	                    |||          S )Nz>Expected either a pyarrow.Array or pyarrow.ChunkedArray, got: )
rW   r   r   r   rY   r   rV   get_field_indexr  
set_column)r?   r   r  
column_idxs       r4   r   z ArrowBlockAccessor.upsert_column_  s     '-)=>
 
 	` 	`_DQ\L]L]__	` 	` 
 ['77DD
;,,[+FFF;))*k;OOOr6   c                      t                      S r/   )r   rO   r6   r4   builderzArrowBlockAccessor.builderl  s     """r6   c                  4    t                                           S r/   )r   r   rO   r6   r4   r   zArrowBlockAccessor._empty_tablep  s     --///r6   indicespyarrow.Arraypyarrow.ChunkedArrayc                 6    t          j        | j        |          S )zSelect rows from the underlying table.

        This method is an alternative to pyarrow.Table.take(), which breaks for
        extension arrays.
        )r   
take_tabler   )r?   r  s     r4   takezArrowBlockAccessor.taket  s     !+DKAAAr6   c                 6    | j                             |          S r/   )r   dropr?   r]   s     r4   r  zArrowBlockAccessor.drop  s    {(((r6   c                     t          d |D                       st          d| d          t          |          dk    r|                     t          d           S | j                            |          S )Nc              3   @   K   | ]}t          |t                    V  d S r/   )rW   rd   rP   s     r4   	<genexpr>z,ArrowBlockAccessor.select.<locals>.<genexpr>  s,      ;;C:c3'';;;;;;r6   zYColumns must be a list of column name strings when aggregating on Arrow blocks, but got: .r   )allr   r\   r   $_BATCH_SIZE_PRESERVING_STUB_COL_NAMEr   r[   r  s     r4   r[   zArrowBlockAccessor.select  s    ;;7;;;;; 	5*15 5 5   w<<1 ##$H$OOO{!!'***r6   columns_renamec                 6    | j                             |          S r/   )r   rename_columns)r?   r  s     r4   r!  z!ArrowBlockAccessor.rename_columns  s    {)).999r6   other_blockc                     | j         }t          |j        |j                  D ]\  }}|                    ||          }|S r/   )r   r   rh   r]   r  )r?   r"  result_tabler   r   s        r4   hstackzArrowBlockAccessor.hstack  sK    { 8+:MNN 	D 	DLD&'55dFCCLLr6   	n_samplessort_keyr'   c                     t          j        t          | j        j                  |          }| j                            |                                          }t          j        ||          S r/   )	randomsampleranger   r   r[   get_columnsr   r  )r?   r&  r'  r  r_   s        r4   _samplezArrowBlockAccessor._sample  sT    -dk&: ; ;YGG""8#7#7#9#9:: +E7;;;r6   c                    |                                 s J d|                                  d            | j        j        dk    r|                                 S t	          j                    }t          |          } || j        |          S )Nz'Sorting columns couldn't be empty (got )r   )r,  r   r   r   r%   r   r5   )r?   r'  r,   r2   s       r4   r2   zArrowBlockAccessor.sort  s      ""	O 	ONX5I5I5K5KNNN	O 	O" ;1$$ $$&&&)++!'**tDK***r6   
boundariesc                                           |          }|j        dk    r+ fdt          t          |          dz             D             S t          |          dk    r|gS t	          j        |                              ||          S )Nr   c                 8    g | ]}                                 S rO   )r   )rK   _r?   s     r4   rL   z9ArrowBlockAccessor.sort_and_partition.<locals>.<listcomp>  s%    LLLAD%%''LLLr6   r   )r2   r   r+  r\   r   	for_block_find_partitions_sorted)r?   r0  r'  r_   s   `   r4   sort_and_partitionz%ArrowBlockAccessor.sort_and_partition  s     		(##>QLLLLs:7J1K1KLLLL__!!7N&u--EE
 
 	
r6   blocksc                    t          j                    }d | D             } t          |           dk    rt                                          }nMt          j        | t          j                  } t          t          j                              } || |d          }|t          j        ||                                          fS )Nc                 (    g | ]}|j         d k    |S rN   )r   )rK   bs     r4   rL   z:ArrowBlockAccessor.merge_sorted_blocks.<locals>.<listcomp>  s    666qzA~~!~~~r6   r   Tr   )stats)r    r  r\   rI   r   r   normalize_block_typesr"   r   r9   r%   r   r!   
from_blockbuild)r7  r'  r;  retr8   s        r4   merge_sorted_blocksz&ArrowBlockAccessor.merge_sorted_blocks  s     &((66V666v;;!$1133CC (=fioVVF;K<S<U<UVVO!/&($GGGC+6s%++--PPPPPr6   c                     t           j        S r/   r   rm   s    r4   r   zArrowBlockAccessor.block_type  r   r6   public_row_formatc              #   L  K   | j         }|r[| j        t          |t                    | _        |                    | j                  D ]}|                                E d {V  d S |                                 }t          |          D ]}|                     |          V  d S )N)max_chunksize)	r   r   r   ARROW_MAX_CHUNK_SIZE_BYTES
to_batches	to_pylistr   r+  r   )r?   rB  r_   batchr   r  s         r4   	iter_rowszArrowBlockAccessor.iter_rows  s        	'#+ (;5( ($ ))8L)MM - - ??,,,,,,,,,,- - }}H8__ ' 'mmA&&&&&&' 'r6   predicate_exprr&   c                     | j         j        dk    r| j         S ddlm}  ||| j                   }| j                             |          S )z,Filter rows based on a predicate expression.r   )	eval_expr)r   r   ?ray.data._internal.planner.plan_expression.expression_evaluatorrL  filter)r?   rJ  rL  masks       r4   rN  zArrowBlockAccessor.filter  se    ;1$$;	
 	
 	
 	
 	
 	

 y55 {!!$'''r6   )r_   r   F)r-   r   )r-   r   r/   r   )r"  r   r-   r   )rJ  r&   r-   r   )<rz   r{   r|   r;   ROW_TYPEr@   r   r   r   rd   rh   r   r   r   classmethodr   r   r   r   r   r   rJ   r   r   r
   r   rV   r   r   r   r   r   r   r   r   r  r   r   r   r  r   r  r  r[   r!  r%  r-  r2   r(   r6  r   r!   r@  r"   r   r   r	   rI  rN  r   r   s   @r4   rI   rI      s       H3 3 3 3 3 3"c "h " " " "(d3i ( ( ( (3 3C 3E 3 3 3 3" &e &(< & & & [& 5G  #/2	   \ 3 S      1(3- 1O 1 1 1 1" " " "	 	 	 	 :>%> %>c49n 56%>	rz4RZ00	1%> %> %> %>N   J# J J J J
"C " " " " '     PP-8P	P P P P #& # # # \# 0 0 0 \0	BtCy/3IIJ	B 
	B 	B 	B 	B)DI )% ) ) ) )
+d3i 
+O 
+ 
+ 
+ 
+:T#s(^ : : : : :   < <	 <o < < < <
+Y +5 + + + +
q'
-6
	g
 
 
 
 QUQ'0Q	u--	.Q Q Q \QI    '!%'	%+,	-' ' ' '$( ( ( ( ( ( ( (r6   rI   c            
           e Zd Zded         f fdZdddededee         fd	Zdddededee         fd
Z	dddededee         fdZ
dddededee         fdZdddededee         fdZ	 ddedee         dedee         fdZdddedededee         fdZdefdZdeeeef                  fdZdefdZdefdZdefdZdefdZdee         fdZd dedej        fdZdeee         df         fdZ xZ S )!ArrowBlockColumnAccessorrQ   )r  r  c                 J    t                                          |           d S r/   )r   r@   )r?   rQ   r   s     r4   r@   z!ArrowBlockColumnAccessor.__init__  s!    r6   TrS   ignore_nullsrT   r-   c                ~    dd l m} |                    | j        |rdnd          }|r|                                n|S )Nr   
only_validr  )mode)r   r   count_columnrT   r?   rV  rT   pacress        r4   rZ  zArrowBlockColumnAccessor.count  sK    %%%%%%ii<+R<<UiSS#,syy{{{,r6   c                v    dd l m} |                    | j        |          }|r|                                n|S Nr   
skip_nulls)r   r   sumr[  rT   r\  s        r4   rc  zArrowBlockColumnAccessor.sum  B    %%%%%%ggdl|g<<#,syy{{{,r6   c                v    dd l m} |                    | j        |          }|r|                                n|S r`  )r   r   minr[  rT   r\  s        r4   rf  zArrowBlockColumnAccessor.min  rd  r6   c                v    dd l m} |                    | j        |          }|r|                                n|S r`  )r   r   r   r[  rT   r\  s        r4   r   zArrowBlockColumnAccessor.max  rd  r6   c                v    dd l m} |                    | j        |          }|r|                                n|S r`  )r   r   meanr[  rT   r\  s        r4   ri  zArrowBlockColumnAccessor.mean  sB    %%%%%%hht|h==#,syy{{{,r6   Nri  c                     dd l m} ||                     |          }|d S |                    |                    |                    | j        |          d          |          }|r|                                n|S )Nr   )rV     ra  )r   r   ri  rc  powersubtractr[  rT   )r?   rV  ri  rT   r]  r^  s         r4   sum_of_squared_diffs_from_meanz7ArrowBlockColumnAccessor.sum_of_squared_diffs_from_mean  s     	&%%%%% <99,977D<4ggIIcll4<66::|  
 
 $,syy{{{,r6   qc                    dd l m} |                    | j        ||          }|d         }|r|                                n|S )Nr   )ro  rb  )r   r   quantiler[  rT   )r?   ro  rV  rT   r]  r   r^  s          r4   rq  z!ArrowBlockColumnAccessor.quantile"  sO     	&%%%%%T\Q<HHAh#,syy{{{,r6   c                     dd l m} |                                 rBdd l}|                    | j                                                                                  S |                    | j                  S r   )r   r   is_composed_of_listspolars
from_arrowr[  uniquer   )r?   r]  rt  s      r4   rv  zArrowBlockColumnAccessor.unique,  sv    %%%%%%$$&& 	G MMM$$T\2299;;DDFFFzz$,'''r6   c                 
   dd l m} |                    | j                  }t	          |          dk    rd S |                    d                                          |                    d                                          dS )Nr   valuescounts)rx  ry  )r   r   value_countsr[  r\   rX   rG  )r?   r]  rz  s      r4   rz  z%ArrowBlockColumnAccessor.value_counts9  s    %%%%%%,/,<,<T\,J,J|!!4"((22<<>>"((22<<>>
 
 	
r6   c                     dd l }|                    d| j        i          }|                                                    |j        d          }|                                S )Nr   rQ   T)wrap_numerical)rt  	DataFramer[  	hash_rowscastInt64r   )r?   plr   hashess       r4   hashzArrowBlockColumnAccessor.hashD  sX    \\5$,/00$$RXd$CC   r6   c                 B    dd l m} |                    | j                  S r   )r   r   list_flattenr[  r?   r]  s     r4   flattenz ArrowBlockColumnAccessor.flattenK  s*    %%%%%%---r6   c                 B    dd l m} |                    | j                  S r   )r   r   	drop_nullr[  r  s     r4   dropnazArrowBlockColumnAccessor.dropnaP  s(    %%%%%%}}T\***r6   c                 z    t           j        j        t           j        j        f}t	          | j        j        |          S r/   )r   libListTypeLargeListTyperW   r[  rY   )r?   typess     r4   rs  z-ArrowBlockColumnAccessor.is_composed_of_listsU  s+    %w{'@A$,+U333r6   c                 4    | j                                         S r/   )r[  rG  rm   s    r4   rG  z"ArrowBlockColumnAccessor.to_pylistY  s    |%%'''r6   Fr   c                    t                      t          k     rSt          | j        t          j                  r| j                                        S | j                            |          S | j                            |          S )Nr   )r   ,_MIN_PYARROW_VERSION_TO_NUMPY_ZERO_COPY_ONLYrW   r[  r   r   r   )r?   r   s     r4   r   z!ArrowBlockColumnAccessor.to_numpy\  sy      #OOOg2  L |,,...|,,N,KKK|$$N$CCCr6   r  c                     | j         S r/   )r[  rm   s    r4   _as_arrow_compatiblez-ArrowBlockColumnAccessor._as_arrow_compatibleg  s
    |r6   )NTrP  )!rz   r{   r|   r   r@   r   r
   r#   rZ  rc  rf  r   ri  rn  floatrq  r   rv  r   rd   r   rz  r  r  r  rs  r   rG  r   r   r   r  r   r   s   @r4   rT  rT    s-       E"IJ       :> - - -T -$ -(1+ - - - - 8< - - -4 - - - - - - 8< - - -4 - - - - - - 8< - - -4 - - - - - - 9= - - -D - -! - - - - KO- - -(0-CG-	!- - - -$ >B- - --)--6:-	!- - - -( ( ( ( (	
htCI7 	
 	
 	
 	
!k ! ! ! !. . . . .
+ + + + +
4d 4 4 4 4(49 ( ( ( (	D 	Dt 	D
 	D 	D 	D 	DeDI,F&G        r6   rT  )Jloggingr)  typingr   r   r   r   r   r   r	   r
   r   r   r   numpyr   packaging.versionr   parse_versionray._private.arrow_utilsr   ray._private.ray_constantsr   ray.air.constantsr   $ray.air.util.tensor_extensions.arrowr   r   ray.data._internal.arrow_opsr   r   .ray.data._internal.arrow_ops.transform_pyarrowr   ray.data._internal.rowr   r   r   ray.data._internal.table_blockr   r   ray.data.blockr   r   r   r   r    r!   r"   r#   ray.data.contextr$   r%   ray.data.expressionsr&   r   r   pandas2ray.data._internal.planner.exchange.sort_task_specr'   r(   	getLoggerrz   loggerr  r  r   rE  r5   r9   r;   r   r   rI   rT  rO   r6   r4   <module>r     s                                  4 4 4 4 4 4 8 8 8 8 8 8 2 2 2 2 2 2 0 0 0 0 0 0        M L L L L L L L B B B B B B E E E E E E E E E E P P P P P P P P	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 H G G G G G G G % % % % % %NNNN   GGG  KMMMJJJJJJ GCLL		8	$	$ 0=}X/F/F ,'3 $ )[)C%*++  & & & & & &1; 18 1 1 1 1E/ E/ E/ E/ E/w E/ E/ E/P    )   D@@25@c]@ @ @ @&W( W( W( W( W(+ W( W( W(ty y y y y2 y y y y ys   
B BB