o
    _~#g_5                  
   @   s  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ZddlmZ ddlmZ ddlmZ e
d ddlZe
jdZe
jd	d
 Ze
je	jddgddejg dddejdddejdddgejdddejdddggddd Zdd Z dd Z!dd  Z"d!d" Z#d#d$ Z$d%d& Z%d'd( Z&d)d* Z'd+d, Z(d-d. Z)d/d0 Z*d1d2 Z+e
j,d3ej-dddd4ej-dd5dd6d7e.g d8gd9d: Z/d;d< Z0d=d> Z1dS )?z test orc compat     N)Decimal)BytesIO)read_orc)StringArrayzpyarrow.orcz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                 C   s   | dddS )Niodataorc )datapathr	   r	   }/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/io/test_orc.pydirpath   s   r         uint64dtype)abr   category   )leftright   z
2022-01-03D)freqz
2022-01-04)paramsc                 C   s   t d| jiS )Nunimpl)pd	DataFrameparam)requestr	   r	   r   orc_writer_dtypes_not_supported   s   r!   c                 C   sp   g d}g d}t jt dd}t||D ]\}}t j|d||< qtj| d}t||d}t	
|| d S )N	boolean1byte1short1int1long1float1double1bytes1string1)	boolint8int16int32int64float32float64objectr3   r   indexr   zTestOrcFile.emptyFile.orccolumns)r   r   
RangeIndexzipSeriesospathjoinr   tmassert_equal)r   r7   dtypesexpectedcolnamer   	inputfilegotr	   r	   r   test_orc_reader_empty-   s   rE   c                 C   s   t jddgddt jddgddt jdd	gd
dt jddgddt jddgddt jddgddt jddgddt jddgddt jddgddd	}tj|}tj| d}t||	 d}t
|| d S )NFTr,   r   r   d   r-         r.      r/       r0         ?       @r1         .      r2           r3   hibyer"   zTestOrcFile.test1.orcr6   )nparrayr   r   	from_dictr;   r<   r=   r   keysr>   r?   r   r   rA   rC   rD   r	   r	   r   test_orc_reader_basicN   s   rX   c                 C   s   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di}tj|}tj| d}t	|j
d d }t|| d S )N_col0z-1000.50000z
-999.60000z
-998.70000z
-997.80000z
-996.90000z
-995.10000z
-994.11000z
-993.12000z
-992.13000z
-991.14000r3   r   zTestOrcFile.decimal.orc
   )rS   rT   r   r   r   rU   r;   r<   r=   r   ilocr>   r?   rW   r	   r	   r   test_orc_reader_decimalb   s&   r\   c                 C      t jg dddt jtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddg
