a
    é´«jh*  ã                	   @   s´  d 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
  mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZ ddlmZ ejdd„ ƒZd	d
„ Zdd„ Zdd„ Zdd„ Z dd„ Z!ej"j#dd„ ƒZ$ej"j#dd„ ƒZ%dd„ Z&dd„ Z'dd„ Z(dd„ Z)ej" *d¡d d!„ ƒZ+d"d#„ Z,ej"j#d$d%„ ƒZ-d&d'„ Z.d(d)„ Z/ejd*d+ej0d,e 1d-¡d.�ej0d/e 1d/¡d.�gd0�d1d2„ ƒZ2ej" 3d3d4d5g¡d6d7„ ƒZ4dd8œd9d:„Z5d;d<„ Z6dS )=z1
Testing that we work in the downstream packages
é    N)ÚIntCastingNaNError)Ú	DataFrameÚDatetimeIndexÚSeriesÚTimedeltaIndex)ÚDatetimeArrayÚTimedeltaArray)ÚVersionc                   C   s   t dg d¢iƒS )NÚA©é   é   é   )r   © r   r   ú[/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/test_downstream.pyÚdf   s    r   c              
   C   sn   t  d¡}zPt d¡ t d¡}|j| dd�}|jd us<J ‚| ¡ d usLJ ‚W t  d|¡ nt  d|¡ 0 d S )Núcompute.use_numexprZtoolzúdask.dataframer   ©Znpartitions)ÚpdÚ
get_optionÚpytestÚimportorskipÚfrom_pandasr
   ÚcomputeÚ
set_option)r   ÚolduseÚddZddfr   r   r   Ú	test_dask"   s    


r   c               
   C   s€   t  d¡} zbt d¡}t d¡}tg d¢ƒ}|j|dd�}| |¡ ¡ }t |¡}t	 
||¡ W t  d| ¡ nt  d| ¡ 0 d S )Nr   ú
dask.arrayr   )g      ø?gffffff@gš™™™™™@g      @r   r   )r   r   r   r   r   r   Zfixr   ÚnpÚtmÚassert_series_equalr   )r   Údar   ÚsZdsÚresultÚexpectedr   r   r   Útest_dask_ufunc2   s    



r'   c                  C   s  t  d¡} t g d¢¡}|  |¡}t|ƒ}t|ƒ}t ||¡ d}t jt	|d�� t|dd� W d   ƒ n1 sr0    Y  d}tj
|d< t jt|d�� t|dd� W d   ƒ n1 sº0    Y  t jt|d�� t|dd� W d   ƒ n1 sô0    Y  d S )	Nr   )r   g      @r   z)Trying to coerce float values to integers©ÚmatchÚi8©Údtypez9Cannot convert non-finite values \(NA or inf\) to integerr   )r   r   r    ÚarrayZ
from_arrayr   r!   r"   ÚraisesÚ
ValueErrorÚnanr   )r   ÚarrÚdarrÚresr&   Úmsgr   r   r   Ú7test_construct_dask_float_array_int_dtype_match_ndarrayE   s    

*
*r5   c                 C   s   t  d¡ |  ¡ d usJ ‚d S )NÚxarray)r   r   Z	to_xarray)r   r   r   r   Útest_xarray_   s    
r7   c                  C   sT   t  d¡} t  d¡}|jddd�}|  ddd¡}|j|gdd	�}d}||ksPJ ‚d S )
NÚcftimer6   Z0001r   )ÚperiodsiÐ  r   Znearest)Úmethod)r   r   Zcftime_rangeZDatetimeGregorianZget_indexer)r8   r6   ÚtimesÚkeyr%   r&   r   r   r   Útest_xarray_cftimeindex_neareste   s    

