
    <>id                        S SK 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r	   S SK
rS SKrS SKJs  Jr  S SKJrJrJrJr   S SKJr  S SKrS SKr\R8                  " SS9S 5       rSMS jr\R8                  " SSS	/S
9S 5       r\R8                  " S/ SQS
9S 5       r Sq!S r"S r#\RH                  R2                  S 5       r%    SNS jr&SOS jr'SPS jr(\RH                  R                  S 5       r)\RH                  R2                  S 5       r*\RH                  R2                  S 5       r+\RH                  R2                  S 5       r,\RH                  R2                  S 5       r-\RH                  R2                  S 5       r.\RH                  R2                  S 5       r/\RH                  R2                  S 5       r0\RH                  R2                  S 5       r1\RH                  R2                  S 5       r2S r3\RH                  R                  S 5       r4\RH                  R2                  S  5       r5\RH                  R2                  S! 5       r6\RH                  R2                  S" 5       r7\RH                  R2                  S# 5       r8\RH                  R2                  S$ 5       r9\RH                  R2                  S% 5       r:\RH                  R2                  S& 5       r;\RH                  R2                  S' 5       r<\RH                  R2                  S( 5       r=\RH                  R2                  S) 5       r>\RH                  R2                  \RH                  R                  S*\@S+9S, 5       5       rA\RH                  R2                  S- 5       rB\RH                  R2                  S. 5       rC\RH                  R2                  S/ 5       rD\RH                  R2                  \RH                  R                  \R                  R                  (       + S0S19S2 5       5       rH\RH                  R2                  S3 5       rI\RH                  R                  S4 5       rJ\RH                  R2                  S5 5       rK\RH                  R2                  \RH                  R                  S65      \RH                  R                  S75      S8 5       5       5       rM\RH                  R2                  S9 5       rNS: rO\RH                  R2                  S; 5       rP\RH                  R2                  S< 5       rQ\RH                  R2                  \RH                  R                  \RH                  R                  \RH                  R                  S= 5       5       5       5       rU\RH                  R                  S> 5       rVS? rW\RH                  R                  \RH                  R2                  S@ 5       5       rY\RH                  R                  \RH                  R2                  SA 5       5       r[SB r\\RH                  R2                  SC 5       r]SD r^SE r_SF r`SG ra\RH                  R                  \R                  " \R                  \	R                  " / SHQ5      5      SI 5       5       re\RH                  R                  SJ 5       rf\RH                  R2                  SK 5       rg\RH                  R2                  SL 5       rhg! \ a    Sr GNf = f! \ a     GNf = f)Q    N)read_featherwrite_feather
read_tableFeatherDataset)assert_frame_equalmodule)scopec                     U S-  $ )Nfeather )base_datadirs    Y/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_feather.pydatadirr   ,   s    )##    c                 *    [         R                  " U S9$ )Nprefix)tempfilemktempr   s    r   random_pathr   1   s    ??&))r         )r	   paramsc              #   (   #    U R                   v   g 7fN)paramrequests    r   versionr   5   s     
--s   )Nuncompressedlz4zstdc              #      #    U R                   S;   aQ  [        R                  R                  U R                   5      (       d#  [        R
                  " U R                    S35        U R                   v   g 7f)N)r!   r"   z is not available)r   paCodecis_availablepytestskipr   s    r   compressionr)   :   sP     }}'0E0EMM1 1w}}o%678