ddd}tj|}tj	| d	}t
|jd d
 }t|| d S )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        r3   timedatezTestOrcFile.testDate1900.orcrZ   rS   rT   datetimerc   r   r   rU   r;   r<   r=   r   r[   r>   r?   rW   r	   r	   r   test_orc_reader_date_low}   .    rf   c                 C   r]   )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.100900r^   r   i  r_   r`   r3   ra   zTestOrcFile.testDate2038.orcrZ   rd   rW   r	   r	   r   test_orc_reader_date_high   rg   rh   c                 C   sb   t jg dddt jg dddd}tj|}tj| d}t|j	d d }t
|| d S )	N)
iEAںijFiA!{i~iY5B
irhi;Sinqi:i(r/   r   )
f50dcb8382fdaaa90758c69e8caf3fee97332bd634da12bea4396d67d89e8ad71007ee8c82066r3   )r&   r+   zTestOrcFile.testSnappy.orcrZ   )rS   rT   r   r   rU   r;   r<   r=   r   r[   r>   r?   rW   r	   r	   r   !test_orc_reader_snappy_compressed   s    rs   c                 C   s   t d tjddgddtjddgddtjd	d
gddtjddgddtjddgddtjddgddtjddgddtjddgddtjddgddd	}tj|}t }|	| t
|}t|| W d    d S 1 suw   Y  d S NpyarrowFTr,   r   r   rF   r-   rG   rH   r.   rI   r/   rJ   r0   rK   rL   r1   rM   rN   r2   rO   rP   r3   rQ   rR   r"   )pytestimportorskiprS   rT   r   r   rU   r>   ensure_cleanto_orcr   r?   )r   r   rA   r<   rD   r	   r	   r   test_orc_roundtrip_file   s"   


"rz   c                  C   s   t d tjddgddtjddgddtjd	d
gddtjddgddtjddgddtjddgddtjddgddtjddgddtjddgddd	} tj| }| }tt	|}t
|| d S rt   )rv   rw   rS   rT   r   r   rU   ry   r   r   r>   r?   )r   rA   bytesrD   r	   r	   r   test_orc_roundtrip_bytesio  s   
r|   c                 C   sJ   t d d}t jt|d |   W d    d S 1 sw   Y  d S )Nru   z6The dtype of one or more columns is not supported yet.match)rv   rw   raisesNotImplementedErrorry   )r!   msgr	   r	   r   $test_orc_writer_dtypes_not_supported)  s
   

"r   c                     s   t d ttddtjdgg dg dttddtjd	d
dddtjdgg dg dtj	dddt
dtjt
dgd    } tt| dd}t fdd jD }t|| d S )Nru   abcr   cr   Nr   )s   foos   barNr            @      @r2   r   rL         @TFTTFN20130101   )periods20130103)stringstring_with_nanstring_with_noner{   intfloatfloat_with_nanr,   bool_with_nare   datetime_with_natdtype_backendc              	      s(   i | ]}|t jtj | d dqS )T)from_pandas)r   arraysArrowExtensionArrayparT   ).0coldfr	   r   
<dictcomp>M  s    z2test_orc_dtype_backend_pyarrow.<locals>.<dictcomp>)rv   rw   r   r   listrS   nanrangearange
date_range	TimestampNaTcopyry   r   r   r7   r>   assert_frame_equal)
bytes_dataresultrA   r	   r   r   test_orc_dtype_backend_pyarrow3  s4   



r   c                  C   s  t d ttddtjdgg dttddtjdtj	dgd	d
tjtj	tj	tj	gd	d
tj
dddd
dtjdgg dg dd
} |   }tt|dd}tttjg dtjd
ttjdtj	dgtjd
ttjdtj	dgtjd
tjg dd	d
tjdtj	dgd	d
tjtj	tj	tj	gd	d
tjg ddd
tjdtj	dgdd
tjg ddd
tjddtj	gdd
d
}t|| d S )Nru   r   r   r   r   r   r   r   Int64r   r   r   r2   rL   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)rv   rw   r   r   r   rS   r   r   r:   NAr   r   ry   r   r   r   rT   object_r>   r   )r   r   r   rA   r	   r	   r   %test_orc_dtype_backend_numpy_nullableV  sD   


r   c                  C   sr   t dttddi} td}| | t|	 }t
|}W d    n1 s,w   Y  t||  d S )Nr   r   r   tmp.orc)r   r   r   r   r>   rx   ry   pathlibPathas_urir   r   )rA   r<   urir   r	   r	   r   test_orc_uri_path  s   

r   r5   )startstopstepr   znon-default)r   r   r   namer   c                 C   sV   t jdg di| d}d}tjt|d |  W d    d S 1 s$w   Y  d S )Nr   r   r4   z[orc does not support serializing a non-default index|orc does not serialize index meta-datar}   )r   r   rv   r   
ValueErrorry   )r5   r   r   r	   r	   r   test_to_orc_non_default_index  s   	
"r   c               	   C   s   d} t dttddi}td3}|| tjt	| d t
|dd W d    n1 s1w   Y  W d    d S W d    d S 1 sIw   Y  d S )	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r   r   r   r   r}   numpyr   )r   r   r   r   r>   rx   ry   rv   r   r   r   )r   r   r<   r	   r	   r   test_invalid_dtype_backend  s   
"r   c                 C   s   | d }t jdddgid}|| t dd t|}W d    n1 s(w   Y  t jdddgidt jdgdd	d
}t|| d S )Nztest_string_inference.pr   xy)r   zfuture.infer_stringTzstring[pyarrow_numpy]r   )r   r   r7   )r   r   ry   option_contextr   Indexr>   r   )tmp_pathr<   r   r   rA   r	   r	   r   test_string_inference  s   


r   )2__doc__re   decimalr   r   r   r;   r   r   rS   rv   pandasr   r   pandas._testing_testingr>   pandas.core.arraysr   rw   ru   r   markfilterwarnings
pytestmarkfixturer   rT   r:   IntervalPeriodr!   rE   rX   r\   rf   rh   rs   rz   r|   r   r   r   r   parametrizer8   r   r   r   r   r	   r	   r	   r   <module>   sb    


!)))
#+	

