o
    i:&                  	   @   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  m	Z
 ddlZddlmZmZ ddlmZ ejdZdd Zejdd Zejd	d
d Zejd	ejddd Ze
ddd Zdd Ze
de
dddd Zdd Zdd Zejj ej ejdejdejd	ejdejd d!d" Z!ejdd#d$ Z"ejj ej ejd%d&d' Z#d(d) Z$ejj ej ejj%e&d*d+d,d- Z'd.d/ Z(ejd0ejd1d2d3 Z)d4d5 Z*d6d7 Z+d8d9 Z,d:d; Z-dS )<z1
Testing that we work in the downstream packages
    N)	DataFrameSerieszDignore:distutils Version classes are deprecated.*:DeprecationWarningc                 C   s4   zt | W S  ty   td|  d Y d S w )Nzskipping as z not available)	importlibimport_moduleModuleNotFoundErrorpytestskip)name r
   W/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/test_downstream.pyr      s
   r   c                   C   s   t dg diS )NA         )r   r
   r
   r
   r   df$   s   r   z,ignore:.*64Index is deprecated:FutureWarningc              
   C   st   t d}z-td}td}dd lm} |j| dd}|jd us"J | d us*J W t d| d S t d| w )Ncompute.use_numexprtoolzdaskr   r   npartitions)	pd
get_optionr   dask.dataframe	dataframefrom_pandasr   compute
set_option)r   olduser   r   ddddfr
   r
   r   	test_dask)   s   
r!   z,ignore:The __array_wrap__:DeprecationWarningc               
   C   s   t d} z8td}dd lm} dd lm} tg d}|j|dd}|	|
 }t	|}t|| W t d|  d S t d|  w )Nr   r   r   )g      ?gffffff@g@g      @r   r   )r   r   r   
dask.arrayarrayr   r   r   r   fixr   nptmassert_series_equalr   )r   r   dar   sdsresultexpectedr
   r
   r   test_dask_ufunc=   s   

r-   r   c                  C   s   dd l m}  tg d}| |}t|}t|}t|| t|dd}t|dd}t|| d}tj|d< tj	t
|d t|dd}W d    n1 sQw   Y  tj	t
|d t|dd}W d    n1 snw   Y  t|| d S )Nr   )r   g      @r   i8)dtypez>In a future version, passing float-dtype values containing NaNr   match)r   r   r%   r#   
from_arrayr   r&   r'   nanassert_produces_warningFutureWarning)r   arrdarrresr,   msgr
   r
   r   7test_construct_dask_float_array_int_dtype_match_ndarrayV   s$   

r:   c                 C   s   t d}|  d usJ d S )Nxarray)r   	to_xarray)r   r;   r
   r
   r   test_xarrayp   s   r=   cftimer;   z0.10.4c                  C   s~   dd l } dd l}|jddd}| ddd}tjtddd	 |j|d
d}W d    n1 s0w   Y  d}||ks=J d S )Nr   0001r   )periodsi  r   
deprecatedF)r1   check_stacklevelnearest)method)r>   r;   cftime_rangeDatetimeGregorianr&   r4   r5   get_loc)r>   r;   timeskeyr+   r,   r
   r
   r   test_xarray_cftimeindex_nearestw   s   rJ   c                   C      t tjdddg d S )N-OO-cimport pandas
subprocess
check_callsys
executabler
   r
   r
   r   test_oo_optimizable   s   rT   c                   C   rK   )NrL   rM   z_import pandas as pd, pickle; pickle.loads(pickle.dumps(pd.date_range('2021-01-01', periods=1)))rO   r
   r
   r
   r   )test_oo_optimized_datetime_index_unpickle   s   rU   z(ignore:pandas.util.testing is deprecatedzignore:can't:ImportWarningzGignore:Using or importing the ABCs from 'collections:DeprecationWarningz5ignore:`np.MachAr` is deprecated.*:DeprecationWarningc                  C   sL   t d} dd lm} dd lm  m} |jddj}|jd|d	  d S )Nstatsmodelsr   GuerryHistDataz$Lottery ~ Literacy + np.log(Pop1831))data)
