o
    ?Hh                     @   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 w )Nr   TF)PILImportError)r    r   b/home/air/sanwanet/gpt-api/venv/lib/python3.10/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)fetch_20newsgroupsfetch_openmlfetch_lfw_peopler	   )
return_X_yas_framec                 C   sz   zdd l }td W d S  ty<   | j}| d}tjt|d | dd W d    Y d S 1 s4w   Y  Y d S w )Nr   z-This test requires pandas to not be installedz# with as_frame=True requires pandas)matchTr   )pandaspytestskipr   __name__raises)
fetch_funcr   name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s"J d S )NT)r   r      )
isinstancetupleshapedatatarget)bunchdataset_func	X_y_tupler   r   r   check_return_X_y7   s   
r!   c                 C   s6  t d}|dd}t|dsJ t|j|jsJ t|j|js#J |jj| jjks-J |jj	dkr=t|j|js<J n	t|j|j
sFJ |jjd | jjd ksTJ |d urct|jj|kscJ |d urrt|jj|ksrJ |ddd\}}t||jsJ |j	dkrt||jsJ d S t||j
sJ d S )Nr   Tr   framer   r   )r   r   )r   importorskiphasattrr   r"   	DataFramer   r   r   ndimSeriesnpalldtypes)r   r   expected_data_dtypeexpected_target_dtypepdframe_bunchframe_Xframe_yr   r   r   check_as_frame>   s&   


r1   c                   C   s   t jdddkS )NSKLEARN_SKIP_NETWORK_TESTS1)osenvirongetr   r   r   r   _skip_network_testsZ   s   r7   loadfetchc                 #   s    t | i }ttjD ]D\ }t|sqt fdd|D }| t|j	v }|rQ|rQt
jj do8t ddg} |v rH||   t
j ||dV  qd S )Nc                    s   g | ]}  |qS r   )
startswith).0tr   r   r   
<listcomp>d   s    z3_generate_func_supporting_param.<locals>.<listcomp>r:   z.Skip because fetcher requires internet network)	conditionr   )marks)FETCH_PYTEST_MARKERSr6   inspect
getmemberssklearndatasets
isfunctionany	signature
parametersr   markskipifr;   r7   appendparam)rN   dataset_typemarkers_fetchobjis_dataset_typeis_support_paramrA   r   r>   r   _generate_func_supporting_param^   s$   
rT   zname, dataset_funcr   c                 C      | }t || d S N)r!   r   r   r   r   r   r   test_common_check_return_X_yt      rX   r   c                 C   rU   rV   )r1   rW   r   r   r   test_common_check_as_frame|   rY   rZ   c                 C   s   t | d S rV   )r   )r   r   r   r   r   #test_common_check_pandas_dependency   s   r[   )NN)r8   )__doc__rC   r4   numpyr(   r   sklearn.datasetsrE   r   rK   xfailrL   rB   r   r!   r1   r7   rT   parametrizerX   rZ   r[   r   r   r   r   <module>   sP    



