
    z-PhV                        d dl m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c mZ d dlmZ 	 d dlZn# e$ r Y nw xY wd Zd Zej        j        d             Zej        j        ej        j        d                         Zd Zd	 Zd
 Zd Zd Zd Zej        j        d             Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/ej        j        d              Z0d! Z1d" Z2d# Z3dS )$    )OrderedDictN)Versionc                      d} t          j        t          |           5  t          j                     d d d            d S # 1 swxY w Y   d S )NzGDo not call Schema's constructor directly, use `pyarrow.schema` instead)match)pytestraises	TypeErrorpaSchema)msgs    Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_schema.pytest_schema_constructor_errorsr   &   s    C	y	,	,	,  
	                 s   ?AAc                      g d} | D ]6}t          t          |          } |            }t          |          |k    sJ 7d S )N)int8int16int32int64uint8uint16uint32uint64)getattrr
   str)dtypesnamefactoryts       r   test_type_integersr   -   s]    5 5 5F   "d##GII1vv~~~~~     c                     t          j        d          } t          t          j                  t          d          k     rt          j        d          } t          j                    t           j        ft          j                    t           j        ft          j	                    t           j	        ft          j
                    t           j
        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    | ft          j                    | ft          j        d          | ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j        d          t           j        ft          j                    t           j        ft          j                    t           j        ft          j                    t           j        ft          j        t          j	                              t           j        ft          j        t          j                    t          j                              t           j        fg}|D ]\  }}|                                |k    sJ  d S )Ndatetime64[ms]z2.0.0datetime64[ns]ms   ) npdtyper   pd__version__r
   nullobject_bool_r   r   r   r   r   r   r   r   float16float32float64date32date64	timestampbinarylarge_binarybinary_viewstringlarge_stringstring_viewlist_map_to_pandas_dtype)M8cases
arrow_type
numpy_types       r   test_type_to_pandas_dtyper?   7   s:   	"	#	#Br~!1!111X&''	BJ	RX	BG	RX	RX	RX	RX	bi 	bi 	bi 	rz"	rz"	rz"	b	b	d		R 	bj!			BJ'			2:&	2
#	bj!			BJ'			2:&	"'))		bj)	RZ\\	*	*BJ75E8 #( : :
J))++z99999: :r   c                  .    t          j        d           d S )Nzarrow_7980.py)	test_utilinvoke_script r   r   &test_type_to_pandas_dtype_check_importrD   \   s     O,,,,,r   c                     t          j                    } t          j        |           }t          |          dk    sJ t          j        dt          j                              }t          j        |          }t          |          dk    sJ d S )Nzlist<item: int32>my_itemzlist<my_item: string>)r
   r   r8   r   fieldr5   )
value_type	list_typerG   l2s       r   test_type_listrK   c   sv    J$$Iy>>00000HY	,,E	%Br77-------r   c                  ~    t          j                    } | t          j                    k    sJ | dk    sJ | dk    sJ d S )Nr      )r
   r   )vals    r   test_type_comparisonsrO   m   sB    