r=   c                   C   s   t  tjdddg¡ d S )Nú-OOú-cúimport pandas©Ú
subprocessÚ
check_callÚsysÚ
executabler   r   r   r   Útest_oo_optimizableq   s    rF   c                   C   s   t  tjdddg¡ d S )Nr>   r?   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rA   r   r   r   r   Ú)test_oo_optimized_datetime_index_unpicklew   s    ûÿrG   c                  C   s>   t  d¡} ttdƒtdƒtddƒdœƒ}| jd|d� ¡  d S )Nzstatsmodels.formula.apié   éd   éi   )ZLotteryZLiteracyZPop1831z$Lottery ~ Literacy + np.log(Pop1831))Údata)r   r   r   ÚrangeZolsÚfit)Zsmfr   r   r   r   Útest_statsmodels‡   s
    
ÿrN   c                  C   sh   t  d¡ ddlm} m} |  ¡ }|jddd�}| |jd d… |j	d d… ¡ | 
|jdd … ¡ d S )NÚsklearnr   )ÚdatasetsÚsvmgü©ñÒMbP?g      Y@)ÚgammaÚCéÿÿÿÿ)r   r   rO   rP   rQ   Zload_digitsZSVCrM   rK   ÚtargetZpredict)rP   rQ   ÚdigitsZclfr   r   r   Útest_scikit_learn�   s    
 rW   c                  C   s<   t  d¡} ttjdddd�tdƒdœƒ}| jdd|d	� d S )
NÚseabornZ2023ÚDrH   )Úfreqr9   )ÚdayÚ
total_billr[   r\   )ÚxÚyrK   )r   r   r   r   Z
date_rangerL   Z	stripplot)rX   Ztipsr   r   r   Útest_seaborn�   s
    
ÿr_   c                   C   s   t  d¡ d S )NZpandas_datareader)r   r   r   r   r   r   Útest_pandas_datareader¥   s    r`   z0ignore:Passing a BlockManager:DeprecationWarningc                 C   s.   t  d¡}|j | ¡}| ¡ }t || ¡ d S )NÚpyarrow)r   r   ÚTabler   Z	to_pandasr!   Úassert_frame_equal)r   ra   Útabler%   r   r   r   Útest_pyarrow©   s    
re   c                 C   sP   t  d¡}| | ¡}|j||jd�}t | |¡ |j||jd�}t | |¡ d S )NÚyaml)ÚLoader)r   r   ÚdumpÚloadrg   r!   rc   ZUnsafeLoader)r   rf   ZdumpedZloadedZloaded2r   r   r   Útest_yaml_dump±   s    

rj   c                  C   s¶   t j dd¡} | ddg}t |¡ ¡ }d|v r8t d¡ | dddg}d	| › d
�}tjtj	|d�� }tj|tj
d� W d   ƒ n1 s†0    Y  |jj ¡ }dD ]}||v s J ‚q d S )Nú\ú/r?   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSEr@   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r(   )Ústderr)ÚnumpyZpytzZdateutil)rD   rE   ÚreplacerB   Úcheck_outputÚdecoder   Úskipr.   ÚCalledProcessErrorÚSTDOUTÚvalueÚstdout)ZpyexeÚcallÚoutputr4   ÚexcÚnamer   r   r   Ú test_missing_required_dependency¾   s    	


ÿ.r{   c              
   C   sö   t  d¡}zØt d¡}t d¡}t|jƒtdƒkrXttjƒtdƒkrX|  tjj	dd�¡ | 
dd	g¡}td
d
dgiƒ}||d< ||d< d|jddgdf< |jdgd d …f }tdgdgd	gdœdgd�}t ||¡ W t  d|¡ nt  d|¡ 0 d S )Nr   Údaskr   z2025.1.0z2.1z,loc.__setitem__ incorrectly mutated column c)Úreasonr   r   ÚaÚbÚcrI   FT)r~   r   r€   )Úindex)r   r   r   r   r	   Ú__version__r    ZapplymarkerÚmarkZxfailr-   r   Úlocr!   rc   r   )Úrequestr   r|   r#   Zddar   r%   r&   r   r   r   Ú*test_frame_setitem_dask_array_into_new_colã   s*    


ÿþÿr†   c                  C   sF   G dd„ dƒ} | ƒ }t tdƒƒ}| |¡tu s2J ‚|| |u sBJ ‚d S )Nc                   @   s   e Zd ZdZdd„ ZdS )z%test_pandas_priority.<locals>.MyClassiˆ  c                 S   s   | S )Nr   )ÚselfÚotherr   r   r   Ú__radd__  s    z.test_pandas_priority.<locals>.MyClass.__radd__N)Ú__name__Ú
__module__Ú__qualname__Z__pandas_priority__r‰   r   r   r   r   ÚMyClass  s   r�   r   )r   rL   Ú__add__ÚNotImplemented)r�   ÚleftÚrightr   r   r   Útest_pandas_priority   s
    r’   Ú
memoryviewr-   r|   r   )Zmarksr6   )Úparamsc                 C   s‚   t jg d¢t jd�}| j}|dkr,t|ƒ}nN|dkrBt d|¡}n8|dkr`ddl}|j |¡}n|d	krzddl}| |¡}||fS )
z¢
    Fixture giving a numpy array and a parametrized 'data' object, which can
    be a memoryview, array, dask or xarray object created from the numpy array.
    r   r+   r“   r-   Úir|   r   Nr6   )r    r-   Zint64Úparamr“   Z
