
    A>io(                         S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSK	r
SSKJr  SSKJrJr  \R"                  R%                  S5      r\R(                  " S5      r\R"                  R,                   " S S	5      5       rg)
ztest feather-format compat    )datetimeN)pa_version_under18p0pa_version_under19p0)read_feather
to_featherz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrowc                   *   \ rS rSrS rS r SS jrS rS rS r	S	 r
S
 rS rS rS rS r\R"                  R$                  \R"                  R&                  S 5       5       rS rS rS rS r\R"                  R3                  \SS9S 5       rS rSrg)TestFeather   c                 v    [         R                  " X#S9   [        X5        S S S 5        g ! , (       d  f       g = f)Nmatch)pytestraisesr   )selfdfexcerr_msg	temp_files        [/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/test_feather.pycheck_error_on_write TestFeather.check_error_on_write   s$     ]]3.r% /..s   *
8c                     [         R                  " [        5         [        X5        S S S 5        g ! , (       d  f       g = fN)tmexternal_error_raised	Exceptionr   )r   r   r   s      r   check_external_error_on_write)TestFeather.check_external_error_on_write$   s&     %%i0r% 100s   0
>Nc                     Uc  0 nUc  UR                  5       n[        X40 UD6  [        U40 UD6n[        R                  " Xc5        g r   )copyr   r   r   assert_frame_equal)r   r   r   expectedwrite_kwargsread_kwargsresults          r   check_round_tripTestFeather.check_round_trip+   sJ     LwwyH21L1i7;7
f/    c                     Sn[         R                  " / SQ5      SS[         R                  " S5      [        R                  " / SQ5      4 H  nU R                  U[        X!5        M     g )Nz'feather only support IO with DataFrames         r,   foo20130101)pdSeries	Timestampnparrayr   
ValueError)r   r   msgobjs       r   
test_errorTestFeather.test_error9   sQ    7IIi LL$HHY
C %%c:sF
r)   c                    [         R                  " S5      n[        R                  " [	        S5      [	        [        SS5      5      [        R                  " SS5      R                  S5      [        R                  " SS	S
S9S[        R                  S// SQS[        R                  S/[        R                  " [	        S5      5      [        R                  " [	        [        R                  " SSS95      S S9[        R                  " [	        [        R                  " SSUS95      S S9[        R                  " S5      [        R                  [        R                  " S5      /[        R                  " [	        [        R                  " SSSS95      S S9S.5      n[        R                  " SSSS9US'   [        R                   " SSS9US'   [        R"                  " SSS5      US'   UR$                  R&                  R(                  R*                  S:X  d   eUR-                  5       nS UR.                  S '   U R1                  X1US!9  g )"Nz
US/Easternabcr,      r.      u1g      @g      @float64dtypeg      ?TFTTFr0   )periods)freq)rD   tz20130103ns)rD   rE   )stringintuintfloatfloat_with_nullboolbool_with_nullcatdtdttzdt_with_nulldtns2013M)rE   rD   rD   z1 day
timedeltasr   	intervals)r,   rO   )r#   )zoneinfoZoneInfor1   	DataFramelistranger4   arangeastypenanCategoricalDatetimeIndex
date_ranger3   NaTperiod_rangetimedelta_rangeinterval_rangerR   rB   rF   keyr!   locr'   )r   r   rF   r   r#   s        r   
test_basicTestFeather.test_basicD   s   |,\\u+E!QK(		!Q..t439=$'#3+#'"7~~d5k2&&z1=>T ((z1DE
 LL,FFLL,!
 ((z14HIPT+
6 S!D9--gqA<++Aq!4;ww}}##|333779,0()bh?r)   c                     [         R                  " [        R                  " S5      R	                  SS5      [        S5      S9R                  5       nU R                  X!5        g )N   r=   r.   aaacolumns)r1   r[   r4   r^   reshaper\   r!   r   r   r   r   s      r   test_duplicate_columns"TestFeather.test_duplicate_columnsk   sD     \\"))B-//15tE{KPPR**29r)   c                     [         R                  " [        S5      [        [        SS5      5      [        S5      [        [        SS5      5      S.5      nSS/nU R	                  X!X#   US	9  g )
Nr<   r,   r=   xyz   )col1col2col3col4rx   rz   )r#   rp   )r1   r[   r\   r]   r'   )r   r   r   rp   s       r   test_read_columnsTestFeather.test_read_columnsq   sb    \\UU1a[)UU1a[)	
 6"bbk7Sr)   c                 x    [         R                  " SS/SS/SS/S.5      nUSS	/   nU R                  X!USS	/S
9  g )Nr,   r-   xyTF)ABCr   r   ro   )r1   r[   r'   )r   r   r   r#   s       r   !test_read_columns_different_order-TestFeather.test_read_columns_different_order~   sI    \\Ac3ZtUmLMsCj>bXSzJr)   c                 Z    [         R                  " S/ SQ05      nU R                  X!5        g )Na)r   r,          @)r1   r[   r   rr   s      r   test_unsupported_other"TestFeather.test_unsupported_other   s#    \\3./**29r)   c                     [         R                  " S[        R                  " S5      05      nU R	                  X!SS9  U R	                  X!SS9  g )Nr   i T)use_threadsF)r1   r[   r4   r^   r'   rr   s      r   test_rw_use_threadsTestFeather.test_rw_use_threads   sD    \\3		& 123b>b?r)   c                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9R                  5       n[        R                  " UR                  [        U5      n[        R                  " X45        g s  snf )N皙?x      r=   ABCDr   i-rp   index)r1   r[   r4   r^   rq   Indexr\   r]   reset_indexr   round_trip_pathlibr   r   r"   )r   r   ir   r&   s        r   test_path_pathlibTestFeather.test_path_pathlib   s    \\"))C.((11HHT&\*((eBi8ibHi89
 +-	 	
 &&r}}lIN
b) 9s   3Cc                 b   [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9R                  5       nU R                  X1SS	0S
9  g s  snf )Nr   r   r   r   r   r   r   versionr,   )r$   )
r1   r[   r4   r^   rq   r   r\   r]   r   r'   )r   r   r   r   s       r   test_passthrough_keywords%TestFeather.test_passthrough_keywords   s    \\"))C.((11HHT&\*((eBi8ibHi89
 +-	 	
 	b9a.I 9s   3B,c                     [        U5      n[        US5       nUR                  UR                  5       S9  [        UR                  5      nS S S 5        [
        R                  " UW5        g ! , (       d  f       N&= f)Nrb)content)r   openserve_contentreadurlr   r"   )r   feather_file
httpserverr#   fress         r   test_http_pathTestFeather.test_http_path   s_      -,%$$QVVX$6z~~.C & 	h, &%s   3A++
A9c                    [         R                  " [         R                  " S[         R                  S/SS9[         R                  " / SQSS9[         R                  " S[         R                  S/SS9[         R                  " / S	QSS9/ S
Q/ SQ/ SQ/ SQS.5      n[	        XT5        [         R
                  " SU5         [        XBS9nS S S 5        US:X  ag  [        R                  " S5      nU(       a%  [         R                  " UR                  5       5      nO;[         R                  " UR                  5       5      nO[         R                  " U5      n[         R                  " [         R                  " S[         R                  S/SS9[         R                  " / SQSS9[         R                  " S[         R                  S/SS9[         R                  " / S	QSS9[         R                  " SS[         R                  /SS9[         R                  " / SQSS9[         R                  " / SQUS9[         R                  " / SQUS9S.5      n	US:X  aM  SSKJn
  [         R                  " U	R                   Vs0 s H  nX" WR!                  X   SS95      _M     sn5      n	U(       aA  U	R                  R#                  [         R                  " U[$        R&                  S95      U	l        [(        R*                  " WU	5        g ! , (       d  f       GN9= fs  snf )Nr,   r.   Int64rA   r+         ?      @Float64)r   r   r   )TFNrC   )r   bc)r   r   N)r   r   r   der   ghzmode.string_storagedtype_backendr   TFbooleanr   )ArrowExtensionArray)from_pandasna_value)r1   r[   r2   NAr   option_contextr   r   importorskip
ArrowDtypelarge_stringrI   StringDtypepandas.arraysr   rp   r5   r_   r4   r`   r   r"   )r   string_storager   using_infer_stringr   r   r&   pastring_dtyper#   r   cols               r   test_read_feather_dtype_backend+TestFeather.test_read_feather_dtype_backend   s>    \\YY255!}G<YYy8YYRUUC0	BYYi@(($%	
 	2!4nE!)IF F I%$$Y/B!!}}R__->?!}}RYY[9>>.9L<<YY255!}G<YYy8YYRUUC0	BYYi@YYeRUU39EYY2)DYYlCYY/|D	
 I%9||  (/// ,RXXhmQUX-VWW/H '//66~? H 	fh/O FE:s   <
K8/"L
8
Lc                     [         R                  " S/ SQ0[         R                  " / SQSS9S9nU R                  X!5        g )Nr   r+   )r.   r=      test)name)r   )r1   r[   r   r'   rr   s      r   test_int_columns_and_index&TestFeather.test_int_columns_and_index   s0    \\3	*"((962RSb,r)   c           	          Sn[         R                  " S[        [        SS5      5      05      nUR	                  U5        [
        R                  " [        US9   [        USS9  S S S 5        g ! , (       d  f       g = f)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rJ   r,   r=   r   numpyr   )	r1   r[   r\   r]   r   r   r   r6   r   )r   r   r7   r   s       r   test_invalid_dtype_backend&TestFeather.test_invalid_dtype_backend   s\    % 	 \\5$uQ{"345
i ]]:S1': 211s   A,,
A:c           	      >   [         R                  " SSS/0S9nUR                  U5        [         R                  " SS5         [	        U5      nS S S 5        [         R
                  " [        R                  S9n[         R                  " SSS/0[         R
                  " [        R                  S9S9n[         R                  " SSS/0U[         R                  " S/[        (       a  U(       d  [        OUS	9S
9n[        R                  " WU5        g ! , (       d  f       N= f)Nr   r   r   )datafuture.infer_stringTr   r   rB   rA   )r   rB   rp   )r1   r[   r   r   r   r   r4   r`   r   r   objectr   r"   )r   r   r   r   r&   rB   r#   s          r   test_string_inference!TestFeather.test_string_inference   s    \\c3Z01
i 4d;!),F </<<Sz"".."&&*I
 <<Sz"HH''0B 		
 	fh/! <;s   D
Dznot supported before 18.0)reasonc                    SS K nSSK Jn  UR                  SUR                  / SQUR	                  5       5      05      nUR                  XA5        [        R                  " SS5         [        U5      n[        R                  " S/ SQ0[        R                  " [        R                  S9S9nS S S 5        [        R                  " WW5        g ! , (       d  f       N&= f)	Nr   )featherr   )Nr   r   r   Tr   r   )r   r   tabler5   string_viewwrite_featherr1   r   r   r[   r   r4   r`   r   r"   )r   r   r   r   r   r&   r#   s          r   &test_string_inference_string_view_type2TestFeather.test_string_inference_string_view_type  s     	##rxx(8"..:JKLMe/4d;!),F||+,BNNBFF4SH < 	fh/ <;s   &AC
Cc                     [         R                  " S[        R                  " S5      [        R                  " S5      /05      nU R	                  X!5        g )Ndatez
1654-01-01z
1920-01-01)r1   r[   r   fromisoformatr'   rr   s      r   &test_out_of_bounds_datetime_to_feather2TestFeather.test_out_of_bounds_datetime_to_feather  sI    \\**<8**<8
 	b,r)    )NN)__name__
__module____qualname____firstlineno__r   r   r'   r9   rj   rs   r|   r   r   r   r   r   r   marknetwork
single_cpur   r   r   r   r   skipifr   r   r   __static_attributes__r   r)   r   r
   r
      s    && :>0	G%@N:TK:
@
*J [[[[-  -90v-;0, [[,5PQ0 R0 
-r)   r
   )__doc__r   rY   r   r4   r   pandas.compat.pyarrowr   r   pandasr1   pandas._testing_testingr   pandas.io.feather_formatr   r   r   filterwarnings
pytestmarkr   r   r   r
   r   r)   r   <module>r      ss         
   =[[''C

 # G- G- G-r)   