o
    Û­jµ7  ã                
   @   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	   úU/var/www/html/CropPilot/venv/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   s”   g d¢}dddddddd	|rd
nd	g	}t jt  d¡d�}t||ƒD ]\}}t j|d�||< q!|j d
¡|_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ÚobjectÚstrr   ©Úindexr   zTestOrcFile.emptyFile.orc©Úcolumns)r   r   Ú
RangeIndexÚzipÚSeriesr8   ÚastypeÚosÚpathÚjoinr   ÚtmÚassert_equal)	r   Úusing_infer_stringr8   ÚdtypesÚexpectedÚcolnamer   Ú	inputfileÚgotr	   r	   r   Útest_orc_reader_empty-   s$   
÷rH   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.orcr7   )ÚnpÚarrayr   r   Ú	from_dictr=   r>   r?   r   Úkeysr@   rA   ©r   r   rD   rF   rG   r	   r	   r   Útest_orc_reader_basicO   s   ÷r[   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é
   )rV   rW   r   r   r   rX   r=   r>   r?   r   Úilocr@   rA   rZ   r	   r	   r   Útest_orc_reader_decimalc   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.orcr]   ©rV   rW   Údatetimerf   r   r   rX   r=   r>   r?   r   r^   r@   rA   rZ   r	   r	   r   Útest_orc_reader_date_low~   ó.   óöóð ri   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.100900ra   r   iö  rb   rc   r3   rd   zTestOrcFile.testDate2038.orcr]   rg   rZ   r	   r	   r   Útest_orc_reader_date_high§   rj   rk   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.orcr]   )rV   rW   r   r   rX   r=   r>   r?   r   r^   r@   rA   rZ   r	   r	   r   Ú!test_orc_reader_snappy_compressedÐ   s   óóð rv   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   rI   r-   rJ   rK   r.   rL   r/   rM   r0   rN   rO   r1   rP   rQ   r2   rR   rS   r3   rT   rU   r"   )ÚpytestÚimportorskiprV   rW   r   r   rX   r@   Úensure_cleanÚto_orcr   rA   )r   r   rD   r>   rG   r	   r	   r   Útest_orc_roundtrip_fileù   s"   
÷

"ür}   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 rw   )ry   rz   rV   rW   r   r   rX   r|   r   r   r@   rA   )r   rD   ÚbytesrG   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 )Nrx   z6The dtype of one or more columns is not supported yet.©Úmatch)ry   rz   ÚraisesÚNotImplementedErrorr|   )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 ƒ¡}| r�t t ¡ ¡}|d  |¡|d< |d  |¡|d< |d  |¡|d< t ||¡ d S )Nrx   Úabcr   Úc©r   Nr‡   )s   foos   barNr   é   ç      @ç      @r2   r   rO   ç      @©TFT©TFNÚ20130101é   )ÚperiodsÚ20130103)ÚstringÚstring_with_nanÚstring_with_noner~   ÚintÚfloatÚfloat_with_nanr,   Úbool_with_narh   Údatetime_with_nat©Údtype_backendc              	      s(   i | ]}|t j tjˆ | d d�¡“qS )T)Úfrom_pandas)r   ÚarraysÚArrowExtensionArrayÚparW   )Ú.0Úcol©Údfr	   r   Ú
<dictcomp>N  s    ÿÿz2test_orc_dtype_backend_pyarrow.<locals>.<dictcomp>r“   r”   r•   )ry   rz   r   r   ÚlistrV   ÚnanÚrangeÚarangeÚ
date_rangeÚ	TimestampÚNaTÚcopyr|   r   r   r8   Ú
ArrowDtyper    r“   r<   r@   Úassert_frame_equal)rB   Ú
bytes_dataÚresultrD   Ústring_dtyper	   r£   r   Útest_orc_dtype_backend_pyarrow4  s>   


ýõÿ
þÿ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 )Nrx   r†   r   r‡   rˆ   r   r‰   r�   ÚInt64r   rŠ   r‹   r2   rO   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)ry   rz   r   r   r¦   rV   r§   r¨   r;   ÚNAr©   r­   r|   r   r   r   rW   Úobject_r@   r¯   )r¤   r°   r±   rD   r	   r	   r   Ú%test_orc_dtype_backend_numpy_nullable^  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@   r{   r|   ÚpathlibÚPathÚas_urir   r¯   )rD   r>   Úurir±   r	   r	   r   Útest_orc_uri_path‰  s   

ýrÃ   r6   )Ú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¸   r5   z[orc does not support serializing a non-default index|orc does not serialize index meta-datar€   )r   r   ry   r‚   Ú
ValueErrorr|   )r6   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@   r{   r|   ry   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t jtjd�t jdgt jtjd�d	�d
�}t	 
||¡ d S )Nztest_string_inference.pr   ÚxÚy)r   zfuture.infer_stringT)Úna_valuer   )r   r   r8   )r   r   r|   Úoption_contextr   ÚStringDtyperV   r§   ÚIndexr@   r¯   )Útmp_pathr>   r¤   r±   rD   r	   r	   r   Útest_string_inference°  s   

ÿ
ýrÓ   )2Ú__doc__rh   Údecimalr   r   r   r=   r¿   rÊ   rV   ry   Úpandasr   r   Úpandas._testingÚ_testingr@   Úpandas.core.arraysr   rz   rx   r    ÚmarkÚfilterwarningsÚ
pytestmarkÚfixturer   rW   r;   ÚIntervalÚPeriodr!   rH   r[   r_   ri   rk   rv   r}   r   r…   r³   r½   rÃ   Úparametrizer9   rÑ   rÉ   rË   rÓ   r	   r	   r	   r   Ú<module>   sb    
ÿ
üÿ
")))
*+	ýþ

