
    z-Ph0o                        d dl Z d dlZd dlZd dlZ	 d dlZn# e$ r dZY nw xY wd dlZd dl	m
Z ej                            g dg ddej        fddej        fddej        fddej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fddej        fd ej                     ej!        f ej"        d          dej#        f ej"        d	          dej$        fd
dej%        fddej&        fd ej'                    ej(        fd ej)                    ej*        fd ej+                    ej,        fd ej-                    ej.        fd ej/        d          ej0        fg ddej1        fg d ej2         ej                              ej3        fg d ej4         ej                    d          ej5        fg d ej6         ej                              ej7        fg d ej8         ej                              ej9        fe j:        ;                                dej<        fe j:        ;                                 ej=                    ej>        fe j         ?                                dej@        fe j         ?                                A                                B                    d            ejC        d          ejD        fe j         ?                                A                                dejE        f e jF        d          dejG        f ejH        g d          dejI        fdddgddejJ        fddg ejK         ejL                     ej                              ejM        f          d             ZNej        j        d             ZOd  ZPd! ZQd" ZRd# ZSd$ ZTej        jU        d%             ZVd& ZWd' ZXd( ZYd) ZZd* Z[d+ Z\d, Z]ej                            d-d.gd ejC        d          fd/ ejC        d          fd ejC        d          fd ejC        d0          fd/ ejC        d0          fd ejC        d0          fd ej^        d1          fd2 ej^        d1          fd ej^        d1          fd ej^        d3          fd2 ej^        d3          fd ej^        d3          fd ej_                    fd/ ej_                    fd ej_                    fd ej=                    fd2 ej=                    fd ej=                    fd ej`        d3          fd2 ej`        d3          fd ej`        d3          fd eja        d3          fd2 eja        d3          fd eja        d3          fd4 ejb                    fd ejb                    fg          d.ejc        fd5            Zdd6 Zeej        jU        d7             Zfd8 Zgd9 Zhej                            d: ej_                     ej=                    g          d;             Ziej        jj        d<             Zkej        jl        d=             Zmd> Znd? Zoej        j        d@             Zpej        jj        dA             Zqej        jl        dB             ZrdC Zsej                            d-dDdEg          ej                            dF ejL                    ej%        f ej'                    ej(        f ej+                    ej,        fg          dG                         Ztej                            d-dHdIg          ej                            dF ej/                    ej&        f ej)                    ej*        f ej-                    ej.        fg          dJ                         ZudK Zvej                            dL ej4         ejL                              ej1        f ej2         ejL                              ej3        f ej6         ejL                              ej7        f ej8         ejL                              ej9        fg          dM             Zwej        j        ej                            dN ej4         ej                               ej2         ej                               ej6         ej                               ej8         ej                              dg          dO                         Zxej        jj        ej                            dPej4        ej2        ej6        ej8        g          dQ                         ZydR ZzdS Z{dT Z|dU Z}dV Z~dW ZdX ZdY ZdZ Zd[ ZdS )\    N)valuetyklassFT         ?1.123z*1.1234567890123456789012345678901234567890strings   byteslargestrings
   largebytesstring_views
   bytes_views   abc   r      r   r   r   r      )r   r   r   r      r   )microseconds)days)r   r   ir   abr   r   r   r   c                 (   t          j        | |          }|                                 |                    d           t          ||          sJ |                                | k    sJ |t          j        | |          k    sJ || k    sJ |dk    sJ t          |          t          |          k    sJ |j        du sJ |d k    sJ t          j        d |j                  }|j        du sJ |                                J |t          j        | |          k    sJ |                    |	                    |                    }|
                    |          sJ t          j        |          } |            J ~ |            J d S )NtypeTfullelseF)pascalarvalidate
isinstanceas_pyhashis_validr   loadsdumpsequalsweakrefref)r   r   r   pickle_moduler   restoredwrs          Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_scalars.pytest_basicsr1       s   V 		%b!!!AJJLLLJJDJa7799	%b)))))))::::;;;;77d1gg:9999
	$QV$$$A:7799	%b))))))) ""=#6#6q#9#9::H88H 
QB244	244<<<<<    c                    t          j        d          t          j                    t          j        }}}t          j        ||          }|                                 |                    d           t          ||          sJ |                                |k    sJ |t          j        ||          k    sJ ||k    sJ |dk    sJ t          |          t          |          k    sJ |j	        du sJ |d k    sJ t          j        d |j
                  }|j	        du sJ |                                J |t          j        ||          k    sJ |                     |                     |                    }|                    |          sJ t          j        |          } |            J ~ |            J d S )Nr   r   Tr   r    F)npfloat16r!   HalfFloatScalarr"   r#   r$   r%   r&   r'   r   r(   r)   r*   r+   r,   )r-   r   r   r   r   r.   r/   s          r0   test_basics_np_requiredr7   j   s   z#
b6Hu2E
	%b!!!AJJLLLJJDJa7799	%b)))))))::::;;;;77d1gg:9999
	$QV$$$A:7799	%b))))))) ""=#6#6q#9#9::H88H 
QB244	244<<<<<r2   c                  6   t          j        t          j        d          t          j                    d          } |                                  t          j        t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )N   Fsafez(string scalar contains invalid UTF8 datamatchTr   )	pccastr!   r"   r
   r#   pytestraises
ValueErrorr   s    r0   test_invalid_scalarrD      s    
	'""BIKKe<<<AJJLLL	zG
I 
I 
I  	


                 s   *BBBc                      t          j        t                    5  t          j                     d d d            d S # 1 swxY w Y   d S )N)r@   rA   RuntimeErrorr!   
NullScalar r2   r0   test_null_singletonrI      s    	|	$	$  
                 s   ;??c                    t          j        d           }|t           j        u sJ |                                J |dk    sJ |t          j        d           k    du sJ |dk    du sJ t           j        t           j        k    sJ t           j        dvsJ t          j        d d g          }|D ](}|t           j        u sJ |                                J )|                     |                     |                    }|                    |          sJ t          j	        |          } |            J ~ |            J d S )N	somethingTr   F)r   )
r!   r"   NAr%   arrayr(   r)   r*   r+   r,   )r-   nullarrvr.   r/   s         r0   
test_nullsrQ      s[   9T??D25====::<<;BIdOO#,,,,AI%5BE>>>>5
(D$<
 
 C ! !BEzzzzwwyy     ""=#6#6t#<#<==H??4      
T		B244244r2   c                      t          t          d                    } t          j        | | z             }t	          |          }t          |t                    sJ t          |          dk    sJ d S )Ni  )listranger!   rM   setr$   len)valuesrO   set_from_arrays      r0   test_hashingrY      sh    %**F
(6F?
#
#CXXNnc*****~#%%%%%%r2   c                      t          j        ddiddigddid gg          } t          j        ddid gg          }t          | d                   }t          |d                   }||k    sJ d S )Nr   r         r   r   )r!   rM   r&   )r   r   hash1hash2s       r0   test_hashing_struct_scalarr_      sv    
C8c1X&#q4(89::A
C8T"#$$A1JJE1JJEE>>>>>>r2   c            	         t          t          j        d                              t          j        d                              } | dk    sJ t          t          j        t          j        ddd          t          j        dd                              }|d	k    sJ t          t          j        t          j        ddd          t          j        d
                              }|dk    sJ t          t          j        t          j        d                              t          j        d                    d                    }|dk    sJ d S )Nz
0000-01-01r   z0<pyarrow.TimestampScalar: '0000-01-01T00:00:00'>i  r   UTCtzr   z5<pyarrow.TimestampScalar: '2015-01-01T00:00:00+0000'>usz7<pyarrow.TimestampScalar: '2015-01-01T00:00:00.000000'>z
2000-01-01America/New_Yorkz5<pyarrow.TimestampScalar: '2000-01-01T00:00:00-0500'>)reprr!   r"   r?   	timestampdatetimer>   assume_timezoner   r   cds       r0   test_timestamp_scalarrm      s9   RY|$$))",s*;*;<<==ABBBBBRYx(q!442<PU;V;V;VWWWXXAGGGGGRYx(q!442<;M;MNNNOOAIIIIIR
	,$$R\#%6%6779KM M 	N 	NAGGGGGGGr2   c                     t          j        d          } t          j        d          }t          | t           j                  sJ t          |t           j                  sJ t	          |          dk    sJ t          |          dk    sJ t	          |           dk    sJ t          |           dk    sJ |                                du sJ |                                 du sJ d S )NFTz<pyarrow.BooleanScalar: True>Truez<pyarrow.BooleanScalar: False>False)r!   r"   r$   BooleanScalarrf   strr%   )falsetrues     r0   	test_boolru      s    IeE9T??DeR-.....dB,-----::88888t99;;:::::u::    ::<<4;;==E!!!!!!r2   c                     t          j        d          } t          | t           j                  sJ t	          |           dk    sJ t          |           dk    sJ |                                 dk    sJ t          j        t                    5  t          j        dd           d d d            n# 1 swxY w Y   t          j        d          } t          | t           j
                  sJ t	          |           dk    sJ t          |           d	k    sJ |                                 dk    sJ t          t          j        t          j        d
          d          } t          | t           j                  sJ t	          |           dt          j        d
          dk    sJ t          |           dk    sJ |                                 d
k    sJ d S d S )Nr   z<pyarrow.Int64Scalar: 1>1r   uint8r         ?z<pyarrow.DoubleScalar: 1.5>z1.5g      ?r5   z<pyarrow.HalfFloatScalar: >z0.5)r!   r"   r$   Int64Scalarrf   rr   r%   r@   rA   OverflowErrorDoubleScalarr4   r5   r6   rC   s    r0   test_numericsr~      s   
	!Aa(((((7700000q66S====7799>>>>	}	%	% $ $
	"7####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 		#Aa)))))7733333q66U????7799	~IbjooI666!R/00000 AwwKrz#KKKKKKK1vvwwyyC ~  s   B11B58B5c                  j   t          j        d          } t          j        |           }t	          |t          j                  sJ |                                | k    sJ |j        t          j        dd          k    sJ t          j        d          } t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j        | t          j        dd                    }t	          |t          j                  sJ |                                | k    sJ d S )Nr	   r   r   1.1234scaler   r   )decimalDecimalr!   r"   r$   Decimal128Scalarr%   r   
decimal128r@   rA   ArrowInvalidrP   r   s     r0   test_decimal128r      s     A
	!Aa,-----7799>>>>6R]1a((((((!!A	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 		!"-333444Aa,-----7799>>>>>>$   1+C((C,/C,+EEEc                  j   t          j        d          } t          j        |           }t	          |t          j                  sJ |                                | k    sJ |j        t          j        dd          k    sJ t          j        d          } t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j        | t          j        dd                    }t	          |t          j                  sJ |                                | k    sJ d S )	Nz,1234567890123456789012345678901234567890.123+   r   r   r   r   r   r   )r   r   r!   r"   r$   Decimal256Scalarr%   r   
decimal256r@   rA   r   r   s     r0   test_decimal256r     s   FGGA
	!Aa,-----7799>>>>6R]2q))))))!!A	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 		!"-333444Aa,-----7799>>>>>>r   c                     t          j        ddd          } t          j        ddd          }t          j                    t          j                    fD ]9}| |fD ]2}t          j        ||          }|                                |k    sJ 3:d S )Ni  r   i  r   )rh   dater!   date32date64r"   r%   )d1d2r   rl   r   s        r0   	test_dater      s    	tQ	"	"B	tQ	"	"By{{BIKK( " "b 	" 	"A	!"%%%A7799>>>>>	"" "r2   c                  Z   t          j        t          j        ddd          t          j        d                    } t          j        ddd          }t          j                    t          j                    fD ]1}|                     |          }|                                |k    sJ 2d S )Ni  r   rd   r   )	r!   r"   rh   rg   r   r   r   r?   r%   )r"   expectedr   results       r0   test_date_castr   +  s    Yx(q!442<;M;MNNNF}T1a((Hy{{BIKK( * *R||~~)))))* *r2   c                  n   t          j        dd          } t          j        dd          }t          j        d          t          j        d          t          j        d          t          j        d          g}|D ]9}| |fD ]2}t          j        ||          }|                                |k    sJ 3:d S )	N   r      r   msrd   nsr   )rh   timer!   time32time64r"   r%   )t1t2typesr   tr   s         r0   test_time_from_datetime_timer   4  s    	r1		B	r1		BYs^^RYt__biooryOE " "b 	" 	"A	!"%%%A7799>>>>>	"" "r2   r   	time_typei   @r   rd   l            r   )r   r   c                 x    t          j        | |          }|                    d           |j        | k    sJ d S )Nr   Tr   )r!   r"   r#   r   )r   r   time_scalars      r0   test_temporal_valuesr   ?  sI    : )E	222Kd###%%%%%%r2   c                     t          j        dd          } |                     d          t          j        dd          k    sJ |                     d          t          j        dd          k    sJ |                     d          t          j        dd          k    sJ t          j        t
                    5  t          j        d                              d	           d d d            d S # 1 swxY w Y   d S )
Nr   int8r   int64uint32r
   5fooint32)r!   r"   r?   r@   rA   rB   )vals    r0   	test_castr   a  s,   
)AF
#
#
#C88G	!' : : :::::88H18!<!<!<<<<<88H3X!>!>!>>>>>	z	"	" ' '
	%g&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   =(C22C69C6c            	      F   t          j        d           dd l} t          j        dddddd| j                  }t          j        |t          j        dd          	          }|                    t          j	                              t          j        d
          k    sJ d S )Npytzr     r   tzinfor   ra   rb   r   z2000-01-01 00:00:00.000000000Z)
r@   importorskipr   rh   utcr!   r"   rg   r?   r
   )r   dttss      r0   test_cast_timestamp_to_stringr   j  s     KKK		4Aq!Qtx	@	@	@B	2BL%888	9	9	9B7729;;29-M#N#NNNNNNNr2   c                     t          j        dt          j                              } |                     t          j                    d          }t          j        dt          j                              }||k    sJ t          j        t           j                  5  |                     t          j                               d d d            d S # 1 swxY w Y   d S )Nry   r   Fr:   r   )r!   r"   float64r?   r   r@   rA   r   )float_scalarunsafe_castexpected_unsafe_casts      r0   test_cast_float_to_intr   t  s    9Srz||444L##BHJJU#;;K9QRXZZ888.....	r	'	' & &"(**%%%& & & & & & & & & & & & & & & & & &   'CCCc                     t          j        dt          j                              } |                     t          j                    d          }t          j        dt          j                              }||k    sJ t          j        t           j                  5  |                     t          j                               d d d            d S # 1 swxY w Y   d S )Nl   r   Fr:   g      PC)r!   r"   r   r?   r   r@   rA   r   )
int_scalarr   r   s      r0   test_cast_int_to_floatr   ~  s    ,28::>>>J//"*,,U/;;K9%8rz||LLL.....	r	'	' & &
%%%& & & & & & & & & & & & & & & & & &r   typc                     t          j        d          }|                    |           }|t          j        t          j        ddd          |           k    sJ d S )Nz
2021-01-01i  r   r   )r!   r"   r?   rh   r   )r   r"   r   s      r0   test_cast_string_to_dater     sV    Y|$$F[[FRYx}T1a88sCCCCCCCCCr2   c                  d   dd l } |                     dd          j        }g d}t          |          D ]z\  }}d                    |          }t
          j                            |                    |                    }| 	                    d          }|d         
                                |k    sJ |d         j        d|z  z  |j        k    sJ d}t          j        ||	          }	d                    |          }t
          j                            |                    |          |	
          }| 	                    d                              d                              |          }|d         
                                |k    sJ |d         j        d|z  z  |j        k    sJ |d S )Nr   z2000-01-01 12:34:56
   )periods)r   rd   r   r   zdatetime64[{}]  re   rb   r   r   )pandas
date_rangerW   	enumerateformatr!   Arrayfrom_pandasastype	Timestampr%   r   rg   tz_localize
tz_convert)
pdrO   unitsiunitdtype	arrow_arrr   rc   
arrow_types
             r0   test_timestampr     s   
---r-
:
:
AC###EU## > >4 ''--H((E):):;;	<< 566|!!##x////|!D!G+x~====\$2...
 ''--H((E):):(LL	LL!677 [''Z^^ 	 |!!##x////|!D!G+x~=====%> >r2   c                  <   t          j        d           dd l} d}t          j        d|          }t          j        d|          }|                     |          }t          j        dd	d	d	|
          }|                    |          }|	                                }||k    sJ |j
        dk    sJ |j        dk    sJ t          j        d|          }t          j        t                    5  |	                                 d d d            d S # 1 swxY w Y   d S )Nr   r   re   r   rb   l   $=3ir   r   r   )r   r   i         $=3i)r@   r   r   r!   rg   r"   timezonerh   fromutcr%   yearhourrA   rB   )r   rc   r   r   r   r   r   s          r0   test_timestamp_nanos_nopandasr     sg    KKK	B	dr	"	"	"B 		+"555A]]2F q!6JJJH~~h''HWWYYFX;$;" 		$2...A	z	"	"  				                 s   /DDDc                     t          j        d           dd l} t          j        dddddd| j                  t          j        ddddd	d	d
| j                  t          j        dddddd| j                  g}|D ]F}t          j        |t          j        dd                    }|                                |k    sJ Gd S )Nr   r   r   r   i'           ;   i?B i  rd   ra   rb   r   )	r@   r   r   rh   r   r!   r"   rg   r%   )r   
timestampsr   r   s       r0   test_timestamp_no_overflowr     s    
KKK 	!Q1a48<<<$BBF48LLL$1aAdh???J
   Ibr|DU;;;<<<wwyyB r2   c                      t          j        d           t          j        dgt          j        dd                    } t          | d                   dk    sJ d S )Nr   r   r   z+02:00rb   z1970-01-01 02:00:00+02:00)r@   r   r!   rM   rg   rr   )rO   s    r0   !test_timestamp_fixed_offset_printr     sW    

(A3SX666
7
7Cs1v;;5555555r2   c                     t          j        ddgd          } g d}t          |          D ]\  }}d                    |          }t	          j        |                     |                    }t          j        d          }t          |d	         	                                t          j                  sJ |d	         	                                |k    sJ |d	         j
        d
|d	z   z  z  |                                dz  k    sJ d S )Nr        qaztimedelta64[ns]r   )rd   r   r   ztimedelta64[{}]  secondsr   r       eA)r4   rM   r   r   r!   r   rh   	timedeltar$   r%   r   total_seconds)rO   r   r   r   r   r   r   s          r0   test_durationr     s   
(A}%->
?
?
?CEU## 0 04!((..HSZZ..//	%e444)A,,,..0BCCCCC|!!##x////!"TAaC[0&&((3./ / / / /0 0r2   c                     dd l } t          j        ddgt          j        d                    }|                     d          }t          |d                                         | j                  sJ |d                                         |k    sJ |d         j        |j        k    sJ t          j        dgt          j        d                    }|d                                         |                     dd          k    sJ d S )	Nr   r   r   r   z1 hourr   r   )r   )r   r!   rM   duration	Timedeltar$   r%   r   )r   rO   r   s      r0   test_duration_nanos_pandasr    s    
(A}%BK,=,=
>
>
>C||H%%Hc!fllnnbl33333q6<<>>X%%%%q6<8>)))) (&'bk$.?.?
@
@
@Cq6<<>>R\\*<4\HHHHHHHHr2   c                  d   t          j        ddgt          j        d                    } t          j        d          }t          | d                                         t          j                  sJ | d                                         |k    sJ | d         j        |                                dz  k    sJ t          j        dgt          j        d          	          } t          j
        t                    5  | d                                          d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r   r   r   r   r   )r!   rM   r   rh   r   r$   r%   r   r   r@   rA   rB   )rO   r   s     r0   test_duration_nanos_nopandasr    sH   
(A}%r{4'8'8
9
9C!%000Hc!fllnnh&899999q6<<>>X%%%%q6<81133c99999 (&'bk$.?.?
@
@
@C	z	"	"  A                 s   =D%%D),D)c                  *   t          j        g d          } t          j        | g          }t          |d                                         t           j                  sJ |d                                         | k    sJ |d         j        | k    sJ d S )N)ii  ir   )r!   MonthDayNanorM   r$   r%   r   )triplerO   s     r0   test_month_day_nano_intervalr    s    _///00F
(F8

Cc!fllnnbo66666q6<<>>V####q6<6!!!!!!r2   r   u   mañana)r   
scalar_typc                    t          j        | |          }t          ||          sJ |                                | k    sJ |                                dk    sJ t	          |           t	          |          v sJ t          |          t          |           k    sJ |                                }t          |t           j                  sJ |                                | 	                                k    sJ d S )Nr   rK   )
r!   r"   r$   r%   rf   rr   	as_bufferBuffer
to_pybytesencoder   r   r  r   bufs        r0   test_stringr    s     		%b!!!Aa$$$$$77997799####;;$q''!!!!q66SZZ
++--Cc29%%%%%>>u||~~------r2   s   foos   barc                    t          j        | |          }t          ||          sJ |                                | k    sJ t	          |          t	          |           k    sJ t          |           t          |          v sJ |                                | k    sJ |dk    sJ |                                }t          |t           j                  sJ |                                | k    sJ d S )Nr   s   xxxxx)	r!   r"   r$   r%   rr   rf   r
  r  r  r  s        r0   test_binaryr  !  s     		%b!!!Aa$$$$$7799q66SZZ;;$q''!!!!7799====
++--Cc29%%%%%>>u$$$$$$r2   c                     t          j        dt          j        d                    } t          | t           j                  sJ |                                 dk    sJ t          j        t           j                  5  t          j        dt          j        d                     d d d            d S # 1 swxY w Y   d S )Ns   foofr   r   s   foof5)	r!   r"   binaryr$   FixedSizeBinaryScalarr%   r@   rA   r   rC   s    r0   test_fixed_size_binaryr  5  s    
	'	!---Aa1222227799	r	'	' / /
	(1..../ / / / / / / / / / / / / / / / / /s   =)B33B7:B7)r   r   c                 D   dd g}t          j        ||           }|j        | k    sJ t          |          dk    sJ t	          |j        t           j                  sJ |j                                        |k    sJ t	          ||          sJ t          |          t          |          v sJ |	                                |k    sJ |d         	                                dk    sJ |d         	                                J |d         |d         k    sJ |d         |d         k    sJ t          j        t                    5  |d          d d d            n# 1 swxY w Y   t          j        t                    5  |d          d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   r   r   r   )r!   r"   r   rV   r$   rW   r   	to_pylistrf   r%   r@   rA   
IndexError)r   r   rP   r   s       r0   	test_listr  >  s    
A
	!"A6R<<<<q66Q;;;;ah)))))81$$$$a77d1gg7799>>>>Q4::<<5    Q4::<<R5AaD====R5AaD====	z	"	"  	"              	z	"	"  	!                 s$   	EE"E?	FFFr   c                     t          j        t          j        g dt          j                              |           }| %t          j        t          j                              } |j        | k    sJ |                                g dk    sJ d S )Nr   r   r   )r!   r"   r4   rM   r   list_r   r%   r   r   s     r0   test_list_from_numpyr  X  s}     		"(999BHJJ777bAAAA	zXbhjj!!6R<<<<7799			!!!!!!r2   factoryc                 T   dd l }t          j        |                    g d                    }|                                g dk    sJ t
          j        dfdt
          j        g | t          j                              fdt
          j        g | t          j                              fdt
          j        g | t          j        d                    fdt
          j        g | t          j	                              ft          j        d          t
          j        g | t          j        d	d
                    fg}|D ]j\  }}t          j        t          t           f          5  t          j        ||           d d d            n# 1 swxY w Y   t          j        ||d          }kd S )Nr   r   rN   r
   s   stringr[   T0r   r   r   )r   r   )r   r!   r"   Seriesr%   r4   nanr  utf8bool_r   r   r   r@   rA   rB   	TypeError)r   r   r   casescaser   s         r0   test_list_from_pandasr*  h  s    
	"))III&&''A7799			!!!! 

BF	WWRY[[112
BF	WWRWYY//0
RV	ggbill334
,,-
/#

	'r11E1E)F)FGE  7 7b]J	233 	% 	%Id$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% Id6667 7s   "FF		F		c                     t          j        g dt          j        t          j                    d                    } t	          |           dk    sJ t          | t           j                  sJ t          |           dk    sJ |                                 g dk    sJ | d                                         dk    sJ | d                                         J | d         | d         k    sJ t          j
        t                    5  | d	          d d d            n# 1 swxY w Y   t          j
        t                    5  | d          d d d            d S # 1 swxY w Y   d S )
N)r   Nr   r   r   z+<pyarrow.FixedSizeListScalar: [1, None, 3]>r   r   r   r   )r!   r"   r  r   rV   r$   FixedSizeListScalarrf   r%   r@   rA   r  rC   s    r0   test_fixed_size_listr.    s   
	,,,RXbhjj!%<%<===Aq66Q;;;;a/0000077CCCCC7799$$$$Q4::<<1Q4::<<R5AaD====	z	"	"  	"              	z	"	"  	!                 s$   	DD!$D!	EEEc                  (   t          j        t          j        dt          j                              t          j        dt          j                              g          } ddd}t          j        ||           }t          |          t          |                                          cxk    rddgk    sn J t          |                                          t          j        dt          j                              t          j        dt          j                              gk    sJ t          |	                                          dt          j        dt          j                              fdt          j        dt          j                              fgk    sJ d|v sJ d|v sJ d|vsJ d|vsJ |
                                |k    sJ t          |          t          |          k    sJ t          |
                                          t          |          k    sJ t          |          dk    sJ t          |d         t           j                  sJ t          |d         t           j                  sJ |d         
                                dk    sJ |d         
                                dk    sJ t!          j        t$                    5  |d	          d d d            n# 1 swxY w Y   t          j        d |           }t          |          t          |                                          cxk    rddgk    sn J |
                                J d|v sJ d|v sJ t          |d         t           j                  sJ t          |d         t           j                  sJ |d         j        d
u sJ |d         j        d
u sJ |d         
                                J |d         
                                J d S )Nxyr   g      @r0  r1  r   zr   nonexistentF)r!   structfieldint16float32r"   rS   keysrW   itemsr%   rf   rV   r$   Int16ScalarFloatScalarr@   rA   KeyErrorr'   r   rP   r   s      r0   test_structr?    s   	
bhjj!!
bjll## 
 
B
 cA
	!"A77d16688nn2222c
222222


	!"(**%%%
	#BJLL)))      		??	bi

+++,	bi"*,,///0     !8888!8888a<<<<A::::7799>>>>77d1gg		??d1gg%%%%q66Q;;;;afbn-----afbn-----S6<<>>QS6<<>>S    	x	 	   	-               		$R   A77d16688nn2222c
2222227799!8888!8888afbn-----afbn-----S6?e####S6?e####S6<<>>!!!S6<<>>!!!!!s   	K22K69K6c            	         t          j        t          j        dt          j                              t          j        dt          j                              t          j        dt          j                              g          } t          j        g d|           }t          |          t          |                                          cxk    rg dk    sn J t          |          dk    sJ ||k    sJ t          |
                                          dt          j        dt          j                              fdt          j        dt          j                              fdt          j        dt          j                              fgk    sJ d|v sJ d|v sJ d	|vsJ d
|vsJ t          j        t                    5  |d          d d d            n# 1 swxY w Y   t          |d         t           j                  sJ |d                                         dk    sJ t          |d
         t           j                  sJ |d
                                         dk    sJ t          |d         t           j                  sJ |d                                         dk    sJ t          |d         t           j                  sJ |d                                         dk    sJ dt'          |          v sJ t          j        t(          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr0  r1  ))r0  r   )r1         @)r0  r   r   )r0  r1  r0  r   r   rA  r3  r   r   zpyarrow.StructScalarzduplicate field namesr<   )r!   r5  r6  r7  r8  r   r"   rS   r9  rV   r:  r@   rA   r=  r$   r<  r%   r;  r{   rf   rB   r  s     r0   test_struct_duplicate_fieldsrB    su   	
bhjj!!
bjll##
bhjj!! 
 
B
 		222<<<A77d16688nn7777777777q66Q;;;;6666		??	bi28::&&'	biRZ\\**+	bi28::&&'     !8888!8888a<<<<A:::: 
x	 	   	#               afbn-----S6<<>>S     adBN+++++Q4::<<1adBN+++++Q4::<<3adBN+++++Q4::<<1!T!WW,,,,	z)@	A	A	A  				                 s$   	GG!GL==MMc                 
   t          j        t          j                    t          j                              }ddg}t          j        ||          }t          |          dk    sJ t          |t           j                  sJ t          |j        t           j	                  sJ t          |          dk    sJ |j                                        dddd	ddgk    sJ t          ||          D ]\  }}||k    sJ t          j        d |          D ]}|                                |k    sJ |d         t          j        d	t          j                              t          j        dt          j                              fk    sJ |d
         |d         k    sJ |d         |d         k    sJ t          j        t                     5  |d          d d d            n# 1 swxY w Y   t          j        t                     5  |d          d d d            n# 1 swxY w Y   |                     |                     |                    }|                    |          sJ |                    d          dddk    sJ d S )Nr   r   r   r   z)<pyarrow.MapScalar: [('a', 1), ('b', 2)]>r   r   )keyr   r   r   r  r   r   strictmaps_as_pydictsr   )r!   map_r
   r   r"   rV   r$   	MapScalarrW   r   rf   r  zipr%   r@   rA   r  r(   r)   r*   )r-   r   rP   r   r   j_r.   s           r0   test_maprM    s   	bgii	(	(B	8A
	!"Aq66Q;;;;a&&&&&ah)))))77AAAAA8a  a  $     Aq		  1Avvvvv Yt"%%%  7799>>>>Q4
	#BIKK(((
	!"'))$$$     R5AaD====R5AaD====	z	"	"  	"              	z	"	"  	!               ""=#6#6q#9#9::H??17787,,aa0@0@@@@@@@s$   	G!!G%(G%	HH!Hc                     t          j        t          j                    t          j                              } ddg}t          j        ||           }|                    d           |k    sJ t          j        t                    5  |                    d          sJ 	 d d d            n# 1 swxY w Y   t          j	        d          5  |                    d          d	d
ik    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   rF  rE  z1Encountered key 'a' which was already encounteredr<   lossyr   r   )
r!   rH  r
   r   r"   r%   r@   rA   r=  warnsr>  s      r0   test_map_duplicate_fieldsrQ    s~   	bgii	(	(B	8A
	!"A7747((A----	x	 	  1 1wwxw0000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
O	P	P	P < <wwww//C8;;;;;< < < < < < < < < < < < < < < < < <s$   B--B14B1C::C>C>c                    t          j        g d          }t          j        g d          }t           j                            ||          }g d}|                                |k    sJ t          t          ||                    D ]\  }\  }}||         }|                                |k    sJ |j                                        |k    sJ |j	        
                    |          sJ |j        
                    |          sJ |                     |                     |                    }	|	
                    |          sJ d S )N)r   Nr   r   r   N)r   barbaz)rT  NrS  rT  r   N)r!   rM   DictionaryArrayfrom_arraysr  r   rJ  r%   r   indexr*   
dictionaryr(   r)   )
r-   indicesrX  rO   r   rK  r   rP   r   r.   s
             r0   test_dictionaryrZ  &  sH   h///00G///00J


(
(*
=
=C777H==??h&&&&s7H5566 	" 	"	6AqFwwyyA~~~~w}}!####w~~a     |"":..... &&}':':1'='=>>q!!!!!!	" 	"r2   c            	         g d} g d}t           j                            | |          }|d         }t          |t           j                  sJ t          |j        t           j                  sJ |j        t          j        |          d         k    sJ |                                dk    sJ |d         }t          |j        t           j                  sJ |                                J t          j
        t                    5  t          j        dt          j        t          j                    t          j                                         d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   )r   r   r   Nr   r   r   r   )r!   RunEndEncodedArrayrV  r$   RunEndEncodedScalarr   r{   rM   r%   r@   rA   NotImplementedErrorr"   run_end_encodedr   )run_endsrW   rO   r"   s       r0   test_run_end_encodedra  :  s   !!!HF


+
+Hf
=
=CVFfb455555flBN33333<28F++A.....<<>>Q WFflBN33333<<>>!!! 
*	+	+ A A
	!R'

BHJJ??@@@A A A A A A A A A A A A A A A A A As   AEE!$E!c           	      H   t           j                            t          j        g dt          j                              t          j        g d          t          j        g d          g          }|D ]}|                    d           t          |t           j                  sJ |j        	                    |j                  sJ |j
        du sJ t          j        t           j                  5  |                     |                     |                     d d d            n# 1 swxY w Y   |d         j        dk    sJ |d                                         dk    sJ |d	         j        dk    sJ |d	                                         d
k    sJ |d         j        d	k    sJ |d                                         dk    sJ |d         j        d	k    sJ |d                                         dk    sJ t           j                            t          j        g dd          t          j        g dd          t          j        g dd          t          j        g dd          g          }|D ]}|                    d           t          |t           j                  sJ |j        	                    |j                  sJ |j
        du sJ t          j        t           j                  5  |                     |                     |                     d d d            n# 1 swxY w Y   |d         j        dk    sJ |d                                         dk    sJ |d         j        d	k    sJ |d                                         dk    sJ d S )N)r   r   r   r   r   rj   r   Tr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )   a   b   c   dr  r   r   )r   value_offsetschildrenrc  r   )r!   
UnionArrayfrom_sparserM   r   r#   r$   UnionScalarr   r*   r'   r@   rA   ArrowNotImplementedErrorr(   r)   	type_coder%   
from_dense)r-   rO   r   s      r0   
test_unionro  O  s   
-
#
#
BGII...H)))**H\\\""	
 C  8 8	


!R^,,,,,v}}SX&&&&&zT!!!!]2677 	8 	8 3 3A 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 q6q    q6<<>>S    q6q    q6<<>>S    q6q    q6<<>>Qq6q    q6<<>>Q -
"
"h,,,6:::h4447CCCH---H===HYYYW---
 #  C  8 8	


!R^,,,,,v}}SX&&&&&zT!!!!]2677 	8 	8 3 3A 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 q6q    q6<<>>T!!!!q6q    q6<<>>Qs$   2)D''D+	.D+	;)L00L4	7L4	c                     t          j        dgt          j        t          j                    t          j                                                                        dgk    sJ t          j        dgt          j        t          j        dt          j                    d          t          j        dt          j                                                                                  dgk    sJ dS )z{
    Check we can call `MapScalar.as_py` with custom field names

    See https://github.com/apache/arrow/issues/36809
    )r   rS  
custom_keyF)nullablecustom_valueN)r!   r"   rH  r
   r%   r6  rH   r2   r0   ,test_map_scalar_as_py_with_custom_field_namert    s     9	
IKKIKK	
 	
  egg.!" " " " 9	
H\29;;???H^RY[[11	
 	
  egg.!" " " " " "r2   c                     t          j        t          j        dt          j        t          j                    t          j                                        t          j        dt          j        t          j        t          j                    t          j                                                  g          } ddiddiddigd	}t          j        || 
          }|                    d          |k    sJ d S )Nr0  r1  r   r   r   r   rk   r   r2  r   rE  rF  )	r!   r5  r6  rH  r
   r   r  r"   r%   r>  s      r0   *test_nested_map_types_with_maps_as_pydictsrv    s    	
bgbikk27995566
bhrwry{{BGII>>??@@ 
 
B
 AhsAha122A
	!"A7787,,111111r2   )rh   r   r@   r+   numpyr4   ImportErrorpyarrowr!   pyarrow.computecomputer>   markparametrizerq   r{   r   
Int8Scalarrx   UInt8Scalarr7  r;  uint16UInt16Scalarr   Int32Scalarr   UInt32Scalarr   uint64UInt64Scalarr}   r8  r<  r   r   r   StringScalarBinaryScalarlarge_stringLargeStringScalarlarge_binaryLargeBinaryScalarr   StringViewScalarbinary_viewBinaryViewScalarr  r  
ListScalar
large_listLargeListScalarr  r-  	list_viewListViewScalarlarge_list_viewLargeListViewScalarr   todayDate32Scalarr   Date64ScalarnowTimestampScalarr   replacer   Time32ScalarTime64Scalarr   DurationScalarr  MonthDayNanoIntervalScalarStructScalarrH  r
   rI  r1   r7   rD   rI   rQ   rY   r_   timezone_datarm   ru   r~   r   r   r   r   r   r   r   rg   r   month_day_nano_intervalDataTyper   r   r   r   r   r   r   r   nopandasr   r   r   r   r  r  r  r  r  r  r  r  r*  r.  r?  rB  rM  rQ  rZ  ra  ro  rt  rv  rH   r2   r0   <module>r     s  $       	BBB           111 )4
D""#)4	4!")4 bn)4 r~	)4
 		2=!)4 

BN#)4 

BN#)4 		R_%)4 

BN#)4 		R_%)4 

BN#)4 		R_%)4 	$ )4 	*"*,,')4 W_WtR%89)4  W_ABB	2 !)4$ tR_%%)4& tR_%')4( OBO%%r';<))4* OBO%%r';<+)4, NBN$$b&9:-)4. NBN$$b&9:/)40 YRYq\\2341)42 YYbm$3)44 \\=2=++R-?@5)46 __hbhwrwyy!,,b.DE7)48 YYWRWYY''):;9)4: \\%2%gbgii00"2HI;)4< ]D"/2=)4> ]IBIKK9?)4@ dB$67A)4B !!##+++::IBIcNN_C)4F !!##T2?;G)4H XQr'89I)4J R____%%t"$K)4N Aq6D"/2O)4P 727929;;		::BLIQ)4 ) )T U) )T@   <    
  4& & &   	H 	H 	H" " "      :  $  $" " "* * *" " " ';/		#
IBIcNN	929S>>		$
IBIdOO	929T??		$
IBIdOO	929T??		$
IBIdOO	929T??		
IBIKK	929;;		
IBIKK	929;;T
LBL	<2<D
KBK	;2;t++--.	%2%''(52  8&2; & & &9 8&' ' ' O O O& & && & & ibikk :;;D D <;D > > >6   0  6 6 6 0 0 0 
I 
I 
I 
 
 
" " " 5)"455-RY[["/"R_,-R^r*+0  

. 
.  65
. 66"233-RY[["/"R_,-R^r*+0  
% %  43%/ / / RXibikkBM*R]929;;!34R\)")++ 12R		$$b&<=	+    ( BHXRXZZBM("(**BLBxrxzz""   " "  " HML	%  7 7  7.   ," ," ,"^( ( (V%A %A %AP< < <" " "(A A A*. . .b" " ".	2 	2 	2 	2 	2s    !!