
    Pio(                         d Z ddlmZ ddl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                            d          Z ej        d          Zej        j         G d d	                      ZdS )
ztest feather-format compat    )datetimeN)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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                            ed          d             Zd ZdS )TestFeatherc                     t          j        ||          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nmatch)pytestraisesr   )selfdfexcerr_msg	temp_files        p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/test_feather.pycheck_error_on_writez TestFeather.check_error_on_write   s     ]3g... 	& 	&r9%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   599c                     t          j        t                    5  t          ||           d d d            d S # 1 swxY w Y   d S N)tmexternal_error_raised	Exceptionr   )r   r   r   s      r   check_external_error_on_writez)TestFeather.check_external_error_on_write$   s     %i00 	& 	&r9%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   8<<Nc                     |i }||                                 }t          ||fi | t          |fi |}t          j        ||           d S r   )copyr   r   r   assert_frame_equal)r   r   r   expectedwrite_kwargsread_kwargsresults          r   check_round_tripzTestFeather.check_round_trip+   sh     LwwyyH2y11L111i77;77
fh/////    c                     d}t          j        g d          ddt          j        d          t          j        g d          fD ]}|                     |t          ||            d S )Nz'feather only support IO with DataFrames         r(   foo20130101)pdSeries	Timestampnparrayr   
ValueError)r   r   msgobjs       r   
test_errorzTestFeather.test_error9   sz    7Iiii  L$$HYYY
 	G 	GC %%c:sIFFFF	G 	Gr%   c                    t          j        d          }t          j        t	          d          t	          t          dd                    t          j        dd                              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           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 |                                }d |j        d <   |                     |||!           d S )"Nz
US/Easternabcr(      r*      u1g      @g      @float64dtypeg      ?TFTTFr,   )periods)freq)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    )zoneinfoZoneInfor-   	DataFramelistranger0   arangeastypenanCategoricalDatetimeIndex
date_ranger/   NaTperiod_rangetimedelta_rangeinterval_rangerM   r=   rA   keyr   locr$   )r   r   rA   r   r    s        r   
test_basiczTestFeather.test_basicD   s   |,,\u++E!QKK((	!Q..t4439===$'#3+++#'"7~d5kk22&z1===>>T   (z1DDDEE  
 L,,FL,,!
 (z14HHHIIPT  + 
 
6 S!DDD9-gqAAA<+Aq!44;w}#|33337799,0()b)h?????r%   c                     t          j        t          j        d                              dd          t          d                                                    }|                     ||           d S )N   r8   r*   aaacolumns)r-   rV   r0   rY   reshaperW   r   r   r   r   r   s      r   test_duplicate_columnsz"TestFeather.test_duplicate_columnsk   s^     \")B--//155tE{{KKKPPRR**2y99999r%   c                    t          j        t          d          t          t          dd                    t          d          t          t          dd                    d          }ddg}|                     ||||         |	           d S )
Nr7   r(   r8   xyz   )col1col2col3col4rq   rs   )r    rj   )r-   rV   rW   rX   r$   )r   r   r   rj   s       r   test_read_columnszTestFeather.test_read_columnsq   s    \UU1a[[))UU1a[[))	 
 
 6"b)bk7SSSSSr%   c                     t          j        ddgddgddgd          }|dd	g         }|                     |||dd	g
           d S )Nr(   r)   xyTF)ABCrz   ry   ri   )r-   rV   r$   )r   r   r   r    s       r   !test_read_columns_different_orderz-TestFeather.test_read_columns_different_order~   s[    \Ac3ZtUmLLMMsCj>b)XSzJJJJJr%   c                 b    t          j        dg di          }|                     ||           d S )Na)r~   r(          @)r-   rV   r   rl   s      r   test_unsupported_otherz"TestFeather.test_unsupported_other   s6    \3.//**2y99999r%   c                     t          j        dt          j        d          i          }|                     ||d           |                     ||d           d S )Nry   i T)use_threadsF)r-   rV   r0   rY   r$   rl   s      r   test_rw_use_threadszTestFeather.test_rw_use_threads   s\    \3	& 1 1233b)>>>b)?????r%   c           
         t          j        dt          j        d                              d          z  t          j        t          d                    t          j        d t          d          D                                                                 }t          j
        |j        t          |          }t          j        ||           d S )N皙?x      r8   ABCDc                     g | ]}d | S zi- .0is     r   
<listcomp>z1TestFeather.test_path_pathlib.<locals>.<listcomp>       888HHH888r%   r   rj   index)r-   rV   r0   rY   rk   IndexrW   rX   reset_indexr   round_trip_pathlibr   r   r   )r   r   r   r#   s       r   test_path_pathlibzTestFeather.test_path_pathlib   s    \")C..((111HT&\\**(88eBii88899
 
 
 +--	 	
 &r}lINN
b&)))))r%   c           
      l   t          j        dt          j        d                              d          z  t          j        t          d                    t          j        d t          d          D                                                                 }| 	                    ||dd	i
           d S )Nr   r   r   r   c                     g | ]}d | S r   r   r   s     r   r   z9TestFeather.test_passthrough_keywords.<locals>.<listcomp>   r   r%   r   r   versionr(   )r!   )
