
    Oh'                         d Z ddlZddlZddlmZmZ ddlZddl	m
Z ddlmZmZ ej                  j!                  d      Z ej$                  d      Zej                  j(                   G d d             Zy)	z test feather-format compat     N)pa_version_under18p0pa_version_under19p0)read_feather
to_featherz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrowc                   (   e Zd Zd Zd Zdi fdZd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zej"                  j$                  ej"                  j&                  d               Zd Zd Zd Zd Zej"                  j3                  ed      d        Zy)TestFeatherc                     t        j                  ||      5  t        j                         5 }t	        ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nmatch)pytestraisestmensure_cleanr   )selfdfexcerr_msgpaths        d/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/io/test_feather.pycheck_error_on_writez TestFeather.check_error_on_write   sW     ]]3g. 	%" %d2t$%	% 	%% %	% 	%s!   AAAA	AA c                     t        j                  t              5  t        j                         5 }t	        ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wN)r   external_error_raised	Exceptionr   r   )r   r   r   s      r   check_external_error_on_writez)TestFeather.check_external_error_on_write!   sW     %%i0 	%" %d2t$%	% 	%% %	% 	%s!   AAAA	AA"Nc                     ||j                         }t        j                         5 }t        ||fi | t	        |fi |}t        j
                  ||       d d d        y # 1 sw Y   y xY wr   )copyr   r   r   r   assert_frame_equal)r   r   expectedwrite_kwargsread_kwargsr   results          r   check_round_tripzTestFeather.check_round_trip)   sb    wwyH__ 	4$r40<0!$6+6F!!&(3	4 	4 	4s   0A  A)c                     d}t        j                  g d      ddt        j                  d      t        j                  g d      fD ]  }| j                  |t        |        y )Nz'feather only support IO with DataFrames         r'   foo20130101)pdSeries	Timestampnparrayr   
ValueError)r   msgobjs      r   
test_errorzTestFeather.test_error4   sV    7IIi LL$HHY
 	<C %%c:s;	<    c                 v   t        j                  t        d      t        t        dd            t	        j
                  dd      j                  d      t	        j
                  ddd	
      dt        j                  dgg ddt        j                  dgt        j                  t        d            t        j                  t        t        j                  dd            d       t        j                  t        t        j                  ddd            d       t        j                  d      t         j                  t        j                  d      gt        j                  t        t        j                  ddd            d       d      }t        j                  ddd      |d<   t        j                  dd      |d<   t        j                  ddd      |d<   |j                   j"                  j$                  j&                  dk(  sJ |j)                         }d |j*                  d <   | j-                  ||!       y )"Nabcr'      r)      u1g      @g      @float64dtypeg      ?TFTTFr+   )periods)freqz
