U
    sVc:&                  	   @   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   s8   zt | W S  tk
r2   td|  d Y nX d S )Nzskipping as z not available)	importlibimport_moduleModuleNotFoundErrorpytestskip)name r
   @/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/test_downstream.pyr      s    r   c                   C   s   t ddddgiS )NA         )r   r
   r
   r
   r   df$   s    r   z,ignore:.*64Index is deprecated:FutureWarningc              
   C   sj   t d}zLtd}td}dd lm} |j| dd}|jd k	sDt|	 d k	sTtW 5 t d| X d S )Ncompute.use_numexprtoolzdaskr   r   Znpartitions)
pd
get_option
set_optionr   dask.dataframe	dataframefrom_pandasr   AssertionErrorcompute)r   olduser   r   ddZddfr
   r
   r   	test_dask)   s    
r   z,ignore:The __array_wrap__:DeprecationWarningc               
   C   s   t d} zftd}dd lm} dd lm} tddddg}|j	|dd	}|
| }t
|}t|| W 5 t d|  X d S )
Nr   r   r   g      ?gffffff@g@g      @r   r   )r   r   r   r   
dask.arrayarrayr   r   r   r   Zfixr   nptmassert_series_equal)r   r   dar   sZdsresultexpectedr
   r
   r   test_dask_ufunc=   s    

r)   r   c               	   C   s   dd l m}  tdddg}| |}t|}t|}t|| t|dd}t|dd}t|| d}tj|d< tj	t
|d	 t|dd}W 5 Q R X tj	t
|d	 t|dd}W 5 Q R X t|| d S )
Nr   r   g      @r   i8)Zdtypez>In a future version, passing float-dtype values containing NaNr   match)r   r   r"   r!   Z
from_arrayr   r#   r$   nanassert_produces_warningFutureWarning)r   Zarrdarrresr(   msgr
   r
   r   7test_construct_dask_float_array_int_dtype_match_ndarrayV   s     

r3   c                 C   s   t d}|  d k	std S )Nxarray)r   Z	to_xarrayr   )r   r4   r
   r
   r   test_xarrayp   s    r5   cftimer4   z0.10.4c               	   C   sj   dd l } dd l}|jddd}| ddd}tjtddd	 |j|d
d}W 5 Q R X d}||ksftd S )Nr   Z0001r   )Zperiodsi  r   
deprecatedF)r,   Zcheck_stacklevelZnearest)method)	r6   r4   Zcftime_rangeZDatetimeGregorianr#   r.   r/   Zget_locr   )r6   r4   timeskeyr'   r(   r
   r
   r   test_xarray_cftimeindex_nearestw   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_optimizable   s    rD   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)))r?   r
   r
   r
   r   )test_oo_optimized_datetime_index_unpickle   s    rE   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   ZGuerryZHistDataz$Lottery ~ Literacy + np.log(Pop1831))data)
r   Zstatsmodels.apiapiZstatsmodels.formula.apiZformuladatasetsZget_rdatasetrG   Zolsfit)rF   smZsmfr   r
   r
   r   test_statsmodels   s
    rL   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   )rI   svmgMbP?g      Y@)gammaC)
r   rM   rI   rN   Zload_digitsZSVCrJ   rG   targetZpredict)rM   rI   rN   digitsZclfr
   r
   r   test_scikit_learn   s     rT   ignorec                  C   s&   t d} | d}| jdd|d d S )NseaborntipsdayZ
total_bill)xyrG   )r   Zload_datasetZ	stripplot)rV   rW   r
   r
   r   test_seaborn   s    
r[   c                  C   s   t jddd td} d S )N
pandas_gbqz0.10.0)Z
minversion)r   Z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FZquandlz
2017-01-01z
2017-02-01)r   Z
DataReader)r`   r
   r
   r   test_pandas_datareader   s    	rb   c               	   C   sZ   t d} | dddg| dddgdddgd}|ddg jjtdd	d
gsVtd S )N	geopandasr   r   r   )colgeometryrd   re   g      ?g       @g      @)r   ZGeoDataFrameZpoints_from_xyre   rY   equalsr   r   )rc   Zgdfr
   r
   r   test_geopandas   s
    "rg   z"ignore:can't resolve:ImportWarningz4ignore:RangeIndex.* is deprecated:DeprecationWarningc                 C   s,   t d}|j| }| }t||  d S )Npyarrow)r   ZTabler   Z	to_pandasr#   assert_frame_equal)r   rh   tabler'   r
   r
   r   test_pyarrow   s    rk   c                 C   sP   t d}|dd}t|}| s0t||s0tt|d }t||sLtd S )Ntorchi  @   r   )r   Zrandnr   r"   Zshares_memoryr   r   )Zusing_array_managerrl   Z
val_tensorr   Zserr
   r
   r   test_torch_frame_construction   s    rn   c                 C   sN   t d}|| }|j||jd}t| | |j||jd}t| | d S )Nyaml)Loader)r   dumploadrp   r#   ri   ZUnsafeLoader)r   ro   ZdumpedZloadedZloaded2r
   r
   r   test_yaml_dump  s    
rs   c               	   C   s   t jdd} | ddg}t| }d|kr8td | dddg}d	|  d
}tjtj	|d}tj|tj
d W 5 Q R X |jj }dD ]}||kstqd 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)rB   rC   replacer@   check_outputdecoder   r   r^   CalledProcessErrorSTDOUTvaluestdoutr   )Zpyexecalloutputr2   excr	   r
   r
   r    test_missing_required_dependency  s    


r   c               
   C   s   t d} zt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 5 t d|  X d S )Nr   r   r   r   r   abcd   FT)r   r   r   )index)
r   r   r   r   r    r!   r   locr#   ri   )r   r   r%   Zddar   r'   r(   r
   r
   r   *test_frame_setitem_dask_array_into_new_col5  s    
r   ).__doc__r   r@   rB   rw   r"   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r   Zpandas._testingZ_testingr#   markfilterwarningsZ
pytestmarkr   Zfixturer   r   r)   Z
skip_if_nor3   r5   r;   rD   rE   networkrL   rT   r[   r]   Zxfail
ValueErrorrb   rg   rk   rn   rs   r   r   r
   r
   r
   r   <module>   s|   
















$