
    .il6                     $   d Z ddlZddlmZ ddlmZ ddlZddlZddl	Z	ddl
Zddl
mZ ddlmZ  e	j                   d       ddlZe	j&                  j)                  d      Ze	j,                  d        Zd	 Zd
 Zd Zd Zd Zd Zd Zd Ze	j&                  jA                  d ejB                  ddgd       ejD                  g dd       ejF                  dd       ejF                  dd      g ejH                  dd       ejH                  dd      gg      d        Z%d  Z&d! Z'd" Z(e	j&                  jA                  d# ejR                  ddd$       ejR                  dd%dd&'       ejT                  g d(      g      d)        Z+d* Z,d+ Z-y),ztest orc compat    N)Decimal)BytesIO)read_orczpyarrow.orcz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                      | ddd      S )Niodataorc )datapaths    V/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/test_orc.pydirpathr      s    D&%((    c           	         g d}dddddddd	|rd
nd	g	}t        j                  t        j                  d            }t        ||d      D ]  \  }}t        j                  |      ||<     |j
                  j                  d
      |_        t        j                  j                  | d      }t        ||      }t        j                  ||       y )N	boolean1byte1short1int1long1float1double1bytes1string1boolint8int16int32int64float32float64objectstrr   indexT)strictdtypezTestOrcFile.emptyFile.orccolumns)pd	DataFrame
RangeIndexzipSeriesr)   astypeospathjoinr   tmassert_equal)	r   using_infer_stringr)   dtypesexpectedcolnamer'   	inputfilegots	            r   test_orc_reader_emptyr;      s    
G 	#
F ||"--"23Hgvd; 3IIE23''..u5HW&ABI
9g
.COOHc"r   c                    t        j                  ddgd      t        j                  ddgd      t        j                  dd	gd
      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      d	}t        j                  j	                  |      }t
        j                  j                  | d      }t        ||j                               }t        j                  ||       y )NFTr   r&      d   r         r      r       r         ?       @r         .      r        r   r!   hibyer   zTestOrcFile.test1.orcr(   )nparrayr*   r+   	from_dictr0   r1   r2   r   keysr3   r4   r   r   r7   r9   r:   s        r   test_orc_reader_basicrO   ?   s    HHeT]&91c(&1((D$<w7%w7.0CDGT((C:Y788UDM;((3S9J88T5M:
D ||%%d+HW&=>I
9diik
2COOHc"r   c                    dt        j                  t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d	      t        d
      t        d      g
d      i}t        j                  j                  |      }t        j                  j                  | d      }t        |      j                  d d }t        j                  ||       y )N_col0z-1000.50000z
-999.60000z
-998.70000z
-997.80000z
-996.90000z
-995.10000z
-994.11000z
-993.12000z
-992.13000z
-991.14000r!   r&   zTestOrcFile.decimal.orc
   )rJ   rK   r   r*   r+   rL   r0   r1   r2   r   ilocr3   r4   rN   s        r   test_orc_reader_decimalrT   S   s     	&%%%%%%%%% 
D" ||%%d+HW&?@I
9

"
"3B
'COOHc"r   c                    t        j                  g dd      t        j                  t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      g
d      d}t        j
                  j                  |      }t        j                  j                  | d	      }t        |      j                  d d
 }t        j                  ||       y )N)
z1900-05-05 12:34:56.100000z1900-05-05 12:34:56.100100z1900-05-05 12:34:56.100200z1900-05-05 12:34:56.100300z1900-05-05 12:34:56.100400z1900-05-05 12:34:56.100500z1900-05-05 12:34:56.100600z1900-05-05 12:34:56.100700z1900-05-05 12:34:56.100800z1900-05-05 12:34:56.100900datetime64[ns]r&   il        r!   timedatezTestOrcFile.testDate1900.orcrR   rJ   rK   datetimer[   r*   r+   rL   r0   r1   r2   r   rS   r3   r4   rN   s        r   test_orc_reader_date_lowr^   n   (    #
 dB+dB+dB+dB+dB+dB+dB+dB+dB+dB+ 
!D@ ||%%d+HW&DEI
9

"
"3B
'COOHc"r   c                    t        j                  g dd      t        j                  t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j                  ddd      g
d      d}t        j
                  j                  |      }t        j                  j                  | d	      }t        |      j                  d d
 }t        j                  ||       y )N)