US/Eastern)r?   tz20130103ns)r?   r@   )stringintuintfloatfloat_with_nullboolbool_with_nullcatdtdttzdt_with_nulldtns2013M)r@   r?   r?   z1 day
timedeltasr   	intervals)r'   rJ   )r    )r,   	DataFramelistranger/   arangeastypenanCategoricalDatetimeIndex
date_ranger.   NaTperiod_rangetimedelta_rangeinterval_rangerM   r=   rA   zoner   locr$   r   r   r    s      r   
test_basiczTestFeather.test_basic?   s   \\u+E!QK(		!Q..t439=$'#3+#'"7~~d5k2&&z1=>T ((z1NO
 LL,FFLL,!
 ((z14HIPT+
6 S!D9--gqA<++Aq!4;ww}}$$444779,0()b84r5   c                     t        j                  t        j                  d      j	                  dd      t        d            j                         }| j                  |       y )N   r8   r)   aaacolumns)r,   rT   r/   rW   reshaperU   r   r   r   r   s     r   test_duplicate_columnsz"TestFeather.test_duplicate_columnse   sD     \\"))B-//15tE{KPPR**2.r5   c                     t        j                  t        d      t        t        dd            t        d      t        t        dd            d      }ddg}| j	                  |||   |	       y )
Nr7   r'   r8   xyz   )col1col2col3col4rp   rr   )r    ri   )r,   rT   rU   rV   r$   )r   r   ri   s      r   test_read_columnszTestFeather.test_read_columnsk   sd    \\UU1a[)UU1a[)	
 6"b2g;Hr5   c                 |    t        j                  ddgddgddgd      }|dd	g   }| j                  ||dd	g
       y )Nr'   r(   xyTF)ABCry   rx   rh   )r,   rT   r$   rc   s      r   !test_read_columns_different_orderz-TestFeather.test_read_columns_different_orderx   sI    \\Ac3ZtUmLMsCj>b(S#J?r5   c                 X    t        j                  dg di      }| j                  |       y )Na)r}   r'          @)r,   rT   r   rk   s     r   test_unsupported_otherz"TestFeather.test_unsupported_other~   s#    \\3./**2.r5   c                     t        j                  dt        j                  d      i      }| j	                  |d       | j	                  |d       y )Nrx   i T)use_threadsF)r,   rT   r/   rW   r$   rk   s     r   test_rw_use_threadszTestFeather.test_rw_use_threads   sD    \\3		& 123bd3be4r5   c                    t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d            t        j
                  t        d      D cg c]  }d| 	 c}            j                         }t        j                  |j                  t              }t        j                  ||       y c c}w N皙?x      r8   ABCDr   i-ri   index)r,   rT   r/   rW   rj   IndexrU   rV   reset_indexr   round_trip_pathlibr   r   r   r   ir   r#   s       r   test_path_pathlibzTestFeather.test_path_pathlib   s    \\"))C.((11HHT&\*((eBi8bH89
 +-	 	
 &&r}}lC
