o
    �¨Êh_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	   úJ/var/www/html/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ÚºiùîjFiAî!{iÝ~ðiY5B
i�ðrhi;õÎSinåóqið:²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    
ÿ
üÿ
!)))
#+	ýþ

