
    Owg$                         d Z ddlZddlZddlZddlmZ ddl	m
Z
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)ArrowStringArrayStringArray)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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        S/var/www/horilla/myenv/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_error2   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_columnsc   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_columnsi   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_orderv   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              t        j
                  t        d      D cg c]  }d| 	 c}t                    j                         }t        j                  |j                  t              }t        j                  ||       y c c}w 	N皙?x      r8   ABCDr<   r   i-ri   index)r,   rT   r/   rW   rj   IndexrU   objectrV   reset_indexr   round_trip_pathlibr   r   r   r   ir   r#   s       r   test_path_pathlibzTestFeather.test_path_pathlib   s    \\"))C.((11HHT&\8((eBi8bH8G
 +-	 	
 &&r}}lC
b&) 9   5Cc                    t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d      t              t        j
                  t        d      D cg c]  }d| 	 c}t                    j                         }t        j                  |j                  t              }t        j                  ||       y c c}w r   )r,   rT   r/   rW   rj   r   rU   r   rV   r   r   round_trip_localpathr   r   r   r   s       r   test_path_localpathzTestFeather.test_path_localpath   s    \\"))C.((11HHT&\8((eBi8bH8G
 +-	 	
 ((E
b&) 9r   c                 x   t        j                  dt        j                  d      j	                  d      z  t        j
                  t        d      t              t        j
                  t        d      D cg c]  }d| 	 c}t                    j                         }| j                  |d	d
i       y c c}w )Nr   r   r   r   r<   r   r   r   versionr'   )r!   )r,   rT   r/   rW   rj   r   rU   r   rV   r   r$   )r   r   r   s      r   test_passthrough_keywordsz%TestFeather.test_passthrough_keywords   s    \\"))C.((11HHT&\8((eBi8bH8G
 +-	 	
 	b	1~> 9s   5B7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      }|dk(  rpt        t        j                  g dt        j                              }t        t        j                  ddt         j                  gt        j                              }n|dk(  rAddl	m
}  |t        j                  g d            } |t        j                  g d            }n@t        t        j                  g d            }t        t        j                  g d            }t        j                         5 }t        ||       t        j                   d|      5  t#        ||      }d d d        d d d        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      ||d      }	|dk(  rRddl	m
} t        j                  |	j$                  D 
ci c]#  }
|
 |t        j                  |	|
   d            % c}
      }	t        j&                  |	       y # 1 sw Y   UxY w# 1 sw Y   Zx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hpythonr}   r   r   r   )ArrowExtensionArrayzmode.string_storagedtype_backendTFboolean)from_pandas)r,   rT   r-   r/   rY   r   r0   object_NApandas.arraysr   par   r   r   r   option_contextr   ri   r   )r   string_storager   r   string_arraystring_array_nar   r   r#   r    cols              r   test_read_feather_dtype_backendz+TestFeather.test_read_feather_dtype_backend   sq   \\YY2661~W=YYy8YYRVVS1CYYi@(($%	
 X%&rxxrzz'RSL)"((Cbee3DBJJ*WXOi'9.rxx/HIL1"((;K2LMO ,BHH_,EFL.rxx8H/IJO__ 	I$r4 ""#8.I I%d-HI	I
 <<YY2661~W=YYy8YYRVVS1CYYi@YYeRUU39EYY2)D!$	
 I%9||  (// ,RXXhsmQUX-VWWH 	fh/5I I	I 	I,s*   0#ML4!M.(M4L>	9MM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                 2   |dz  }t        j                  dddgi      }|j                  |       t        j                  dd      5  t	        |      }d d d        t        j                  dddgid	      }t        j                  |       y # 1 sw Y   ;xY w)
Nztest_string_inference.pr}   rv   rw   )datazfuture.infer_stringTzstring[pyarrow_numpy])r   r=   )r,   rT   r   r   r   r   r   )r   tmp_pathr   r   r#   r    s         r   test_string_inferencez!TestFeather.test_string_inference   s    33\\c3Z01
d4d; 	(!$'F	(<<cC:%6>UV
fh/	( 	(s   BB)__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    r5   r   r	   r	      s    %% -1r 	4	<$5L/I@/
5
**? [[[[-  -90v"	:0r5   r	   )__doc__r   r/   r   pandasr,   pandas._testing_testingr   pandas.core.arraysr   r   pandas.io.feather_formatr   r   r   filterwarnings
pytestmarkimportorskipr   r   r	   r   r5   r   <module>r      so    "    
 >[[''C
 V# f0 f0 f0r5   