z2038-05-05 12:34:56.100000z2038-05-05 12:34:56.100100z2038-05-05 12:34:56.100200z2038-05-05 12:34:56.100300z2038-05-05 12:34:56.100400z2038-05-05 12:34:56.100500z2038-05-05 12:34:56.100600z2038-05-05 12:34:56.100700z2038-05-05 12:34:56.100800z2038-05-05 12:34:56.100900rV   r&   i  rW   rX   r!   rY   zTestOrcFile.testDate2038.orcrR   r\   rN   s        r   test_orc_reader_date_highra      r_   r   c                 D   t        j                  g dd      t        j                  g dd      d}t        j                  j	                  |      }t
        j                  j                  | d      }t        |      j                  d d }t        j                  ||       y )	N)
iEAںijFiA!{i~iY5B
irhi;Sinqi:i(r   r&   )
f50dcb8382fdaaa90758c69e8caf3fee97332bd634da12bea4396d67d89e8ad71007ee8c82066r!   )r   r   zTestOrcFile.testSnappy.orcrR   )rJ   rK   r*   r+   rL   r0   r1   r2   r   rS   r3   r4   rN   s        r   !test_orc_reader_snappy_compressedrm      s     
 88 
!D@ ||%%d+HW&BCI
9

"
"3B
'COOHc"r   c                    t        j                  d       t        j                  ddgd      t        j                  ddgd      t        j                  d	d
gd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      d	}t        j
                  j                  |      }|j                  |       t        |      }t        j                  ||       y NpyarrowFTr   r&   r=   r>   r   r?   r@   r   rA   r   rB   r   rC   rD   r   rE   rF   r    rG   r   r!   rH   rI   r   )pytestimportorskiprJ   rK   r*   r+   rL   to_orcr   r3   r4   )r   	temp_filer   r7   r:   s        r   test_orc_roundtrip_fileru      s     	" HHeT]&91c(&1((D$<w7%w7.0CDGT((C:Y788UDM;((3S9J88T5M:
D ||%%d+HOOI
9
COOHc"r   c                     t        j                  d       t        j                  ddgd      t        j                  ddgd      t        j                  d	d
gd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      d	} t        j
                  j                  |       }|j                         }t        t        |            }t        j                  ||       y ro   )rq   rr   rJ   rK   r*   r+   rL   rs   r   r   r3   r4   )r   r7   bytesr:   s       r   test_orc_roundtrip_bytesiorx     s     	" HHeT]&91c(&1((D$<w7%w7.0CDGT((C:Y788UDM;((3S9J88T5M:
D ||%%d+HOOE
75>
"COOHc"r   orc_writer_dtypes_not_supportedr=      uint64r&   )abr|   category   )leftright   z
2022-01-03D)freqz
2022-01-04c                     t        j                  d       t        j                  d| i      }d}t        j                  t
        |      5  |j                          d d d        y # 1 sw Y   y xY w)Nrp   unimplz6The dtype of one or more columns is not supported yet.match)rq   rr   r*   r+   raisesNotImplementedErrorrs   )ry   dfmsgs      r   $test_orc_writer_dtypes_not_supportedr     sX     	"	x!@A	BB
BC	*#	6 
		  s   
A$$A-c                 0   t        j                  d       t        j                  t	        d      dt
        j                  dgg dg dt	        t        dd            t        j                  d	d
d      dt
        j                  dgg dg dt        j                  ddd      t        j                  d      t        j                  t        j                  d      gd      }|d   j                  d      |d<   |j                         j                         }t        t!        |      d      }t        j                  |j"                  D ci c]:  }|t        j$                  j'                  t)        j*                  ||   d            < c}      }| rlt        j,                  t)        j.                               }|d   j                  |      |d<   |d   j                  |      |d<   |d   j                  |      |d<   t1        j2                  ||       y c c}w )Nrp   abcr|   cr|   Nr   )s   foos   barNr=            @      @r    r&   rD         @TFTTFN20130101   ns)periodsunit20130103)stringstring_with_nanstring_with_nonerw   intfloatfloat_with_nanr   bool_with_nar]   datetime_with_natr   zM8[ns]dtype_backendT)from_pandasr   r   r   )rq   rr   r*   r+   listrJ   nanrangearange
date_range	TimestampNaTr/   copyrs   r   r   r)   arraysArrowExtensionArrayparK   
ArrowDtyper   r3   assert_frame_equal)r5   r   
bytes_dataresultcolr7   string_dtypes          r   test_orc_dtype_backend_pyarrowr   -  s   
	"	5k #RVVS1 0+a$YYsCy9"BFFC0'/j!$GZ(Z("	

