
    <>i3[                     ^   S SK Jr  S SKrS SKrS SKr S SKrS SKr	S SK
Js  Jr  S SKJr   S SKrS rS r\R(                  R                   S 5       r\R(                  R                   \R(                  R,                  S 5       5       rS rS	 rS
 rS rS rS r\R(                  R
                  S 5       rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S  r0S! r1\R(                  R                   S" 5       r2S# r3S$ r4S% r5g! \ a    Sr GNf = f! \ a     Nf = f)&    )OrderedDictN)Versionc                      Sn [         R                  " [        U S9   [        R                  " 5         S S S 5        g ! , (       d  f       g = f)NzGDo not call Schema's constructor directly, use `pyarrow.schema` instead)match)pytestraises	TypeErrorpaSchema)msgs    X/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_schema.pytest_schema_constructor_errorsr   &   s,    C	y	,
		 
-	,	,s	   ;
A	c                  n    / SQn U  H+  n[        [        U5      nU" 5       n[        U5      U:X  a  M+   e   g )N)int8int16int32int64uint8uint16uint32uint64)getattrr
   str)dtypesnamefactoryts       r   test_type_integersr   -   s8    5F "d#I1v~~     c                     [         R                  " S5      n [        [        R                  5      [        S5      :  a  [         R                  " S5      n [
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                  " 5       [         R                  4[
        R                   " 5       [         R                   4[
        R"                  " 5       [         R"                  4[
        R$                  " 5       [         R$                  4[
        R&                  " 5       [         R&                  4[
        R(                  " 5       U 4[
        R*                  " 5       U 4[
        R,                  " S5      U 4[
        R.                  " 5       [         R                  4[
        R0                  " 5       [         R                  4[
        R2                  " 5       [         R                  4[
        R.                  " S5      [         R                  4[
        R4                  " 5       [         R                  4[
        R6                  " 5       [         R                  4[
        R8                  " 5       [         R                  4[
        R:                  " [
        R                  " 5       5      [         R                  4[
        R<                  " [
        R                  " 5       [
        R&                  " 5       5      [         R                  4/nU H  u  p#UR?                  5       U:X  a  M   e   g )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XX&'	BJJ	RXX	BGG	RXX	RXX	RXX	RXX	bii 	bii 	bii 	rzz"	rzz"	rzz"	b	b	d	R 	bjj!		BJJ'		2::&	2

#	bjj!		BJJ'		2::&	"'')	bjj)	RZZ\	*BJJ75E8 #(
))+z999 #(r   c                  0    [         R                  " S5        g )Nzarrow_7980.py)	test_utilinvoke_script r   r   &test_type_to_pandas_dtype_check_importrD   \   s     O,r   c                     [         R                  " 5       n [         R                  " U 5      n[        U5      S:X  d   e[         R                  " S[         R
                  " 5       5      n[         R                  " U5      n[        U5      S:X  d   eg )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   sd    J$Iy>0000HHY		,E	%Br7----r   c                      [         R                  " 5       n U [         R                  " 5       :X  d   eU S:X  d   eU S:w  d   eg )Nr      )r
   r   )vals    r   test_type_comparisonsrO   m   s8    
((*C"((*'>>!8O8r   c                  B   / S[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS	[         R
                  " 5       4PS
[         R
                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " 5       4PS[         R                  " S5      4PS[         R                  " S5      4PS[         R                   " S5      4PS [         R                   " S!5      4PS"[         R"                  " S5      4PS#[         R"                  " S5      4PS$[         R"                  " S5      4PS%[         R"                  " S!5      4PS&[         R$                  " S5      4PS'[         R$                  " S5      4PS([         R$                  " S5      4PS)[         R$                  " S!5      4PS*[         R&                  " 5       4Pn U  H!  u  p[         R(                  " U5      U:X  a  M!   e   g )+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|   '	rwwy'	' 
rxxz' 
"((*	'
 
rxxz' 
"((*' 
rxxz' 
"((*' 
rxxz' 
"((*' 
ryy{' 
299;' 
ryy{' 
299;' 
ryy{'  
299;!'" 
rzz|#'$ 
BJJL!%'& 
rzz|''( 
BJJL!)'* 
299;+', 
299;-'. 
299;/'0 
		1'2 
299;3'4 
biin%5'6 
ryy'7'8 
ryy'9': 
ryy';'< 
c*+='> 
",,t,-?'@ 
",,t,-A'B 
",,t,-C'D 
C()E'F 
T*+G'H 
T*+I'J 
T*+K'L 
#B$>$>$@AM'ER   %111 r   c                  P    [         R                  " 5       n [        U 5      S:X  d   eg )Nr5   )r
   r5   r   )r   s    r   test_type_stringrh      s    
		Aq6Xr   c                  z    Sn [         R                  " SU S9nUR                  S:X  d   eUR                  U :X  d   eg )NzAmerica/Los_Angelesr_   )tz)r
   r1   unitrj   )rj   r   s     r   test_type_timestamp_with_tzrl      s7    	B
Tb!A66T>>442::r   c                     [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[         R                  " S5      nU R                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[	        U 5      S:X  d   e[	        U5      S:X  d   e[
        R                  " [        5         [         R                  " S5        S S S 5        [
        R                  " [        5         [         R                  " S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)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77c>>77d??77d??77d??r7k!!!r7l"""	z	"
		$ 
# 
z	"
		# 
#	" 
#	" 
#	"s   D6E6
E
Ec                  8
   [         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R
                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S	5      [        R                  " 5       4[         R                  " S
5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                  " 5       4[         R                  " S5      [        R                   " S5      4[         R                  " S5      [        R                   " S5      4[         R                  " S5      [        R                   " S5      4[         R                  " S5      [        R                   " S5      4[         R                  " S5      [        R"                  " S5      4[         R                  " S5      [        R"                  " S5      4[         R                  " S5      [        R"                  " S5      4[         R                  " S5      [        R"                  " S5      4/n U  H"  u  p[        R$                  " U5      nX2:X  a  M"   e   [        R$                  " S5      [        R                  " 5       :X  d   e[        R$                  " [         R&                  5      [        R                  " 5       :X  d   e[        R$                  " S5      [        R                  " 5       :X  d   e[        R$                  " [(        5      [        R                  " 5       :X  d   e[*        R,                  " [.        5         [        R$                  " [         R                  " S5      5        S S S 5        [*        R,                  " [0        5         [        R$                  " S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)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    
&	288:&	&	2779%	'	BHHJ'	'	BHHJ'	'	BHHJ'	'	BHHJ'	(	RYY[)	(	RYY[)	)	bjjl+	)	bjjl+	)	bjjl+	#		$	#		$	/	"BLL$56	"	#R\\$%78	"	#R\\$%78	"	#R\\$%78	"	#R[[%56	#	$bkk$&78	#	$bkk$&78	#	$bkk$&78+E0 $$R(|| 
 s#ryy{222rww'299;666w'288:555t$
222	*	+
BHHSM* 
, 
y	!
67 
"	! 
,	+ 
"	!s   +S:T:
T
Tc            	      $   [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUR                  / SQ:X  d   eUR                  [         R                  " 5       [         R                  " 5       [         R                  " [         R
                  " 5       5      /:X  d   e[        U5      S:X  d   eUS   R                  S:X  d   eUS   R                  U S   R                  :X  d   eUR                  S5      R                  S:X  d   eUR                  S5      R                  U S   R                  :X  d   e[        U5      S:X  d   e[        R                  " [        5         [         R                  " S /5        S S S 5        g ! , (       d  f       g = f)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      sn   

#
		$
+,F
 ))F
C99----99RYY["((27792EFFFFs8q==q6;;%q6;;&)..(((99U  E)))99U  F1INN2229     
y	!
		4& 
"	!	!s    H
Hc            	         [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      n[        R                  " U5      nU" 5       c   eAU" 5       b   eg )Nr   r   r   )	r
   rG   r   r5   r8   r   r   weakrefref)r   r   wrs      r   test_schema_weakrefr   	  s    

#
		$
+,F
 YYvF	V	B44<<r   c            
      R   Sn [         R                  " [         R                  " SSSSS0S9[         R                  " SS	S
SS0S9/SU 0S9nUR                  5       SU S S  S[	        U 5      S-
   3:X  d   e[         R                  " S/SS0S9R                  5       nUS:X  d   eUR                  SS9SU S S  S[	        U 5      S-
   S3:X  d   eUR                  SSSS9SU S S  S[	        U 5      S-
   S3:X  d   eUR                  SSS9S :X  d   eUR                  SSSS!9S":X  d   eg )#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_metadata\   z (... [   z chars omitted)2   )r   show_field_metadataelement_size_limitz>foo: 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   	my_schemar   s      r   #test_schema_to_string_with_metadatar     s   
8E 		288E7E.4h-?A88E8T.4h-?AB %,U#3	5I   )	 
sDUb)%- - - - YY(!&(: ;==FY[  & & & & 7 @	 
sF3u:?+?<> > > > 3824  6>	 
ws5zV45_	:HH H H 49  ;?   3849  ;?  r   c                     S[         R                  " 5       4S[         R                  " 5       4S[         R                  " [         R                  " 5       5      4/n [         R
                  " U 5      nUR                  / SQ:X  d   eUR                  [         R                  " 5       [         R                  " 5       [         R                  " [         R                  " 5       5      /:X  d   e[        U5      S:X  d   e[        U5      S:X  d   e[        R                  " [        5         [         R
                  " S/5        S S S 5        g ! , (       d  f       g = f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99----99RYY["((27792EFFFFs8q==9     
y	!
		=/" 
"	!	!s   !E
Ec            	         [        S[        R                  " 5       4S[        R                  " 5       4S[        R                  " [        R
                  " 5       5      4/5      n [        R                  " U 5      nUR                  / SQ:X  d   eUR                  [        R                  " 5       [        R                  " 5       [        R                  " [        R
                  " 5       5      /:X  d   e[        U5      S:X  d   e[        U5      S:X  d   e[        S/5      n [        R                  " [        5         [        R                  " U 5        S S S 5        g ! , (       d  f       g = fr   )r   r
   r   r5   r8   r   r   r   r   r   r   r   r   r	   r   s     r   test_schema_from_mappingr   r  s    	
				#$ F
 ))F
C99----99RYY["((27792EFFFFs8q==9     -)F	y	!
		& 
"	!	!s   6E
E$c            	         [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUR                  / SQ:X  d   eUR                  [         R                  " 5       [         R                  " 5       [         R                  " [         R
                  " 5       5      /:X  d   e[        U5      S:X  d   e[        U5      S:X  d   eUS   R                  S:X  d   eUS   R                  U S   R                  :X  d   e[        R                  " [        5         UR!                  S5      U S   :X  d   e S S S 5        [        R                  " [        5         UR!                  S5      b   e S S S 5        [        R                  " ["        [        45         UR!                  S5      b   e S S S 5        UR%                  S5      S	:X  d   eUR'                  S5      SS
/:X  d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Na= f)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99----99RYY["((27792EFFFFs8q==9     q6;;%q6;;&)..(((	m	$  '6!9444 
%	m	$  '/// 
%	{M2	3  '/// 
4 u%+++ $$U+1v555 
%	$	$	$	3	3s$   II-I>
I*-
I;>
Jc                  d   [         R                  " S[         R                  " 5       5      R                  SS05      n U R	                  5       U /:X  d   e[         R                  " S[         R
                  " 5       SS9n[         R                  " S[         R                  " X/5      SS9nUR	                  5       [         R                  " S[         R                  " 5       5      R                  SS05      [         R                  " S	[         R
                  " 5       SS9/:X  d   e[         R                  " S[         R                  " X/5      5      nUR	                  5       [         R                  " S[         R                  " 5       5      R                  SS05      [         R                  " S	[         R
                  " 5       5      /:X  d   e[         R                  " S
[         R                  " U/5      5      nUR	                  5       [         R                  " S[         R                  " X/5      5      /:X  d   eg )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	DB::<B4	%	6B	$		2(+e	<B::<
288:&44ff5EF
2::<%8: : : :
 
$		2(+	,B::<
288:&44ff5EF
2::<(* * * * ((5"))RD/
*C;;=RXXh		2(0CDEEEEr   c            	      <   [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUR                  b   eSSS.nUR                  U5      nUR                  U:X  d   eUR                  5       nUR                  b   eUR                  5       nUR                  b   eg )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5H			(	#B;;("""				B;; 
			B;;r   c            	         [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUR                  SUR                  S5      R                  [         R                  " 5       5      5      nUR                  S5      R                  [         R                  " 5       :X  d   eUR                  S5      R                  [         R                  " 5       :X  d   eUR                  SUR                  S5      R                  S5      5      nUR                  S5      R                  SL d   eUR                  S5      R                  SL d   eg )Nr   r   r   r   FT)r
   rG   r   r5   r8   r   r   set	with_typer   r   with_nullabler   )r   r   r   r   s       r   test_schema_set_fieldr     s&   

#
		$
+,F
 
6	B	288A;((4	5B88A;rxxz)))88A;rxxz)))	288A;,,U3	4B88A;4'''88A;5(((r   c                     [         R                  " S[         R                  " 5       5      /n [         R                  " U SS0S9n[         R                  " U SS0S9n[         R                  " U SS0S9n[         R                  " U SS0S9n[	        U5      [	        U5      :X  d   e[	        U5      [	        U5      :w  d   e[	        U5      [	        U5      :w  d   e[	        U5      [	        U5      :w  d   e[         R                  " U 0 S9n[         R                  " U S S9n[	        U5      [	        U5      :X  d   e[	        U5      [	        U5      :w  d   eg )Nr   r   r   r   s   foo_differents   bar_different)r
   rG   r   r   hash)r   schema1schema2schema3schema4schema_empty1schema_empty2s          r   test_schema_hash_metadatar     s   

#F ii&&)9:Gii&&)9:Gii*:F)CDGii&2B)CDG=DM)))=DM)))=DM)))=DM)))IIfr2MIIft4M$}"5555$w-///r   c            	      "   [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n SSS.n[         R                  " U 5      n[         R                  " U 5      n[         R                  " XS9n[         R                  " XS9nUR                  USS	9(       d   eUR                  USS	9(       d   eUR                  U5      (       d   eUR                  USS	9(       a   eUR                  USS	9(       a   eU S
	 [         R                  " U 5      nUR                  U5      (       a   eg )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     s,   

#
		$
+,F
 95H99VD99VD99V/D99V/D;;tD;111;;tD;111;;t{{4{555{{4{555r
99VD{{4     r   c            	         [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       SS0S9/5      nU R                  USS9(       a   eU R                  U5      (       d   eg )Nr   r   aalphar   Tr   )r
   r   rG   r   r5   r   )r   r   s     r   ,test_schema_equals_propagates_check_metadatar     s    ii

#
		$ G ii

#
		sGn= G ~~gd~;;;>>'""""r   c                  R   [         R                  " [         R                  " S[         R                  " 5       5      /5      n S S[         R                  " SS/5      4 H7  n[
        R                  " [        5         U R                  U5        S S S 5        M9     g ! , (       d  f       MK  = f)Nr   r5   r   r   )	r
   r   rG   r   arrayr   r   r	   r   )r   rN   s     r   test_schema_equals_invalid_typer   !  si    YYbhhj123Fh!Q 01]]9%MM# &% 2%%s   8B
B&	c            	      >   [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n SSS.n[         R                  " U 5      n[         R                  " U 5      n[         R                  " XS9n[         R                  " XS9nX#:X  d   eXE:X  d   eX$:X  d   eX$:w  a   eX5:X  d   eU/ :w  d   eUS:w  d   eg )Nr   r   r   r   r   r   r   )r
   rG   r   r5   r8   r   r   r   s         r   test_schema_equality_operatorsr   *  s    

#
		$
+,F
 95H99VD99VD99V/D99V/D<<<< <<|<< 2::5==r   c            	         [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   e[        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        5         UR                  S5        S S S 5        g ! , (       d  f       Nw= f! , (       d  f       NT= f! , (       d  f       g = f)	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   E  s$   

#
		$
+,F YYvF<<##u,,,<<?5(((<<  E)))	x	 W 
!	y	!S 
"	z	"Q 
#	"	 
!	 	!	!	"	"s$   %F(F9G
(
F69
G

Gc            	         [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       5      5      /n [         R                  " U 5      nUS   R                  US   5      (       d   eUS   R                  US   5      (       d   eUS   R                  US	   5      (       d   e[        R                  " [        5         US
     S S S 5        [        R                  " [        5         US     S S S 5        g ! , (       d  f       N7= f! , (       d  f       g = f)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  Z  s   

#
		$
+,F YYvF":VAY''''":VAY''''":VAY''''	z	"r
 
# 
z	"q	 
#	" 
#	" 
#	"s   EE$
E!$
E2c                  N   [         R                  " S[         R                  " [         R                  " 5       [         R                  " 5       5      5      [         R                  " S[         R
                  " 5       5      /n [         R                  " U 5      nSn[        U5      U:X  d   eg )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  n  sp    
bhhj"))+>?

#F ))F
C	 
 9   r   c                 F	   [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " S5      [         R                  " [         R                  " 5       5      [         R
                  " [         R                  " 5       [         R                  " 5       5      [         R                  " [         R                  " SS5      [         R                  " SS5      /5      [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /[         R                  R                  5      [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /[         R                  R                  5      [         R                  " S5      [         R                  " S5      [         R                  " 5       [         R                   " 5       [         R"                  " S5      [         R"                  " S	5      [         R$                  " S
S5      [         R&                  " SS5      [         R(                  " SS5      [         R*                  " SS5      [         R                  " SSSS0S9[         R                  " [         R                  " S[         R,                  " 5       5      5      [         R.                  " [         R                  " S[         R,                  " 5       5      5      [         R
                  " [         R                  " S[         R                  " 5       SS9[         R                  " S[         R                  " 5       5      5      /nU H*  nU R1                  U R3                  U5      5      nX#:X  a  M*   e   / n[5        U5       H`  u  pV[7        U[         R8                  5      (       a  UR;                  U5        M7  UR;                  [         R                  " SU 3U5      5        Mb     [         R<                  " USS0S9nU R1                  U R3                  U5      5      nXs:X  d   eg )N
   r   r   br5   r\   r]   r#   r_   	   r      r   r$   r   L   &   r   r   r   elementr   Fr   value_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   )pickle_moduler<   rN   roundtrippedr   ifr   s           r   test_type_schema_picklingr$  }  s   
	
		
		
		"

		RWWY'
		HHS&!HHS(#
 	 	HHS"'')$HHS"((*%
 66""	$ 	HHS"'')$HHS"((*%
 66!!	# 			#
		$
		
		
T
T
Q
R
b!
b"
h&&)9:
)RXXZ01
bhhy"((*56
		e<"''),	.A"EH $**=+>+>s+CD"""  F% a""MM!MM"((Rs8Q/0	 ! YYv(89F &&}':':6'BCL!!!r   c                  R   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R
                  " 5       [         R                  " 5       5      5      [         R                  " S[         R                  " [         R                  " [         R                  " 5       5      5      5      /5      n [         R                  " [         R                  " S[         R                  " 5       SS9[         R                  " S[         R                  " 5       5      /5      nX4 HX  nUR                  5       n[        U[         R                  5      (       d   eUR                  S:X  d   eUR                  U:X  a  MX   e   g )	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+    s   ii
rxxz"
r}}RXXZ=>
rxx 456 G ii
bhhj51
bhhj! G
 $""$%****~~"""||v%%%	 %r   c            	         SS K n [        [        S5      5      U R                  " [        [        S5      5      5      / SQ[        R
                  " / SQSS9U R
                  " / SQU R                  " 5       S9/nU He  nU R                  " SU0US	9n[        R                  R                  U5      n[        R                  R                  U5      R                  nXE:X  a  Me   e   g )
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_pandasr9    s    U2Y
tE"I'*
 
 "		#
 	R]]_5
F \\3+T2&&r*88''+22!!!	 r   c                  D   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [
        R                  " U 5      [
        R                  S:  a  SOS:  d   eU R                  SS05      n[
        R                  " U5      [
        R                  " U 5      :  d   eU R                  SS05      n[
        R                  " U5      [
        R                  " U5      :  d   eg )	Nr   r   l              r   zsome metadatazsome more metadata)	r
   r   rG   r   r5   sys	getsizeofmaxsizer   )r   r   r   s      r   test_schema_sizeofr@    s    YY

#
		$ F == #++*=B2FFF""E?#;<G==!CMM&$9999""E+?#@AG==!CMM'$::::r   c                  X   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R
                  " [         R                  " 5       5      5      /5      n [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n[         R                  " [         R                  " S[         R                  " [         R                  " 5       [         R                  " 5       5      5      /5      n[         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n[         R                  " XU/5      n[         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R
                  " [         R                  " 5       5      5      [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R                  " 5       [         R                  " 5       5      5      /5      nUR                  U5      (       d   e[        R                  " [         R                  5         [         R                  " X/5        S S S 5        [         R                  " XU45      nUR                  U5      (       d   e[         R                  " X/SS9nUR                  U5      (       d   e[        R                  " [        5         [         R                  " U S/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	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_mergerI    s   
		

#
		$
+, 	A
 			

#

# 	A 			
rxxz299;?@ 	A 			

#

# 	A
 qQi(Fyy

#
		$
+,

#
rxxz299;?@ H ==""""	r((	)
!  
* qQi(F==""""qflCF== 
y	!
!Q  
"	! 
*	) 
"	!s   P
(P

P
P)c                      Sn Sn[         R                  " [         R                  " S[         R                  " 5       SU 0S9/SU0S9nS[	        U5      ;   d   eS[	        U5      ;   d   eg )Ns   abcdef s   ghijkl intsr   r   abcdefghijkl)r
   r   rG   r   r   )data1data2r   s      r   test_undecodable_metadatarP    sd    EEYY	&"((*u~	>?!F s6{"""s6{"""r   )6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+  r9  r@  rI  rP  rC   r   r   <module>r[     s  $ $ 
    & & ,	
 !: !:H -  -
.+2\
* '8 '8T6
EP#(*6@F(0)$0,!0#6*(!2"j&& " "(;(!V#w  	B  		s"   D D# D D #D,+D,