a
    h                     @   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 Zej	j
ddej	j
ddej	je  ddd	d
ej	j
ddidZdd Zdd Zd ddZdd Zd!ddZej	deddd Zej	deddd Zej	deddd ZdS )"z&Test loaders for common functionality.    Nc                  C   s(   zdd l } W dS  ty"   Y dS 0 d S )Nr   TF)PILImportError)r    r   ^/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/datasets/tests/test_common.pyis_pillow_installed   s
    r   z.X is a list and does not have a shape argument)reasonz)fetch_opeml requires a dataset name or idzpillow is not installed)Zfetch_20newsgroupsfetch_openmlZfetch_lfw_peopler   )
return_X_yas_framec                 C   sv   zdd l }td W nZ typ   | j}| d}tjt|d | dd W d    n1 sb0    Y  Y n0 d S )Nr   z-This test requires pandas to not be installedz# with as_frame=True requires pandas)matchTr
   )pandaspytestskipr   __name__Zraises)Z
fetch_funcr   nameZexpected_msgr   r   r   check_pandas_dependency_message)   s    
r   c                 C   sH   |dd}t |tsJ |d j| jjks.J |d j| jjksDJ d S )NT)r	   r      )
isinstancetupleshapedatatarget)bunchdataset_funcZ	X_y_tupler   r   r   check_return_X_y7   s    
r   c                 C   s<  t d}|dd}t|ds"J t|j|js4J t|j|jsFJ |jj| jjksZJ |jj	dkrzt|j|jsJ nt|j|j
sJ |jjd | jjd ksJ |d urt|jj|ksJ |d urt|jj|ksJ |ddd\}}t||jsJ |j	dkr&t||js8J nt||j
s8J d S )Nr   Tr   framer   r   )r
   r	   )r   Zimportorskiphasattrr   r   Z	DataFramer   r   r   ndimZSeriesnpallZdtypes)r   r   Zexpected_data_dtypeZexpected_target_dtypepdZframe_bunchZframe_XZframe_yr   r   r   check_as_frame>   s&    

r"   c                   C   s   t jdddkS )NZSKLEARN_SKIP_NETWORK_TESTS1)osenvirongetr   r   r   r   _skip_network_testsZ   s    r'   loadfetchc                 #   s   t | i }ttjD ]\ }t|s,qt fdd|D }| t|j	v }|r|rt
jj dont ddg} |v r||   t
j ||dV  qd S )Nc                    s   g | ]}  |qS r   )
startswith).0tr   r   r   
<listcomp>d       z3_generate_func_supporting_param.<locals>.<listcomp>r*   z.Skip because fetcher requires internet network)	conditionr   )marks)FETCH_PYTEST_MARKERSr&   inspect
getmemberssklearnZdatasets
isfunctionany	signature
parametersr   markskipifr+   r'   appendparam)r>   Zdataset_typeZmarkers_fetchobjZis_dataset_typeZis_support_paramr2   r   r.   r   _generate_func_supporting_param^   s    
r@   zname, dataset_funcr	   c                 C   s   | }t || d S N)r   r   r   r   r   r   r   test_common_check_return_X_yt   s    rC   r
   c                 C   s   | }t || d S rA   )r"   rB   r   r   r   test_common_check_as_frame|   s    rD   c                 C   s   t | d S rA   )r   )r   r   r   r   r   #test_common_check_pandas_dependency   s    rE   )NN)r(   )__doc__r4   r$   numpyr   r   Zsklearn.datasetsr6   r   r;   Zxfailr<   r3   r   r   r"   r'   r@   ZparametrizerC   rD   rE   r   r   r   r   <module>   sN    