r-   rV   r0   rY   rk   r   rW   rX   r   r$   rl   s      r   test_passthrough_keywordsz%TestFeather.test_passthrough_keywords   s    \")C..((111HT&\\**(88eBii88899
 
 
 +--	 	
 	b)9a.IIIIIr%   c                    t          |          }t          |d          5 }|                    |                                           t          |j                  }d d d            n# 1 swxY w Y   t          j        ||           d S )Nrb)content)r   openserve_contentreadurlr   r   )r   feather_file
httpserverr    fress         r   test_http_pathzTestFeather.test_http_path   s      --,%% 	/$$QVVXX$666z~..C	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	h,,,,,s   =A))A-0A-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	          ||           t          j        d|          5  t          ||          }d d d            n# 1 swxY w Y   |dk    rdt          j        d          
|r't          j	        

                                          }n;t          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    r-ddlm t          j        	
fd	j        D                       	|r=	j                            t          j        |t"          j                            	_        t'          j        |	           d S )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   )ArrowExtensionArrayc           	      ^    i | ])}|                      |         d                     *S )T)from_pandas)r1   )r   colr   r    pas     r   
<dictcomp>z?TestFeather.test_read_feather_dtype_backend.<locals>.<dictcomp>   sL        ,,RXXhsmQUX-V-VWW  r%   na_value)r-   rV   r.   NAr   option_contextr   r   importorskip
ArrowDtypelarge_stringrD   StringDtypepandas.arraysr   rj   rZ   r0   r[   r   r   )r   string_storager   using_infer_stringr   r   r#   string_dtyper   r    r   s           @@@r   test_read_feather_dtype_backendz+TestFeather.test_read_feather_dtype_backend   sA    \Y25!}G<<<Yyyy888YRUC0	BBBYi@@@(((((($__%%%	 	
 
 	2y!!!4nEE 	J 	J!)=IIIF	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J I%%$Y//B! :!}R__->->??!}RYY[[99>.99L<Y25!}G<<<Yyyy888YRUC0	BBBYi@@@YeRU39EEEY222)DDDYlCCCY///|DDD	 	
 
 I%%999999|     '/   H  	'/66~???   H 	fh/////s   <CC!Cc                     t          j        dg dit          j        g dd                    }|                     ||           d S )Nr~   r'   )r*   r8      test)name)r   )r-   rV   r   r$   rl   s      r   test_int_columns_and_indexz&TestFeather.test_int_columns_and_index   sN    \3			*"(99962R2R2RSSSb),,,,,r%   c           	          d}t          j        dt          t          dd                    i          }|                    |           t          j        t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rE   r(   r8   r   numpyr   )	r-   rV   rW   rX   r   r   r   r2   r   )r   r   r3   r   s       r   test_invalid_dtype_backendz&TestFeather.test_invalid_dtype_backend   s    % 	 \5$uQ{{"3"3455
i   ]:S111 	; 	;'::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   $BB
Bc                 0   t          j        dddgi          }|                    |           t          j        dd          5  t	          |          }d d d            n# 1 swxY w Y   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        ||           d S )Nr~   rw   rx   )datafuture.infer_stringTr   r   r=   r<   )r   r=   rj   )r-   rV   r   r   r   r   r0   r[   r   r   objectr   r   )r   r   r   r   r#   r=   r    s          r   test_string_inferencez!TestFeather.test_string_inference   s^   \c3Z0111
i   4d;; 	- 	-!),,F	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-///<Sz""."&*I*I*I
 
 
 <Sz"H'0Bff	  	
 	
 	
 	fh/////s   A  A$'A$znot supported before 18.0)reasonc                    dd l }ddl m} |                    d|                    g d|                                          i          }|                    ||           t          j        dd          5  t          |          }t          j	        dg dit          j
        t          j                            }d d d            n# 1 swxY w Y   t          j        ||           d S )	Nr   )featherr~   )Nr   r   r   Tr   r   )r   r   tabler1   string_viewwrite_featherr-   r   r   rV   r   r0   r[   r   r   )r   r   r   r   r   r#   r    s          r   &test_string_inference_string_view_typez2TestFeather.test_string_inference_string_view_type  s4    	#######rxx(8(8(8"..:J:JKKLMMeY///4d;; 	 	!),,F|+++,BNBF4S4S4S  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fh/////s   5ACCCc                     t          j        dt          j        d          t          j        d          gi          }|                     ||           d S )Ndatez
1654-01-01z
1920-01-01)r-   rV   r   fromisoformatr$   rl   s      r   &test_out_of_bounds_datetime_to_featherz2TestFeather.test_out_of_bounds_datetime_to_feather  sZ    \*<88*<88
 
 	b),,,,,r%   )NN)__name__
__module____qualname__r   r   r$   r5   re   rm   ru   r|   r   r   r   r   r   marknetwork
single_cpur   r   r   r   r   skipifr   r   r   r   r%   r   r
   r
      s       & & && & & :>0 0 0 0	G 	G 	G%@ %@ %@N: : :T T TK K K: : :
@ @ @
* * *J J J [[- -  -90 90 90v- - -; ; ;0 0 0, [,5PQQ0 0 RQ0 
- 
- 
- 
- 
-r%   r
   )__doc__r   rT   r   r0   r   pandas.compat.pyarrowr   r   pandasr-   pandas._testing_testingr   pandas.io.feather_formatr   r   r   filterwarnings
pytestmarkr   r   r   r
   r   r%   r   <module>r      s                         
           = = = = = = = =[''C 

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