(**C"(**'>>>>!888888r   c                     g dt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fd	t          j                    fd
t          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j	                    fdt          j	                    fdt          j
                    fdt          j
                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j        d          fdt          j        d          fdt          j        d          fd t          j        d!          fd"t          j        d          fd#t          j        d          fd$t          j        d          fd%t          j        d!          fd&t          j        d          fd't          j        d          fd(t          j        d          fd)t          j        d!          fd*t          j                    f} | D ]\  }}t          j        |          |k    sJ  d S )+Ni1r   i2r   i4r   i8r   u1r   u2r   u4r   u8r   f4r-   f8r.   r/   r0   r5   r   r2   	time32[s]sz
time32[ms]r#   z
time64[us]us
time64[ns]nsztimestamp[s]ztimestamp[ms]ztimestamp[us]ztimestamp[ns]zduration[s]zduration[ms]zduration[us]zduration[ns]month_day_nano_interval)r
   r   r   r   r   r   r   r   r   r-   r.   r/   r0   r5   r2   time32time64r1   durationr`   type_for_alias)r<   rN   expecteds      r   test_type_for_aliasrf   t   s   '	rwyy'	' 
rxzz' 
"(**	'
 
rxzz' 
"(**' 
rxzz' 
"(**' 
rxzz' 
"(**' 
ry{{' 
29;;' 
ry{{' 
29;;' 
ry{{'  
29;;!'" 
rz||#'$ 
BJLL!%'& 
rz||''( 
BJLL!)'* 
29;;+', 
29;;-'. 
29;;/'0 
	1'2 
29;;3'4 
binn%5'6 
ry'7'8 
ry'9': 
ry';'< 
c**+='> 
",t,,-?'@ 
",t,,-A'B 
",t,,-C'D 
C(()E'F 
T**+G'H 
T**+I'J 
T**+K'L 
#B$>$@$@AM'ER  2 2X %%111112 2r   c                  V    t          j                    } t          |           dk    sJ d S )Nr5   )r
   r5   r   )r   s    r   test_type_stringrh      s*    
	Aq66Xr   c                  j    d} t          j        d|           }|j        dk    sJ |j        | k    sJ d S )NzAmerica/Los_Angelesr_   )tz)r
   r1   unitrj   )rj   r   s     r   test_type_timestamp_with_tzrl      s=    	B
Tb!!!A6T>>>>42::::::r   c                  x   t          j        d          } t          j        d          }t          j        d          }t          j        d          }| j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ t	          |           dk    sJ t	          |          dk    sJ t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr\   r#   r]   r_   r[   r^   )r
   ra   rb   rk   r   r   r   
ValueError)t1t2t3t4s       r   test_time_typesrs      s   	3B	4B	4B	4B7c>>>>7d????7d????7d????r77k!!!!r77l""""	z	"	"  
	$               
z	"	"  
	#                 s$   C))C-0C-D//D36D3c                  N	   t          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j	                    ft          j        d          t          j
                    ft          j        d	          t          j                    ft          j        d
          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j                    ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          ft          j        d          t          j        d          fg} | D ]!\  }}t          j        |          }||k    sJ "t          j        d          t          j                    k    sJ t          j        t           j                  t          j                    k    sJ t          j        d          t          j                    k    sJ t          j        t(                    t          j                    k    sJ t+          j        t.                    5  t          j        t          j        d                     d d d            n# 1 swxY w Y   t+          j        t0                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nboolr   r   r   r   r   r   r   r,   r-   r.   USzdatetime64[s]r\   r!   r#   zdatetime64[us]r]   r"   r_   ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]Onot_convertible_to_dtype)r%   r&   r
   r+   r   r   r   r   r   r   r   r,   r-   r.   r5   r2   r1   rc   from_numpy_dtypestr_ru   r   r   NotImplementedErrorr	   )r<   dtptresults       r   test_from_numpy_dtyper      s    
&		28::&	&		2799%	'		BHJJ'	'		BHJJ'	'		BHJJ'	'		BHJJ'	(		RY[[)	(		RY[[)	)		bjll+	)		bjll+	)		bjll+	#	$	#	$	/	"	"BL$5$56	"	#	#R\$%7%78	"	#	#R\$%7%78	"	#	#R\$%7%78	"	#	#R[%5%56	#	$	$bk$&7&78	#	$	$bk$&7&78	#	$	$bk$&7&78+E0   B$R((||||| s##ry{{2222rw''29;;6666w''28::5555t$$

2222	*	+	+ + +
BHSMM***+ + + + + + + + + + + + + + + 
y	!	! 8 8
67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s$   !'QQQ8RR!Rc            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }|j        g dk    sJ |j        t          j                    t          j                    t          j        t          j                              gk    sJ t          |          dk    sJ |d         j
        dk    sJ |d         j        | d         j        k    sJ |                    d          j
        dk    sJ |                    d          j        | d         j        k    sJ t          |          dk    sJ t          j        t                    5  t          j        d g           d d d            d S # 1 swxY w Y   d S )Nfoobarbazr   r   r      r   Bfoo: int32
bar: string
baz: list<item: int8>
  child 0, item: int8)r
   rG   r   r5   r8   r   schemanamestypeslenr   typereprr   r   r	   fieldsschs     r   test_schemar      s   


##
	$$
++,,F
 )F

C9-------9RY[["(27992E2EFFFFFs88q====q6;%q6;&).((((99U E))))99U F1IN222299      
y	!	!  
	4&                 s   ;GG"%G"c            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }t          j        |          } |            J ~ |            J d S )Nr   r   r   )	r
   rG   r   r5   r8   r   r   weakrefref)r   r   wrs      r   test_schema_weakrefr   	  s    


##
	$$
++,,F
 YvF	V		B244244<<<<<r   c            
         d} t          j        t          j        dddddi          t          j        dd	d
ddi          gd| i          }|                                d| d d         z   dz   t	          t          |           dz
            z   k    sJ t          j        dgddi                                          }|dk    sJ |                    d          d                    |           k    sJ |                    dd          d                    |           k    sJ |                    dd          dk    sJ |                    ddd          dk    sJ d S )Na  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan vel
turpis et mollis. Aliquam tincidunt arcu id tortor blandit blandit. Donec
eget leo quis lectus scelerisque varius. Class aptent taciti sociosqu ad
litora torquent per conubia nostra, per inceptos himenaeos. Praesent
faucibus, diam eu volutpat iaculis, tellus est porta ligula, a efficitur
turpis nulla facilisis quam. Aliquam vitae lorem erat. Proin a dolor ac libero
dignissim mollis vitae eu mauris. Quisque posuere tellus vitae massa
pellentesque sagittis. Aenean feugiat, diam ac dignissim fermentum, lorem
sapien commodo massa, vel volutpat orci nisi eu justo. Nulla non blandit
sapien. Quisque pretium vestibulum urna eu vehicula.r   r   Fkey1value1metadatar   r5   Tkey3value3loremzfoo: int32 not null
  -- field metadata --
  key1: 'value1'
bar: string
  -- field metadata --
  key3: 'value3'
-- schema metadata --
lorem: 'A   z' + )f0r   keyCvaluexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzjf0: int32
-- schema metadata --
key: 'valuexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')truncate_metadatazfoo: int32 not null
  -- field metadata --
  key1: 'value1'
bar: string
  -- field metadata --
  key3: 'value3'
-- schema metadata --
lorem: '{}')r   show_field_metadatazAfoo: int32 not null
bar: string
-- schema metadata --
lorem: '{}')r   show_schema_metadatazofoo: int32 not null
  -- field metadata --
  key1: 'value1'
bar: string
  -- field metadata --
  key3: 'value3')r   r   r   zfoo: int32 not null
bar: string)r
   r   rG   	to_stringr   r   format)r   	my_schemar   s      r   #test_schema_to_string_with_metadatar     s(   
8E 	28E7E.4h-?A A A8E8T.4h-?A A AB %,U#3	5 5 5I    % CRCj% "%" %(E

R$8$8%9 9 9 9 9 Y(!&(: ;= = ==FY[[  & & & & & 77 < ve}}    38  : :> ve}}    49  ; ;?    3849  ; ;?     r   c                  x   dt          j                    fdt          j                    fdt          j        t          j                              fg} t          j        |           }|j        g dk    sJ |j        t          j                    t          j                    t          j        t          j                              gk    sJ t          |          dk    sJ t          |          dk    sJ t          j        t                    5  t          j        dg           d d d            d S # 1 swxY w Y   d S Nr   r   r   r   r   r   )r   N)r
   r   r5   r8   r   r   r   r   r   r   r   r   r	   r   s     r   test_schema_from_tuplesr   ]  s[   	

			##$F
 )F

C9-------9RY[["(27992E2EFFFFFs88q====99      
y	!	! # #
	=/"""# # # # # # # # # # # # # # # # # #s   D//D36D3c            	         t          dt          j                    fdt          j                    fdt          j        t          j                              fg          } t          j        |           }|j        g dk    sJ |j        t          j                    t          j                    t          j        t          j                              gk    sJ t          |          dk    sJ t          |          dk    sJ t          dg          } t          j        t                    5  t          j        |            d d d            d S # 1 swxY w Y   d S r   )r   r
   r   r5   r8   r   r   r   r   r   r   r   r   r	   r   s     r   test_schema_from_mappingr   q  su   	

			##$  F
 )F

C9-------9RY[["(27992E2EFFFFFs88q====99      -))F	y	!	!  
	&                 s   )EEEc            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }|j        g dk    sJ |j        t          j                    t          j                    t          j        t          j                              gk    sJ t          |          dk    sJ t          |          dk    sJ |d         j        dk    sJ |d         j        | d         j        k    sJ t          j        t                    5  |                    d          | d         k    sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  |                    d          J 	 d d d            n# 1 swxY w Y   t          j        t"          t          f          5  |                    d          J 	 d d d            n# 1 swxY w Y   |                    d          d	k    sJ |                    d          dd
gk    sJ d S )Nr   r   )r   r   r   r   zBfoo: int32
bar: string
foo: list<item: int8>
  child 0, item: int8r      xxx   )r
   rG   r   r5   r8   r   r   r   r   r   r   r   r   r   warnsFutureWarningfield_by_nameUserWarningget_field_indexget_all_field_indicesr   s     r   test_schema_duplicate_fieldsr     s   


##
	$$
++,,F
 )F

C9-------9RY[["(27992E2EFFFFFs88q====99      q6;%q6;&).((((	m	$	$ 5 5  ''6!9444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	m	$	$ 0 0  ''////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	{M2	3	3 0 0  ''////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 u%%++++ $$U++1v555555s6   0"FF#&F#G((G,/G,H88H<?H<c                  f   t          j        dt          j                                                  ddi          } |                                 | gk    sJ t          j        dt          j                    d          }t          j        dt          j        | |g          d          }|                                t          j        dt          j                                                  ddi          t          j        d	t          j                    d          gk    sJ t          j        dt          j        | |g                    }|                                t          j        dt          j                                                  ddi          t          j        d	t          j                              gk    sJ t          j        d
t          j        |g                    }|                                t          j        dt          j        | |g                    gk    sJ d S )Nr      foo   barr   Fnullableffzff.foozff.barfffzfff.ff)r
   rG   r   with_metadataflattenr.   struct)r   f1r   r   s       r   test_field_flattenr     s   	%	$	$	2	2FF3C	D	DB::<<B4	%	6	6	6B	$	2r(++e	<	<	<B::<<
28::&&44ff5EFF
2:<<%888: : : : :
 
$	2r(++	,	,B::<<
28::&&44ff5EFF
2:<<((* * * * * (5")RD//
*
*C;;==RXh	2r(0C0CDDEEEEEEEr   c            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }|j        J ddd}|                    |          }|j        |k    sJ |	                                }|j        J |	                                }|j        J d S )Nr   r   r   r      badgerr   s   pandas)
r
   rG   r   r5   r8   r   r   r   r   remove_metadata)r   s1r   s2s3s4s         r   test_schema_add_remove_metadatar     s    


##
	$$
++,,F 
6		B;955H			(	#	#B;(""""					B; 
				B;r   c            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} ddd}t          j        |           }t          j        |           }t          j        | |          }t          j        | |          }|                    |d	          sJ |                    |d	          sJ |                    |          sJ |                    |d	          rJ |                    |d	          rJ | d
= t          j        |           }|                    |          rJ d S )Nr   r   r   r   r   r   r   Tcheck_metadatar   )r
   rG   r   r5   r8   r   r   equalsr   r   sch1sch2sch3sch4s         r   test_schema_equalsr     sc   


##
	$$
++,,F
 955H9VD9VD9Vh///D9Vh///D;;tD;11111;;tD;11111;;t{{4{55555{{4{55555r
9VD{{4       r   c            	         t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        t          j        dt          j                              t          j        dt          j                    ddi          g          }|                     |d          rJ |                     |          sJ d S )Nr   r   aalphar   Tr   )r
   r   rG   r   r5   r   )schema1schema2s     r   ,test_schema_equals_propagates_check_metadatar     s    i


##
	$$  G i


##
	sGn===  G ~~gd~;;;;;>>'"""""""r   c                  <   t          j        t          j        dt          j                              g          } d dt          j        ddg          fD ]H}t          j        t                    5  |                     |           d d d            n# 1 swxY w Y   Id S )Nr   r5   r   r   )	r
   r   rG   r   arrayr   r   r	   r   )r   rN   s     r   test_schema_equals_invalid_typer     s    Ybhjj11233Fh!Q 0 01  ]9%% 	 	MM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   .BB	B	c            	      .   t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} ddd}t          j        |           }t          j        |           }t          j        | |          }t          j        | |          }||k    sJ ||k    sJ ||k    sJ ||k    rJ ||k    sJ |g k    sJ |dk    sJ d S )Nr   r   r   r   r   r   r   )r
   rG   r   r5   r8   r   r   r   s         r   test_schema_equality_operatorsr     s
   


##
	$$
++,,F
 955H9VD9VD9Vh///D9Vh///D4<<<<4<<<< 4<<<<t||||4<<<< 2::::5======r   c            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }|                    d          j        dk    sJ |                    d          j        dk    sJ |                    d          j        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   t          j	        t                    5  |                    d           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   r   otherg           )r
   rG   r   r5   r8   r   r   r   r   r   KeyErrorr	   
IndexErrorr   r   s     r   test_schema_get_fieldsr     s2   


##
	$$
++,,F YvF<<#u,,,,<<??5((((<< E))))	x	 	   W              	y	!	!  S              	z	"	"  Q                 s6   D33D7:D7E99E= E=G  GGc            	         t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g} t          j        |           }|d                             |d                   sJ |d                             |d                   sJ |d                             |d	                   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
   rG   r   r5   r8   r   r   r   r   r   r   r   s     r   test_schema_negative_indexingr   1  s   


##
	$$
++,,F YvF":VAY'''''":VAY'''''":VAY'''''	z	"	"  r

               
z	"	"  q		                 s$   	D//D36D3	E))E-0E-c                  <   t          j        dt          j        t          j                    t          j                                        t          j        dt          j                              g} t          j        |           }d}t          |          |k    sJ d S )NonetwozCone: dictionary<values=string, indices=int16, ordered=0>
two: int32)r
   rG   
dictionaryr   r5   r   r   r   )r   r   re   s      r   "test_schema_repr_with_dictionariesr   E  s    
bhjj")++>>??


##F )F

C	 
 99      r   c                    t          j                    t          j                    t          j                    t          j        d          t          j        t          j                              t          j        t          j                    t          j                              t          j        t          j        dd          t          j        dd          g          t          j        t          j        dt          j                              t          j        dt          j	                              gt           j
        j                  t          j        t          j        dt          j                              t          j        dt          j	                              gt           j
        j                  t          j        d          t          j        d          t          j                    t          j                    t          j        d          t          j        d	          t          j        d
d          t          j        dd          t          j        dd          t          j        dd          t          j        ddddi          t          j        t          j        dt          j                                        t          j        t          j        dt          j                                        t          j        t          j        dt          j                    d          t          j        dt          j                                        g}|D ]2}|                     |                     |                    }||k    sJ 3g }t5          |          D ]p\  }}t7          |t           j                  r|                    |           5|                    t          j        d                    |          |                     qt          j        |ddi          }|                     |                     |                    }||k    sJ d S )N
   r   r   br5   r\   r]   r#   r_   	   r      r   r$   r   L   &   r   r   r   elementr   Fr   valuez_f{}) r
   r   r5   r2   r8   r9   r   rG   unionr   libUnionMode_SPARSEUnionMode_DENSEra   rb   r/   r0   r1   	decimal32	decimal64
decimal128
decimal256r   
large_listloadsdumps	enumerate
isinstanceFieldappendr   r   )pickle_moduler<   rN   roundtrippedr   ifr   s           r   test_type_schema_picklingr  T  sF   
		
	
	
	"

	RWYY''
	HS&!!HS(##
 	 	 	HS"'))$$HS"(**%%
 6"	$ 	$ 	HS"'))$$HS"(**%%
 6!	# 	# 		#
	$
	
	
T
T
Q
R
b!
b"
h&&)9:::
)RXZZ0011
bhy"(**5566
	e<<<"')),,	. 	.A"EH  # #$**=+>+>s+C+CDDl"""""F%   9 91a"" 	9MM!MM"(6==#3#3Q778888Yv(8999F &&}':':6'B'BCCL\!!!!!!r   c                     t          j        t          j        dt          j                              t          j        dt          j        t          j                    t          j                                        t          j        dt          j        t          j        t          j                                                  g          } t          j        t          j        dt          j                    d          t          j        dt          j                              g          }| |fD ]L}|                                }t          |t           j
                  sJ |j        dk    sJ |j        |k    sJ Md S )	Nr   r   f2r   Fr   r   r   )r
   r   rG   r   r   r   r5   r8   empty_tabler  Tablenum_rows)r   r   r   tables       r   test_empty_tabler    s6   i
rxzz""
r}RXZZ==>>
rx 4 45566  G i
bhjj5111
bhjj!!  G
 G$ & &""$$%*****~""""|v%%%%%	& &r   c            	         dd l } t          t          d                     | j        t          t          d                              g dt	          j        g dd           | j        g d | j                              g}|D ]a} | j        d|i|	          }t          j	        
                    |          }t          j        
                    |          j        }||k    sJ bd S )
Nr   r   )r   r   Nr   qux)z2007-07-13T01:23:34.123456789z2006-01-13T12:34:56.432539784z2010-08-13T05:46:57.437699912r"   )r&   )r   r   Nr   )index)pandaslistrangeCategoricalr%   r   
Int32Dtype	DataFramer
   r   from_pandasr  r   )r'   inputsdatadfr   re   s         r   test_schema_from_pandasr'    s   U2YYtE"II''***
 
 
 
 "		# 	# 	#
 	]R]__555
F  " "R\3+T222&&r**8''++2!!!!!	" "r   c                  &   t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        |           t
          j        dk    rdndk    sJ |                     ddi          }t          j        |          t          j        |           k    sJ |                     ddi          }t          j        |          t          j        |          k    sJ d S )	Nr   r   l              r   zsome metadatazsome more metadata)	r
   r   rG   r   r5   sys	getsizeofmaxsizer   )r   r   schema3s      r   test_schema_sizeofr/    s    Y


##
	$$  F =  #+*=*=BB2FFFF""E?#;<<G=!!CM&$9$99999""E+?#@AAG=!!CM'$:$:::::::r   c                     t          j        t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        g          } t          j        t          j        dt          j                              t          j        dt          j                              g          }t          j        t          j        dt          j        t          j                    t          j                                        g          }t          j        t          j        dt          j	                              t          j        dt          j                              g          }t          j
        | ||g          }t          j        t          j        dt          j                              t          j        dt          j                              t          j        dt          j        t          j                                        t          j        dt          j                              t          j        dt          j        t          j                    t          j                                        g          }|                    |          sJ t          j        t           j                  5  t          j
        ||g           d d d            n# 1 swxY w Y   t          j
        | ||f          }|                    |          sJ t          j
        ||gd          }|                    |          sJ t          j        t                    5  t          j
        | dg           d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r  quux
permissive)promote_optionsr   )r
   r   rG   r   r5   r8   r   r+   r   r   unify_schemasr   r   r   ArrowTypeErrorr	   )r   r   cdr   re   s         r   test_schema_merger8    sZ   
	


##
	$$
++,, 	 	A
 		


##


## 	 	A 		
rxzz29;;??@@ 	 	A 		


##


## 	 	A
 q!Qi((Fy


##
	$$
++,,


##
rxzz29;;??@@  H =="""""	r(	)	) ! !
!Q   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! q!Qi((F=="""""q!flCCCF== 
y	!	! ! !
!Q   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s$   >L!!L%(L%"OO
O
c                      d} d}t          j        t          j        dt          j                    d| i          gd|i          }dt	          |          v sJ dt	          |          v sJ d S )Ns   abcdef s   ghijkl intsr   r   abcdefghijkl)r
   r   rG   r   r   )data1data2r   s      r   test_undecodable_metadatar?    s    EEY	&"(**u~	>	>	>?! ! !F s6{{""""s6{{""""""r   )4collectionsr   r+  r   r   numpyr%   ImportErrorpyarrowr
   pyarrow.tests.utiltestsutilrA   pyarrow.vendored.versionr   r  r'   r   r   markr?   	processesrD   rK   rO   rf   rh   rl   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r'  r/  r8  r?  rC   r   r   <module>rJ     s(  $ $ # # # # # 



     	BBB     & & & & & & & & & , , , , , ,	 	 	 	D	     !: !: !:H - -  -
. . .  +2 +2 +2\  
    * '8 '8 '8T  6
 
 
D D DN# # #(  *6 6 6@F F F(  0! ! !0# # #    6  *  (! ! !2" 2" 2"j& & && " " "(; ; ;(! (! (!V# # # # #s    ##? AA