--s   A1A3c                     / q g r   )
TEST_FILES)r   s    r   setup_moduler,   E   s    Jr   c                     [          H  n [        R                  " U5        M     g ! [        R                   a     M6  f = fr   )r+   osremoveerror)r   paths     r   teardown_moduler2   J   s4    	IIdO  xx 		s   &>>c                      [         R                  " [        R                  5         [	        S5        S S S 5        g ! , (       d  f       g = f)Ntest_invalid_file)r'   raisesr$   ArrowIOErrorr   r   r   r   test_file_not_existr7   R   s'    	r	'() 
(	'	's	   :
Ac                     Uc
  [        5       nUc  Sn[        R                  U5        [        XUXuS9  [        R
                  R                  U5      (       d  [        S5      e[        X#US9nUc  U n[        X5        g )Nr   )r)   compression_levelr   file not writtenuse_threads)
r   r+   appendr   r.   r1   exists	Exceptionr   r   )	dfexpectedr1   columnsr<   r   r)   r9   results	            r   _check_pandas_roundtriprD   X   sx     |}d"$5H 77>>$*++$[AFv(r   c                     Uc
  [        5       n[        R                  U5        [        XUS9  [        R
                  R                  U5      (       d  [        S5      e[        U5      nUR                  U 5      (       d   eg )Nr)   r:   )
r   r+   r=   r   r.   r1   r>   r?   r   equals)tabler1   r)   rC   s       r   _check_arrow_roundtriprI   q   sd    |}d%;777>>$*++F==r   c                    ^ ^^ Tc
  [        5       m[        R                  T5        U UU4S jn[        R                  " X5        g )Nc                     > [        T TTS9  g )Nr   )r   )r@   r1   r   s   r   f!_assert_error_on_write.<locals>.f   s    b$0r   )r   r+   r=   r'   r5   )r@   excr1   r   rM   s   ` `` r   _assert_error_on_writerP   ~   s2     |}d1 MM#r   c                 0   SnSn[        U5       Vs/ s H  n[        5       PM     nn[        US   5       Vs0 s H2  nS[        U5      -   [        R                  R                  US   5      _M4     nn[        R                  " U5      n[        R                  U5        [        U5       H/  u  pxXqS   U-  -  US-   US   U-  -  4n	[        XiS   U	S    XS9  M1     [        U5      R                  5       nUR                  U5      (       d   eg s  snf s  snf )Nd   rS      r   col_r   rL   )ranger   strnprandomrandnr$   rH   r+   extend	enumerater   r   r   rG   )
r   
num_values	num_filesipathsdatarH   indexr1   rowss
             r   test_datasetrd      s   JI$))$45$4q[]$4E5 z!}%%A 	QA77% 	  HHTNEe ']i/0QY:a=I56

 	eGT!W-tE ( % ++-D;;u# 6s
   D9Dc                     0 nSS/nSnU H5  n[         R                  R                  U5      nUR                  U5      X'   M7     [        R
                  " U5      n[        X`S9  g )Nf4f8rS   rL   )rX   rY   rZ   astypepd	DataFramerD   r   ra   numpy_dtypesr]   dtypevaluesr@   s          r   test_float_no_nullsro      sY    D$<LJ,mmE*  
d	BB0r   c                     Sn[        5       n[        R                  U5        [        R                  R                  SSUS9n[        S5       Vs/ s H  nS[        U5      -   PM     nn[        R                  R                  X55      n[        XbU S9  [        U5      nUR                  U5      (       d   e[        USS9nUR                  U5      (       d   e[        USS9n[        UR!                  5       U5        g s  snf )	NrR   r   rS   sizerU   rL   F)
memory_map)r   r+   r=   rX   rY   randintrV   rW   r$   Tablefrom_arraysr   r   rG   r   r   	to_pandasr   r]   r1   rn   r_   rB   rH   rC   s           r   test_read_tablery      s    J=DdYYq#J7F(-c
3
1vA
G3HH  1E%w/F== /F==$51Fu(&1 4s   C;c                    Sn[        5       n[        R                  U5        [        R                  R                  SSUS9n[        S5       Vs/ s H  nS[        U5      -   PM     nn[        R                  R                  X55      n[        XbU S9  [        U5      n[        UR                  5       U5        [        USS9n[        UR                  5       U5        [        USS9nUR!                  U5      (       d   eg s  snf )	N)
   r{   r   r{   rq   rU   rL   Fr;   )r   r+   r=   rX   rY   rt   rV   rW   r$   ru   rv   r   r   r   rw   r   rG   rx   s           r   test_use_threadsr|      s     J=DdYYq":6F(-b	2	1vA	G2HH  1E%w/$Fu(&1 $E2Fu(&1 %0F== 3s   C=c                    Sn[        5       n[        R                  U5        [        R                  R                  SSUS9S:  nSS/n/ n/ nU Hw  n[        R                  R                  U5      R                  U5      nUR                  [        R                  " XS95        [        R                  X'   UR                  U5        My     [        R                  " XdS	9n	[        U	5        U	R                  5       n
[        XS
9  g )NrS   r   r{   rq      rf   rg   masknamesrL   )r   r+   r=   rX   rY   rt   rZ   rh   r$   arraynanrH   rI   rw   rD   )r   r]   r1   	null_maskdtypesexpected_colsarraysnamern   rH   r@   s              r   test_float_nullsr      s    J=Dd		!!!Rj!9A=ID\FMF,33D9bhhv67FFV$  HHV*E5!		BB0r   c                 H   0 / p!/ SQnSnU HU  n[         R                  R                  SSUS9nUR                  U5      X'   UR	                  UR                  U5      5        MW     [
        R                  " U5      n[        XpS9  [        R                  " X#S9n[        U5        g )Ni1i2i4i8u1u2u4u8rS   r   rq   rL   r   )rX   rY   rt   rh   r=   ri   rj   rD   r$   rH   rI   )	r   ra   arrrl   r]   rm   rn   r@   rH   s	            r   test_integer_no_nullsr      s    B#,LJ""1c
";mmE*

6=='( 
 
d	BB0HHS-E5!r   c                     0 nS/nSnU H5  n[         R                  R                  SSUS9nUR                  U5      X'   M7     [        R
                  " U5      n[        X`S9  g )NlonglongrS   r   rq   rL   )rX   rY   rt   rh   ri   rj   rD   rk   s          r   test_platform_numpy_integersr     s`    D<LJ""1c
";mmE*  
d	BB0r   c                    [        5       n[        R                  U5        / SQnSn/ n[        R                  R                  SSUS9S:  n/ nU Hy  n[        R                  R                  SSUS9nUR                  [        R                  " XS95        UR                  S5      n	[        R                  X'   UR                  U	5        M{     [        R                  " XBS	9n
[        U
5        U
R                  5       n[        XS
9  g )Nr   rS   r   r{   rq   r~   r   rg   r   rL   )r   r+   r=   rX   rY   rt   r$   r   rh   r   rH   rI   rw   rD   )r   r1   
int_dtypesr]   r   r   r   r   rn   rA   rH   r@   s               r   test_integer_with_nullsr   #  s     =DdAJJF		!!!Rj!9A=IM""1c
";bhhv67==& ffX&  HHV.E5!		BB0r   c                     Sn[         R                  R                  S5        [        R                  " S[         R                  R                  U5      S:  05      n[        X S9  g )NrS   r   boolsrL   )rX   rY   seedri   rj   rZ   rD   )r   r]   r@   s      r   test_boolean_no_nullsr   ?  sD    JIINN1	w		
 ;a ?@	ABB0r   c                    [        5       n[        R                  U5        Sn[        R                  R                  S5        [        R                  R                  SSUS9S:  n[        R                  R                  SSUS9S:  n[        R                  " [        R                  " XCS9/S/S	9n[        U5        UR                  5       n[        X`S
9  g )NrS   r   r{   rq   r~   rT   r   r   r   rL   )r   r+   r=   rX   rY   r   rt   r$   rH   r   rI   rw   rD   )r   r1   r]   r   rn   rH   r@   s          r   test_boolean_nullsr   I  s     =DdJIINN199Q4q8DYYq":6:FHHbhhv127)DE5!		BB0r   c                 6   [        5       n[        R                  U5        [        SS5       Hj  n[        R
                  R                  [        R                  " S /[        [        U5      5      -   [        R                  " 5       S9/S/S9n[        U5        Ml     g )N      )typer   r   )r   r+   r=   rV   r$   ru   rv   r   listfloat64rI   )r   r1   r_   rH   s       r   test_buffer_bounds_errorr   \  su    =Dd2s^$$XXtftE!H~-BJJLAB' % 
 	u% r   c                     Sn[         R                  R                  [        R                  " / SQU-  [
        S9/S/S9n[        U5        g )NrS   )FNT)rm   r   r   )r$   ru   rv   rX   r   objectrI   )r   repeatsrH   s      r   test_boolean_object_nullsr   i  sF    GHH  	%/v	>?g ! E 5!r   c                 x   [         R                  S:X  a  [        R                  " S5         " S S5      n[        R
                  " [        S5      SS SU" 5       [        R                  /S.S	S
/S9n[        5       n [        X#U S9  [        R                  R                  U5      (       a   eg ! [         a     N3f = f)Nwin32z/Windows hangs on to file handle for some reasonc                       \ rS rSrSrg)6test_delete_partial_file_on_error.<locals>.CustomClassix  r   N__name__
__module____qualname____firstlineno____static_attributes__r   r   r   CustomClassr   x      r   r   rT      foobar)numbersstringsr   r   rB   rL   )sysplatformr'   r(   ri   rj   rV   rX   r   r   r   r?   r.   r1   r>   )r   r   r@   r1   s       r   !test_delete_partial_file_on_errorr   s  s    
||wEF  
Qxe[]BFFC	E I&	
(B =Db0 ww~~d#####  s   ;
B, ,
B98B9c                    SnSS SS[         R                  /n[        R                  " SX!-  05      n/ SQn[        R                  " SXA-  05      n[	        X5U S9  / SQn[        R                  " SX!-  05      n[        R                  " SX!-  05      n[	        X5U S9  S	S SS[         R                  /n[        R                  " SX!-  05      n/ SQn[        R                  " SXA-  05      n[	        X5U S9  g )
N  r   r   quxr   )r   Ns   bars   quxNrL   fooNr   r   Nr   )rX   r   ri   rj   rD   )r   r   rn   r@   	ex_valuesrA   s         r   test_stringsr     s    G dE5"&&1F	y&"23	4B4I||Y	(;<=HB': /F	y&"23	4B||Y(89:HB':T5%0F	y&"23	4B1I||Y	(;<=HB':r   c                 N    [         R                  " SS/S-  05      n[        XS9  g )Nr    r{   rL   ri   rj   rD   r   r@   s     r   test_empty_stringsr     s#    	y2$),	-BB0r   c                     [         R                  " SS /S-  05      nU S:X  a?  [        R                  R                  R                  5       (       a  UR                  S5      nOUn[        XUS9  g )Nall_noner{   r   rW   )r   rA   )ri   rj   r$   pandas_compat_pandas_apiuses_string_dtyperh   rD   r   r@   rA   s      r   test_all_noner     sY    	zD6B;/	0B!|((44FFHH99U#B(Cr   c                     [         R                  " SSS.5      nUR                  UR                  R	                  S5      S9n[        XS9  g )Nr   r   r~   )NNNABcategory)r   rL   )ri   rj   assignr   rh   rD   r   s     r   test_all_null_categoryr     s=     
I,>?	@B	RTT[[,	-BB0r   c                     [        S5       Vs0 s H  nSU 3S/S-  _M     nn[        R                  " U5      n[        USU S9  g s  snf )NrS   cr   r{   T)r<   r   )rV   ri   rj   rD   )r   r_   ra   r@   s       r   test_multithreaded_readr     sX     3Z! sGbTBY 	 !	d	BBD'B!s   Ac                     [         R                  " S[         R                  [         R                  S-  S/S-  5      n[        R                  " SU05      n[        X S9  g )Nr   r   r   r{   r   rL   )rX   r   r   ri   rj   rD   )r   rn   r@   s      r   test_nan_as_nullr     sG     XXubffbffqj%82=>F	y&)	*BB0r   c                    SnSS SS[         R                  /n[        R                  " SX!-  05      nUS   R	                  S5      US'   / SQn[        R                  " S[        R
                  " X!-  5      05      n[        X4U S9  g )	Nr   r   r   r   r   r   r   rL   )rX   r   ri   rj   rh   CategoricalrD   )r   r   rn   r@   rA   s        r   test_categoryr     sw    GT5%0F	y&"23	4ByM((4ByM.F||Yv7G(HIJHB':r   c                     [         R                  " S[         R                  " SSS905      nUR                  R                  R                  S5      R                  R                  S5      US'   [        XS9  g )	Nnaivez
2016-03-28r{   )periodsutczAmerica/Los_Angeleswith_tzrL   )ri   rj   
date_ranger   dttz_localize
tz_convertrD   r   s     r   test_timestampr     sX    	wlB GH	IBXX[[,,U3b$9: yM B0r   c           
          [         R                  " S[         R                  " SSS5      S [         R                  " SSS5      /05      nUR                  R                  R                  S5      US'   [        XS9  g )Ntesti  r   r~   r   r   rL   )ri   rj   	Timestampr   r   r   rD   r   s     r   test_timestamp_with_nullsr     sd    	vT1a 8 $ "T1a 8 : ; 
<B GGJJ**51ByMB0r   znot supported)reasonr5   c                      [         R                  " S[         R                  " S5      S [         R                  " S5      /05      n [        U SS9  g )Nr   1 day3 dayr   rL   ri   rj   	TimedeltarD   r@   s    r   test_timedelta_with_nulls_v1r     sD     
vW 5 $ "W 5 7 8 
9B B*r   c                      [         R                  " S[         R                  " S5      S [         R                  " S5      /05      n [        U SS9  g )Nr   r   r   r   rL   r   r   s    r   test_timedelta_with_nullsr     sB    	vW 5 $ "W 5 7 8 
9B B*r   c                     [         R                  " S[         R                  " / SQ5      05      nUR                  R                  R                  S5      US'   [        XS9  g )Nr   )l    ^cQ)! Nl   6"Ir   r   rL   )ri   rj   DatetimeIndexr   r   r   rD   r   s     r   (test_out_of_float64_timestamp_with_nullsr     sP    		!! #< = 	>
?B GGJJ**51ByMB0r   c                     [         R                  " / SQ/ SQS.5      nUnU S:X  a  UR                  [        S9n[	        XU S9  g )Nr   r   r~      )TFTF)r   r   r   r   rL   )ri   rj   renamerW   rD   r   s      r   test_non_string_columnsr    s@    	,46 
7BH!|99S9)B':r   zunicode filenames not supported)r   c                 ~    SR                  S5      n[        R                  " S/ SQ05      n[        U[	        US9U S9  g )Ns   Besa_Kavajë.featherzutf-8r   r  r   )r1   r   )decoderi   rj   rD   r   )r   r   r@   s      r   test_unicode_filenamer    s;    
 *11':D	ul+	,BB[%=$+-r   c                 l    [         R                  " / SQ/ SQ/ SQS.5      nUSS/   n[        XU SS/S9  g )Nr  )rT            )r   r~   rT   r
  )r   boowoor  r  )r   rB   r   r   s      r   test_read_columnsr    sA    	 
B
 5%.!HB'%*EN4r   c                 V   [        5       n[        R                  U5        Sn[        R                  R                  S5        [        R                  R                  SSUS9n[        R                  " SU05      n[        XA5        [        R                  " SUSUS-   05      n[        XAS9  g )	NrS   r   r{   rq   ints	more_intsr   )r1   )r   r+   r=   rX   rY   r   rt   r$   rH   r   rI   )r   r1   r]   rn   rH   s        r   test_overwritten_filer  (  s    =DdJIINN1YYq":6FHHff%&E%HHk6!JM#:;<E5,r   c                 "   [         R                  " 5       n[        R                  " [        R
                  " S5      R                  SS5      / SQS9R                  5       n[        X!U S9  UR                  S5        [        U5      n[        X25        g )N   r  r~   abr   r   rL   r   )ioBytesIOri   rj   rX   arangereshapecopyr   seekr   r   )r   bufr@   rC   s       r   test_filelike_objectsr  9  sh    
**,C 
biim++Aq1-
//3tv "7+HHQK#Fv"r   zignore:Sparse:FutureWarningz(ignore:DataFrame.to_sparse:FutureWarningc                    [         R                  R                  R                  (       d  [        R
                  " S5        / SQ/ SQS.n[        R                  " U5      R                  SS9nUR                  5       n[        X#U S9  g )Nz2version of pandas does not support SparseDataFramer   r   r   )r   r   r   r   r   )
fill_valuerL   )r$   r   r   
has_sparser'   r(   ri   rj   	to_sparseto_denserD   )r   ra   r@   rA   s       r   test_sparse_dataframer&  H  sd     ''22HID	d		%	%	%	3B{{}HB':r   c                      [         R                  " [        R                  " S5      R	                  SS5      [        S5      S9R                  5       n [        U [        5        g )Nr  r  r~   aaar   )	ri   rj   rX   r  r  r   r  rP   
ValueErrorr   s    r   test_duplicate_columns_pandasr*  V  sD    
 
biim++Aq1"5k
++/46 2z*r   c                  x    [         R                  " / SQ/ SQ/ SQ// SQS9n [        U 5        [        U [        SS9  g )Nr   r  rT   r	  r
  r  	   )r  r  r  r   r   rL   )r$   rH   rI   rP   r)  )rH   s    r   test_duplicate_columnsr/  `  s-    HHiI6oNE5!5*a8r   c                       " S S5      n [         R                  " SU " 5       U " 5       /05      n[        U[        5        [         R                  " S/ SQ05      n[        U[        5        g )Nc                       \ rS rSrSrg)test_unsupported.<locals>.Aim  r   Nr   r   r   r   r   r2  m  r   r   r   r  )r  r   g       @)ri   rj   rP   r)  	TypeError)r   r@   s     r   test_unsupportedr4  g  sR      
sQS!#J'	(B2z* 
sM*	+B2y)r   c                     [         R                  " S[        R                  " S5      05      n [        R
                  " U 5      n[        R                  " 5       n[        XSSS9  UR                  5       n[        R                  R                  [        R                  " U5      5      nUR                  S:X  d   e[        UR                  S5      5      S:X  d   eg )Nr   r      r   	chunksizer   r  r   )ri   rj   rX   r  r$   rH   r  r  r   getvalueipc	open_fileBufferReadernum_record_batcheslen	get_batch)r@   rH   r  rC   ipc_files        r   test_v2_set_chunksizerA  x  s    	sBIIdO,	-BHHRLE
**,C%Q7\\^Fvv 78H&&!+++x!!!$%,,,r   c                  *   [         R                  " S[        R                  " S5      05      n / SQnU H  u  p#[	        XUS9  M     [
        R                  " 5       n[        R                  " [        SS9   [        XSSS	9  S S S 5        [        R                  " [        S
S9   [        XSSS9  S S S 5        [        R                  " [        SS9   [        XSS9  S S S 5        g ! , (       d  f       Nh= f! , (       d  f       NL= f! , (       d  f       g = f)Nr   r   ))r    N)r!   N)r!   r   )r!   r  )r"   r   )r"   r{   )r)   r9   z2Feather V1 files do not support compression optionmatchr!   r   )r)   r   z0Feather V1 files do not support chunksize optioni   r7  z"compression="snappy" not supportedsnappyrF   )ri   rj   rX   r  rD   r  r  r'   r5   r)  r   )r@   casesr)   r9   r  s        r   test_v2_compression_optionsrG    s    
 
sBIIdO,	-BE +0&2C	E +0 **,C 
F
H 	b5!<
H 
D
F 	bq9
F 
zA
Cb84
C 
C
H 
H
F 
F
C 
Cs$   4C"!C3D"
C03
D
Dc                     [         R                  R                  S5      (       d  [        R                  " S5        [         R
                  " [        R                  " SS5      /S/S9n [        R                  " 5       n[        X5        UR                  5       n[        R                  " 5       n[        XSS9  UR                  5       n[        U5      [        U5      :  d   eg )	N	lz4_framez+LZ4 compression support is not built in C++r   i f0r   r    rF   )r$   r%   r&   r'   r(   rH   rX   repeatr  r  r   r9  r>  )tr  default_resultuncompressed_results       r   test_v2_lz4_default_compressionrO    s     88  --AB 	"))Av&'v6A
**,C!\\^N
**,C!n5,,.~%8!9999r   c                     [         R                  " [         R                  " / SQ/ S /5      /S/S9n [        R                  " 5       n[
        R                  " [        SS9   [        XSS9  S S S 5        g ! , (       d  f       g = f)Nr   rJ  r   z[Unsupported Feather V1 type: list<item: int64>. Use V2 format to serialize all Arrow types.rC  r   rL   )	r$   rH   r   r  r  r'   r5   r3  r   )rH   r  s     r   test_v1_unsupported_typesrQ    sf    HHbhh	2t456tfEE
**,C	yL
N 	e!,	
N 
N 
Ns   A33
Bc                 n    [         R                  " S[        R                  " S5      05      n[	        XS9  g )Nr   i rL   )ri   rj   rX   r  rD   r   s     r   test_large_dataframerS    s(     
sBIIi01	2BB0r   c                     S/SS-  /S-  S-  -   n [         R                  " SU 05      n[        R                  " 5       n[	        XSS9  [        [        R                  " UR                  5       5      5      n[        X15        [        R                  " [        SS9   [	        U[        R                  " 5       S	S9  S S S 5        g ! , (       d  f       g = f)
N   xi   r   i   byte_colrL   zp'byte_col' exceeds 2GB maximum capacity of a Feather binary column. This restriction may be lifted in the futurerC  r   )ri   rj   r  r  r   r   r$   r<  r9  r   r'   r5   r)  )rn   r@   r  rC   s       r   !test_chunked_binary_error_messagerW    s     V	
 F 
z6*	+B **,C"1%"//#,,.9:Fv"	z *5 
6 	b"**,2
6 
6 
6s   C
Cc                     [         R                  " [         R                  " / SQ5      /S/S9n[        U S-  5      n[	        X#5        g )Nr   rJ  r   data.feather)r$   rH   r   rW   rI   )tempdirr   rH   r1   s       r   test_feather_without_pandasr[    s7    HHbhhy)*4&9Ew'(D5'r   c                    [         R                  " [        R                  " S5      R	                  SS5      / SQS9n[        USS/USS/   U S9  [        US	S
/USS/   U S9  [        USS/USS/   U S9  [        USS	/USS/   U S9  g )Nr  r  r~   r  r   r  r   )rB   rA   r   r   r   r  r   )ri   rj   rX   r  r  rD   r   s     r   test_read_column_selectionr]    s     
biim++Aq1?	KB 
S#JS#JJ
QFRc
^WF 
S#JS#JJ
QFRc
^WFr   c                    [         R                  " / SQ/ SQ/ SQ// SQS9n[        U S-  5      n[        X#US9  [         R                  " / SQ/ SQ/ SQ// SQS9n/ SQ/ S	Q4 H$  n[	        X5S
9nUR                  U5      (       a  M$   e   g )Nr   r,  r-  r  r   rY  rL   r  r  r  )r   r   r   r   )r$   rH   rW   r   r   rG   )rZ  r   rH   r1   rA   col_selectionrC   s          r   %test_read_column_duplicated_selectionra    sz    HHiI6oNEw'(D%w/xxIy9-/H)95D8}}X&&&& 6r   c                 z   [         R                  " / SQ/ SQ/ SQ// SQS9n[        U S-  5      n[        XSS9  [	        U5      nUR                  U5      (       d   e[	        US	S/S
9nUR                  SS/:X  d   e[        R                  " [        5         [	        USS/S
9  S S S 5        g ! , (       d  f       g = f)Nr   r,  r-  r_  r   rY  r   rL   r   r   r  r  )
r$   rH   rW   r   r   rG   column_namesr'   r5   r)  )rZ  rH   r1   rC   s       r   #test_read_column_duplicated_in_filerd    s    HHiI6oNEw'(D%q) F== q!f-F3*,,, 
z	"4#s, 
#	"	"s   B,,
B:c                     [         R                  " / SQ/ SQ/ SQ// SQS9n[        U S-  5      n[        X#US9  S S 5       n[        R
                  " [        S	S
9   [        X4S9  S S S 5        g ! , (       d  f       g = f)Nr   r,  r-  r  r   rY  rL   c              3   $   #    U  H  ov   M     g 7fr   r   ).0xs     r   	<genexpr>2test_read_column_with_generator.<locals>.<genexpr>,  s     .o1os   zColumns must be a sequencerC  r   )r$   rH   rW   r   r'   r5   r3  r   )rZ  r   rH   r1   columns_gens        r   test_read_column_with_generatorrl  (  s`    HHiI6oNEw'(D%w/.o.K	y(D	E4- 
F	E	Es   
A..
A<c                    [         R                  " S[         R                  R                  / SQ/ SQ/SS/S905      n[	        XS9  [         R                  " S[         R
                  " SS	/S
S//5      05      n[	        XS9  [         R                  " S[         R
                  " SS	/S
S//SS/S //5      05      n[	        XS9  g )Ncolr!  r   f1f2r   rF   r   r   r~   r  rT   r	  )r$   rH   StructArrayrv   rI   r   )r)   rH   s     r   test_nested_typesrr  1  s    HHeR^^77	ItTl 8 4 5 6E5:HHeRXX1v1v&6789E5:HHeRXXAA'71a&$&HIJKE5:r   )r    r!   r"   c                     [        XS9  g )NrF   )rI   )rH   r)   s     r   test_roundtriprt  >  s     5:r   c                     [         R                  " S[        S5      05      n[        U S-  5      nUR	                  U5      (       d   eg )Nr  rT   z)v0.17.0.version.2-compression.lz4.feather)r$   rH   rV   r   rG   )r   rA   rC   s      r   Atest_feather_v017_experimental_compression_backward_compatibilityrv  D  s?     xxeAh(H"MMNF==""""r   c                     [         R                  " S/ SQ0/ SQS9nU S:X  a!  UR                  SS9R                  [        S9nOUn[        XU S	9  g )
Nr  r   r  )rb   r   T)dropr   rL   )ri   rj   reset_indexr  rW   rD   r   s      r   test_preserve_index_pandasrz  U  sK    	sI&o	>B!|>>t>,33C3@B':r   c                 .   SSK J n  [        R                  " SUR                  S5      UR                  S5      /05      n[	        X S-  5        UR                  S5      nUR                  S5      n[        U S-  SS9nX5S   S   :X  d   eXES   S	   :X  d   eg )
Nr   )datetimedatez
1654-01-01z
1920-01-01ztest_resolution.featherT)timestamp_as_objectr   )r|  ri   rj   fromisoformatr   r   )rZ  r|  r@   
expected_0
expected_1rC   s         r   0test_feather_datetime_resolution_arrow_to_pandasr  a  s    
 "	v|,|, 0  
B " 99:''5J''5J'$==.24F ********r   )feather_)NNNFNNN)NN)Nr   )ir  r.   r   r   r'   
hypothesishhypothesis.strategies
strategiesstnumpyrX   ImportErrorpyarrowr$   pyarrow.tests.strategiestestspastpyarrow.featherr   r   r   r   pandas.testingr   pandasri   pyarrow.pandas_compatfixturer   r   r   r)   r+   r,   r2   markr7   rD   rI   rP   rd   ro   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailr3  r   r   r   r  skipifr1   supports_unicode_filenamesr  r  r  r  filterwarningsr&  r*  r/  r4  rA  r!   rE  r"   rG  rO  rQ  slowrS  large_memoryrW  r[  r]  ra  rd  rl  rr  given
all_tablessampled_fromrt  rv  rz  r  r   r   r   <module>r     s1  $ 
 	 
    "  ' '- -	1 
 h$  $* h1v. / h'LM N 

 * *
 596;6:.2)2
   . 
1 
1 2 2.    2 1 14 " "& 1 1 1 16 1 1 1 1$
& " " $ $. ; ;0 1 1
 D D 1 1 C C 1 1 ; ; 1 1 1 1 /)<+ = + + + 1 1 ; ; :::<  >-> - 	4 	4 - -  # # 9:FG; H ; ; + +9 * *  - - "5    "5J : :(- 1  1
 3  3,( F F"
'-&.
; "//*IJK; L ; # #  ; ; + +M  	B  		s"   Z? [ ?[
[[[