b&) 9   /Cc                    t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d            t        j
                  t        d      D cg c]  }d| 	 c}            j                         }t        j                  |j                  t              }t        j                  ||       y c c}w r   )r,   rT   r/   rW   rj   r   rU   rV   r   r   round_trip_localpathr   r   r   r   s       r   test_path_localpathzTestFeather.test_path_localpath   s    \\"))C.((11HHT&\*((eBi8bH89
 +-	 	
 ((E
b&) 9r   c                 `   t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d            t        j
                  t        d      D cg c]  }d| 	 c}            j                         }| j                  |dd	i
       y c c}w )Nr   r   r   r   r   r   r   versionr'   )r!   )
r,   rT   r/   rW   rj   r   rU   rV   r   r$   )r   r   r   s      r   test_passthrough_keywordsz%TestFeather.test_passthrough_keywords   s    \\"))C.((11HHT&\*((eBi8bH89
 +-	 	
 	b	1~> 9s   /B+c                     t        |      }t        |d      5 }|j                  |j                                t        |j                        }d d d        t        j                  |       y # 1 sw Y    xY w)Nrb)content)r   openserve_contentreadurlr   r   )r   feather_file
httpserverr    fress         r   test_http_pathzTestFeather.test_http_path   sf      -,% 	/$$QVVX$6z~~.C	/ 	h,	/ 	/s   6A--A6c                    t        j                  t        j                  dt        j                  dgd      t        j                  g dd      t        j                  dt        j                  dgd      t        j                  g d	d      g d
g dg dg dd      }t        j                         5 }t        ||       t        j                  d|      5  t        ||      }d d d        d d d        |dk(  r_t        j                  d      }|r$t        j                  |j                               }n9t        j                  |j                               }nt        j                  |      }t        j                  t        j                  dt        j                  dgd      t        j                  g dd      t        j                  dt        j                  dgd      t        j                  g d	d      t        j                  ddt         j                   gd      t        j                  g dd      t        j                  g d|      t        j                  g d|      d      }	|dk(  rNddlm}
 t        j                  |	j&                  D ci c]  }| |
j)                  |	|   d            ! c}      }	|rC|	j&                  j+                  t        j                  |t        j                              |	_        t        j,                  |	       y # 1 sw Y   =xY w# 1 sw Y   BxY wc c}w )Nr'   r)   Int64r<   r&         ?      @Float64)r   r~   r   )TFNr>   )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)r,   rT   r-   r/   rY   r   r   r   option_contextr   r   importorskip
ArrowDtypelarge_stringrD   StringDtypeNApandas.arraysr   ri   r0   rX   r   )r   string_storager   using_infer_stringr   r   r#   pastring_dtyper    r   cols               r   test_read_feather_dtype_backendz+TestFeather.test_read_feather_dtype_backend   sm    \\YY2661~W=YYy8YYRVVS1CYYi@(($%	
 __ 	I$r4 ""#8.I I%d-HI	I
 I%$$Y/B!!}}R__->?!}}RYY[9>>.9L<<YY2661~W=YYy8YYRVVS1CYYi@YYeRUU39EYY2)DYYlCYY/|D	
 I%9||  (// ,RXXhsmQUX-VWWH '//66~? H 	fh/OI I	I 	I>s*   5#L.L!&L.$L;!L+	&L..L8c                     t        j                  dg dit        j                  g dd            }| j                  |       y )Nr}   r&   )r)   r8      test)name)r   )r,   rT   r   r$   rk   s     r   test_int_columns_and_indexz&TestFeather.test_int_columns_and_index   s0    \\3	*"((962RSb!r5   c           	      L   d}t        j                  dt        t        dd            i      }t	        j
                  d      5 }|j                  |       t        j                  t        |      5  t        |d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rE   r'   r8   ztmp.featherr   numpyr   )r,   rT   rU   rV   r   r   r   r   r   r1   r   )r   r2   r   r   s       r   test_invalid_dtype_backendz&TestFeather.test_invalid_dtype_backend   s    % 	 \\5$uQ{"345__]+ 	:tMM$z5 :T9:	: 	:: :	: 	:s$   -B/B=BB	BB#c                 >   |dz  }t        j                  dddgi      }|j                  |       t        j                  dd      5  t	        |      }d d d        t        j
                  t        j                        }t        j                  dddgit        j
                  t        j                        	      }t        j                  dddgi|t        j                  dgt        r|st        n|
            }t        j                  |       y # 1 sw Y   xY w)Nztest_string_inference.pr}   rv   rw   )datafuture.infer_stringTr   r   r=   r<   )r   r=   ri   )r,   rT   r   r   r   r   r/   rY   r   r   objectr   r   )r   tmp_pathr   r   r   r#   r=   r    s           r   test_string_inferencez!TestFeather.test_string_inference   s    33\\c3Z01
d4d; 	(!$'F	(/<<Sz"".."&&*I
 <<Sz"HH'0B 		
 	fh/!	( 	(s   DDznot supported before 18.0)reasonc                    dd l }ddl m} |dz  }|j                  d|j                  g d|j	                               i      }|j                  ||       t        j                  dd      5  t        |      }t        j                  dg dit        j                  t        j                        	      }d d d        t        j                         y # 1 sw Y    xY w)
Nr   )featherzstring_view.parquetr}   )Nr   r   r   Tr   r   )r   r   tabler0   string_viewwrite_featherr,   r   r   rT   r   r/   rY   r   r   )r   r   r   r   r   r   r#   r    s           r   &test_string_inference_string_view_typez2TestFeather.test_string_inference_string_view_type  s     	#//#rxx(8"..:JKLMeT*4d; 	!$'F||+,BNNBFF4SH	 	fh/	 	s   +A	CC)__name__
__module____qualname__r   r   r$   r4   rd   rl   rt   r{   r   r   r   r   r   r   marknetwork
single_cpur   r   r   r   r   skipifr   r    r5   r   r	   r	      s    %% -1r 	4	<$5L/I@/
5
**? [[[[-  -:0x"	:0. [[,5PQ0 R0r5   r	   )__doc__r   r/   r   pandas.compat.pyarrowr   r   pandasr,   pandas._testing_testingr   pandas.io.feather_formatr   r   r   filterwarnings
pytestmarkr   r   r   r	   r   r5   r   <module>r      so    "  
   =[[''C

 V# F0 F0 F0r5   