r   statsmodels.apiapistatsmodels.formula.apiformuladatasetsget_rdatasetrY   olsfit)rV   smsmfr   r
   r
   r   test_statsmodels   s
   rd   c                  C   sf   t d} ddlm}m} | }|jddd}||jd d |jd d  |	|jdd   d S )Nsklearnr   )r^   svmgMbP?g      Y@)gammaC)
r   re   r^   rf   load_digitsSVCra   rY   targetpredict)re   r^   rf   digitsclfr
   r
   r   test_scikit_learn   s    rp   ignorec                  C   s&   t d} | d}| jdd|d d S )Nseaborntipsday
total_bill)xyrY   )r   load_dataset	stripplot)rr   rs   r
   r
   r   test_seaborn   s   
rz   c                  C   s   t jddd td} d S )N
pandas_gbqz0.10.0)
minversion)r   importorskipr   )r{   r
   r
   r   test_pandas_gbq   s   r~   z|The Quandl API key must be provided either through the api_key variable or through the environmental variable QUANDL_API_KEY)raisesreasonc                  C   s   t d} | dddd d S )Npandas_datareaderFquandlz
2017-01-01z
2017-02-01)r   
DataReader)r   r
   r
   r   test_pandas_datareader   s   	r   c                  C   sR   t d} | g d| g dg dd}|ddg jjtg ds'J d S )N	geopandasr   )colgeometryr   r   )g      ?g       @g      @)r   GeoDataFramepoints_from_xyr   rv   equalsr   )r   gdfr
   r
   r   test_geopandas   s
   &r   z"ignore:can't resolve:ImportWarningz4ignore:RangeIndex.* is deprecated:DeprecationWarningc                 C   s,   t d}|j| }| }t||  d S )Npyarrow)r   Tabler   	to_pandasr&   assert_frame_equal)r   r   tabler+   r
   r
   r   test_pyarrow   s   r   c                 C   sP   t d}|dd}t|}| st||sJ t|d }t||s&J d S )Ntorchi  @   r   )r   randnr   r%   shares_memoryr   )using_array_managerr   
val_tensorr   serr
   r
   r   test_torch_frame_construction   s   r   c                 C   sN   t d}|| }|j||jd}t| | |j||jd}t| | d S )Nyaml)Loader)r   dumploadr   r&   r   UnsafeLoader)r   r   dumpedloadedloaded2r
   r
   r   test_yaml_dump  s   
r   c                  C   s   t jdd} | ddg}t| }d|v rtd | dddg}d	|  d
}tjtj	|d}tj|tj
d W d    n1 sCw   Y  |jj }dD ]}||v sXJ qPd S )N\/rM   z$import pandas;print(pandas.__file__)zsite-packagesz pandas installed as site packagez-sSErN   zCommand '\['zD', '-sSE', '-c', 'import pandas'\]' returned non-zero exit status 1.r0   )stderr)numpypytzdateutil)rR   rS   replacerP   check_outputdecoder   r   r   CalledProcessErrorSTDOUTvaluestdout)pyexecalloutputr9   excr	   r
   r
   r    test_missing_required_dependency  s   


r   c               
   C   s   t d} zQtd}dd lm} |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|  d S t 	d|  w )Nr   r   r   r   r   abcd   FT)r   r   r   )index)
r   r   r   r"   r#   r   locr&   r   r   )r   r   r(   ddar   r+   r,   r
   r
   r   *test_frame_setitem_dask_array_into_new_col5  s   
r   ).__doc__r   rP   rR   r   r%   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   pandas._testing_testingr&   markfilterwarnings
pytestmarkr   fixturer   r!   r-   
skip_if_nor:   r=   rJ   rT   rU   networkrd   rp   rz   r~   xfail
ValueErrorr   r   r   r   r   r   r   r
   r
   r
   r   <module>   s~    
















$