B( !!45<<XFB!!#Jgj)CF|| zz	
 ..rxx3T/RSS	
H  }}RYY[1%h/66|D&./@&A&H&H&V"#'/0B'C'J'J<'X#$&(+	
s   ?Hc                     t        j                  d       t        j                  t	        d      dt
        j                  dgg dt	        t        dd            t        j                  dt        j                  dgd	
      t        j                  t        j                  t        j                  t        j                  gd	
      t        j                  ddd
      dt
        j                  dgg dg dd
      } | j                         j                         }t        t        |      d      }t        j                  t        j                  g dt        j                          
      t        j                  dt        j                  dgt        j                          
      t        j                  dt        j                  dgt        j                          
      t        j                  g dd	
      t        j                  dt        j                  dgd	
      t        j                  t        j                  t        j                  t        j                  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
      d
      }t#        j$                  ||       y )Nrp   r   r|   r   r   r=   r   r   Int64r&   r   r   r    rD   r   r   r   )
r   r   r   r   int_with_nanna_onlyr   r   r   r   numpy_nullabler   )r|   r}   r   r=   r   r   )r   g      @g      @Float64booleanTF)rq   rr   r*   r+   r   rJ   r   r   r.   NAr   r   rs   r   r   rK   StringDtyper3   r   )r   r   r   r7   s       r   %test_orc_dtype_backend_numpy_nullabler   Y  s   
	"	5k #RVVS1 0a$IIq"%%m7Cyy"%%!6gFYYsCy9"BFFC0'/	

B !!#Jgj)9IJF||hhbnn6FG!xxbeeS(9AQR "#ruuc):"..BR S99Yg6IIq"%%m7Cyy"%%!6gFYYi@ iibeeS(9KII1CIItUBEE&:)L	
H &(+r   c           	          t        j                  dt        t        dd            i      }|j	                  |        | j                         }t        |      }t        j                  ||       y )Nr   r=   r   )	r*   r+   r   r   rs   as_urir   r3   r   )rt   r7   urir   s       r   test_orc_uri_pathr     sS    ||UDq!$567HOOI



Cc]F&(+r   r$   )startstopstepr   znon-default)r   r   r   namer   c                     t        j                  dg di|       }d}t        j                  t        |      5  |j                          d d d        y # 1 sw Y   y xY w)Nr|   r   r#   z[orc does not support serializing a non-default index|orc does not serialize index meta-datar   )r*   r+   rq   r   
ValueErrorrs   )r$   r   r   s      r   test_to_orc_non_default_indexr     sQ     
sI&e	4B	1  
z	- 
		  s   AAc           	          d}t        j                  dt        t        dd            i      }|j	                  |        t        j                  t        |      5  t        | d       d d d        y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r   r=   r   r   numpyr   )	r*   r+   r   r   rs   rq   r   r   r   )rt   r   r   s      r   test_invalid_dtype_backendr     se    	!  
ud5A;/0	1BIIi	z	- 3'23 3 3s   A00A9c           
         t        j                  dddgi      }|j                  |        t        j                  dd      5  t	        |       }d d d        t        j                  dddgit        j
                  t        j                        t        j                  dgt        j
                  t        j                              	      }t        j                  |       y # 1 sw Y   xY w)
Nr|   xy)r   zfuture.infer_stringT)na_valuer&   )r   r'   r)   )r*   r+   rs   option_contextr   r   rJ   r   Indexr3   r   )rt   r   r   r7   s       r   test_string_inferencer     s    	C#s,	-BIIi			0$	7 %)$%||C:nnbff-#bnnbff&EFH
 &(+% %s   C##C,).__doc__r]   decimalr   r   r   r0   r   rJ   rq   pandasr*   r   pandas._testing_testingr3   rr   rp   r   markfilterwarnings
pytestmarkfixturer   r;   rO   rT   r^   ra   rm   ru   rx   parametrizerK   r.   IntervalPeriodr   r   r   r   r,   r   r   r   r   r
   r   r   <module>r      s       	        M " [[''C

 ) )#D#(#6&#R&#R&#R#0#0 %!R)		/4	!1	%{r{{'CD	<c	*IBIIl,MN	),X$,N, AAA.AAAMB3,r   