dask.arrayr6   Ú	DataArray)r…   r1   rz   rK   r|   Úxrr   r   r   Úarray_likes  s    

r™   r,   úM8[ns]úm8[ns]c           
      C   sÜ   |\}}t tdœ|  }|j› d�}tjt|d�� ||ƒ}W d   ƒ n1 sN0    Y  |j|| d�}t ||¡ t|t	ƒs®t
jt
jdœ|  }||ƒj}||ƒj}t ||¡ ttdœ|  }	|	|ƒ}|	|ƒ}t ||¡ d S )N)rš   r›   z.__init__ is deprecatedr(   r+   )r   r   rŠ   r!   Zassert_produces_warningÚFutureWarningZ_from_sequenceZassert_extension_array_equalÚ
isinstancer“   r   Úto_datetimeZto_timedeltar-   Zassert_equalr   r   Úassert_index_equal)
r,   r™   r1   rK   ÚclsZdepr_msgr&   r%   ÚfuncZidx_clsr   r   r   Útest_from_obscure_array1  s     &


r¢   )Úreturnc                  C   sn   t  d¡ tg d¢g d¢dœƒ} |  ¡ }| ¡ }ddg}||ksDJ ‚tg d¢dd�}| ¡ }|jdksjJ ‚dS )	zÙ
    Test some basic methods of the dataframe consortium standard.

    Full testing is done at https://github.com/data-apis/dataframe-api-compat,
    this is just to check that the entry point works as expected.
    Zdataframe_api_compatr   )é   rH   é   )r~   r   r~   r   )rz   N)r   r   r   Z!__dataframe_consortium_standard__Zget_column_namesr   Z__column_consortium_standard__rz   )Zdf_pdr   Zresult_1Z
expected_1ZserÚcolr   r   r   Útest_dataframe_consortiumP  s    
r§   c                  C   sH   t  d¡} |  g d¢¡}tj|dd�}tg d¢dd d�}t ||¡ d S )Nr6   r   Úns)Úunit)z1970-01-01 00:00:00.000000001z1970-01-01 00:00:00.000000002z1970-01-01 00:00:00.000000003zdatetime64[ns])r,   rZ   )r   r   r—   r   rž   r   r!   rŸ   )r˜   r1   r%   r&   r   r   r   Útest_xarray_coerce_unitc  s    
ù	rª   )7Ú__doc__r-   rB   rD   rn   r    r   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr   r   r   r   r   Zpandas._testingZ_testingr!   Zpandas.core.arraysr   r   Zpandas.util.versionr	   Zfixturer   r   r'   r5   r7   r=   rƒ   Z
single_cpurF   rG   rN   rW   r_   r`   Úfilterwarningsre   rj   r{   r†   r’   r–   Z
skip_if_nor™   Zparametrizer¢   r§   rª   r   r   r   r   Ú<module>   s\   


	


$üÿ

