U
    ½mœd`Ø  ã                   @   sü  d 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Z ddl	m
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ZmZ ddlmZ dd	lmZmZmZmZ dd
lmZ ddlm Z m!Z!m"Z"m#Z# dZ$dZ%G dd„ dƒZ&eedd�Zdd„ Z'eej( )ddddidddfddddœdddfdddidddfddddœdddfdddid d!dfdd"ddœd d!dfd#dd#id$d%d&fd'dd'id(d)dfd'd*d+id(d)dfd,dd,id!d-dfd,d*d.id!d-dfd/dd/id0d$dfg¡ej( )d1d2d3g¡ej( )d4dd5g¡d6d7„ ƒƒƒƒZ*eej( )ddddidddfddddœdddfdddidddfddddœdddfdddid d!dfdd"ddœd d!dfd#dd#id$d%d&fd'dd'id(d)dfd'd*d+id(d)dfd,dd,id!d-dfd,d*d.id!d-dfg¡ej( )d1d2d3g¡d8d9„ ƒƒƒZ+eej( )ddd'd/g¡d:d;„ ƒƒZ,eej( )d1d2d3g¡d<d=„ ƒƒZ-eej( )d1d2d3g¡d>d?„ ƒƒZ.eej( )d1d2d3g¡ej( )d@dAdAdBgg¡dCdD„ ƒƒƒZ/eej( )ddddd#d'g¡ej( )d1d2d3g¡dEdF„ ƒƒƒZ0eej( )dddd#d'g¡ej( )d1d2d3g¡dGdH„ ƒƒƒZ1edIdJ„ ƒZ2ej3dKdL�dMdN„ ƒZ4ej3dKdL�dOdP„ ƒZ5eej( )dQdRdSdTdUdVdWdXdYdZd[d\d]d^d_g¡ej( )d4dd5g¡d`da„ ƒƒƒZ6ej( 7db¡ej( )dcd1ddidefdfddidgfg¡dhdi„ ƒƒZ8ej( )djddkdlœdkdkdlœd5d3dlœg¡dmdn„ ƒZ9dodp„ Z:ej( 7dq¡ej( 7db¡ej( )dcd1d3idrfdfdidsfd3ddtœdsfg¡dudv„ ƒƒƒZ;eej( 7dq¡ej( )dwdxdyg¡dzd{„ ƒƒƒZ<ed|d}„ ƒZ=ej( )d4dd5g¡d~d„ ƒZ>ej( )d4dd5g¡d€d�„ ƒZ?ej( )d4dd5g¡ej( )d1d2d3g¡d‚dƒ„ ƒƒZ@ej( )d4dd5g¡ej( )d„dd…idd†dd‡œg¡dˆd‰„ ƒƒZAej( )d4dd5g¡ej( )dŠd…d*d†ieBd‹fdddŒd�gdŽœeBd�fd/d/d5d�œeBd‘fddd’dd“œeBd”fddd’d5d“œeBd”fddd•dŽœeCd–fddd•d�gdŽœeCd–fg¡ej( )d1d2d3g¡d—d˜„ ƒƒƒZDej( )d™dšdd›d‡œeBdœfdšd�džœeBdŸfdšd�d›d‡œeBdŸfi eBd fg¡d¡d¢„ ƒZEej( )d4dd5g¡d£d¤„ ƒZFej( )d4dd5g¡d¥d¦„ ƒZGej( )d4dd5g¡d§d¨„ ƒZHej( )d4dd5g¡d©dª„ ƒZIej( )d«dd5g¡d¬d­„ ƒZJd®d¯„ ZKd°d±„ ZLej( )d4dd5g¡d²d³„ ƒZMeej( )d´dµd¶d·d¸g¡d¹dº„ ƒƒZNd»d¼„ ZOej( )d4dd5g¡ej( )d1d½¡d¾d¿„ ƒƒZPdÀdÁ„ ZQdÂdÃ„ ZRdÄdÅ„ ZSdÆdÇ„ ZTdS )ÈzTest the openml loader.é    N)Úpartial)ÚBytesIO©Ú	HTTPError)Úconfig_context)ÚBunchÚcheck_pandas_support)Ú_open_binary)ÚSkipTestÚassert_allcloseÚassert_array_equalÚfails_if_pypy)Úfetch_openml)Ú_OPENML_PREFIXÚ_open_openml_urlÚ_get_local_pathÚ_retry_with_clean_cachez"sklearn.datasets.tests.data.openmlTc                   @   sF   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )Ú_MockHTTPResponsec                 C   s   || _ || _d S ©N)ÚdataÚis_gzip)Úselfr   r   © r   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/datasets/tests/test_openml.pyÚ__init__(   s    z_MockHTTPResponse.__init__éÿÿÿÿc                 C   s   | j  |¡S r   )r   Úread)r   Úamtr   r   r   r   ,   s    z_MockHTTPResponse.readc                 C   s   | j  ¡  d S r   )r   Úclose©r   r   r   r   r   /   s    z_MockHTTPResponse.closec                 C   s   | j rddiS i S )NzContent-EncodingÚgzip©r   r   r   r   r   Úinfo2   s    z_MockHTTPResponse.infoc                 C   s
   t | jƒS r   )Úiterr   r   r   r   r   Ú__iter__7   s    z_MockHTTPResponse.__iter__c                 C   s   | S r   r   r   r   r   r   Ú	__enter__:   s    z_MockHTTPResponse.__enter__c                 C   s   dS )NFr   )r   Úexc_typeÚexc_valÚexc_tbr   r   r   Ú__exit__=   s    z_MockHTTPResponse.__exit__N)r   )
Ú__name__Ú
__module__Ú__qualname__r   r   r   r"   r$   r%   r)   r   r   r   r   r   '   s   
r   )Ú	data_homec                    sº   d‰
d‰d‰d‰d‰t j‰	td d|› � ‰‡fdd	„‰ ‡ ‡‡‡	fd
d„‰‡‡
fdd„‰‡‡fdd„‰‡‡fdd„‰‡ ‡‡	‡fdd„‰‡‡‡‡‡
‡‡‡fdd„}tr¶|  tjjd|¡ d S )Nz$https://openml.org/api/v1/json/data/z-https://openml.org/api/v1/json/data/features/zhttps://openml.org/data/v1/z)https://openml.org/api/v1/json/data/list/z.gzÚ.Úid_c                    s~   t  dd| tdƒd … ¡| ˆ  }| dd¡ dd¡ dd	¡ d
d¡ dd¡ dd¡ dd¡ dd¡ dd¡ dd¡ dd¡S )Nz\Wú-zhttps://openml.org/z-json-data-listz-jdlz-json-data-featuresz-jdfz-json-data-qualitiesz-jdqz
-json-dataz-jdz
-data_namez-dnz	-downloadz-dlz-limitz-lz-data_versionz-dvz-statusz-sz-deactivatedz-dactz-activez-act)ÚreÚsubÚlenÚreplace)ÚurlÚsuffixÚoutput)Úpath_suffixr   r   Ú
_file_nameV   sD     ÿ ÿ þ ý ü û ú ù ø	 ÷
 öÿz4_monkey_patch_webbased_functions.<locals>._file_namec              
      sˆ   |   |¡st‚ˆ | |ƒ}tˆ|ƒ�\}|rNˆrNt| ¡ ƒ}t|dƒW  5 Q R £ S ˆ|dƒ}t| ¡ ƒ}t|dƒW  5 Q R £ S W 5 Q R X d S )NTÚrbF)Ú
startswithÚAssertionErrorr	   r   r   r   )r5   Úhas_gzip_headerÚexpected_prefixr6   Údata_file_nameÚfÚfpÚdecompressed_f)r9   Údata_moduleÚgzip_responseÚread_fnr   r   Ú_mock_urlopen_sharedj   s    

z>_monkey_patch_webbased_functions.<locals>._mock_urlopen_sharedc                    s   ˆ | |ˆdd�S ©Nú.json©r5   r=   r>   r6   r   ©r5   r=   )rF   Úurl_prefix_data_descriptionr   r   Ú_mock_urlopen_data_descriptionx   s    üzH_monkey_patch_webbased_functions.<locals>._mock_urlopen_data_descriptionc                    s   ˆ | |ˆdd�S rG   r   rJ   )rF   Úurl_prefix_data_featuresr   r   Ú_mock_urlopen_data_features€   s    üzE_monkey_patch_webbased_functions.<locals>._mock_urlopen_data_featuresc                    s   ˆ | |ˆdd�S )Nz.arffrI   r   rJ   )rF   Úurl_prefix_download_datar   r   Ú_mock_urlopen_download_dataˆ   s    üzE_monkey_patch_webbased_functions.<locals>._mock_urlopen_download_datac              
      sÖ   |   ˆ¡st‚ˆ | dƒ}tˆ|ƒ�(}ˆ|dƒ}| ¡  d¡}t |¡}W 5 Q R X d|krjtd ddd d d�‚tˆ|ƒ�X}|rœt| ¡ ƒ}t	|dƒW  5 Q R £ S ˆ|dƒ}t| ¡ ƒ}t	|d	ƒW  5 Q R £ S W 5 Q R X d S )
NrH   r:   zutf-8Úerroréœ  úSimulated mock error©r5   ÚcodeÚmsgÚhdrsrA   TF)
r;   r<   r	   r   ÚdecodeÚjsonÚloadsr   r   r   )r5   r=   r?   r@   rB   Z	decoded_sZ	json_datarA   )r9   rC   rE   Úurl_prefix_data_listr   r   Ú_mock_urlopen_data_list�   s*    

    ÿ
zA_monkey_patch_webbased_functions.<locals>._mock_urlopen_data_listc                    sv   |   ¡ }|  d¡dk}| ˆ¡r*ˆ||ƒS | ˆ¡r>ˆ||ƒS | ˆ¡rRˆ||ƒS | ˆ¡rfˆ ||ƒS td| ƒ‚d S )NzAccept-encodingr    zUnknown mocking URL pattern: %s)Úget_full_urlÚ
get_headerr;   Ú
ValueError)ÚrequestÚargsÚkwargsr5   r=   )rL   rN   r\   rP   rK   rM   r[   rO   r   r   Ú_mock_urlopen¨   s    







z7_monkey_patch_webbased_functions.<locals>._mock_urlopenÚurlopen)r    ÚopenÚOPENML_TEST_DATA_MODULEÚtest_offlineÚsetattrÚsklearnÚdatasetsÚ_openml)ÚcontextÚdata_idrD   rc   r   )r9   rL   rN   r\   rP   rF   rC   rD   r8   rE   rK   rM   r[   rO   r   Ú _monkey_patch_webbased_functionsH   s     rn   z9data_id, dataset_params, n_samples, n_features, n_targetsé=   rm   é–   é   é   Úiris)ÚnameÚversioné   é   é&   Zannealé1  éÑ   é   Úcpué�ž  é   éH   é   é_  é
   é   rt   zadult-censusé   éM   ZMiceProteinéñŸ  i  Úparserú	liac-arffÚpandasrD   Fc           
      C   s
  t  d¡}t| ||d� tf dd|dœ|—Ž}	t|	jd ƒ|ksDt‚t|	tƒsRt‚t|	j	|j
ƒsdt‚|	j	j||| fks|t‚t|	j|j
ƒsŽt‚|	jj||fks¢t‚|dkrÐt|	j|jƒs¼t‚|	jj|fksöt‚n&t|	j|j
ƒsât‚|	jj||fksöt‚|	jdk�st‚dS )	zŒCheck the behaviour of `fetch_openml` with `as_frame=True`.

    Fetch by ID and/or name (depending if the file was previously cached).
    r‰   ©rD   TF©Úas_frameÚcacher‡   Úidrr   N)ÚpytestÚimportorskiprn   r   ÚintÚdetailsr<   Ú
isinstancer   ÚframeÚ	DataFrameÚshaper   ÚtargetÚSeriesÚ
categories)
Úmonkeypatchrm   Údataset_paramsÚ	n_samplesÚ
n_featuresÚ	n_targetsr‡   rD   ÚpdÚbunchr   r   r   Útest_fetch_openml_as_frame_trueÀ   s*    )
ýür¡   c                 C   sÜ   t  d¡ t| |dd� tf dd|dœ|—Ž}t|jd ƒ|ksDt‚t|tƒsRt‚|j	dks`t‚t|j
tjƒsrt‚|j
j||fks†t‚t|jtjƒs˜t‚|dkr´|jj|fksÈt‚n|jj||fksÈt‚t|jtƒsØt‚dS )	znCheck the behaviour of `fetch_openml` with `as_frame=False`.

    Fetch both by ID and/or name + version.
    r‰   TrŠ   Fr‹   rŽ   Nrr   )r�   r�   rn   r   r‘   r’   r<   r“   r   r”   r   ÚnpZndarrayr–   r—   r™   Údict)rš   rm   r›   rœ   r�   rž   r‡   r    r   r   r   Ú test_fetch_openml_as_frame_false  s&    %
ýür¤   c           
         s¸   t  d¡‰t| |dd� t|dddd�}t|dddd�}|j|j }‰ ‡ ‡fdd„}| |¡}ˆj |ˆ ¡ |j|j }‰ˆj ˆ|j	 ˆ ¡ ‡‡fd	d
„}| |¡}	ˆj |	ˆ¡ dS )z:Check the consistency of the LIAC-ARFF and pandas parsers.r‰   TrŠ   Frˆ   ©rm   rŒ   r�   r‡   c                    s,   ˆ | j  }ˆjj |¡r$|  |j¡S | S d S r   )rt   ÚapiÚtypesÚis_numeric_dtypeÚastypeÚdtype©ZseriesZpandas_series)Údata_pandasrŸ   r   r   Úconvert_numerical_dtypesb  s    
zFtest_fetch_openml_consistency_parser.<locals>.convert_numerical_dtypesc                    sJ   ˆ | j  }ˆjj |¡r$|  |j¡S ˆjj |¡rB| j |jj	¡S | S d S r   )
rt   r¦   r§   r¨   r©   rª   Zis_categorical_dtypeÚcatZrename_categoriesr™   r«   )Úframe_pandasrŸ   r   r   Ú(convert_numerical_and_categorical_dtypesv  s    
zVtest_fetch_openml_consistency_parser.<locals>.convert_numerical_and_categorical_dtypesN)
r�   r�   rn   r   r   ÚapplyÚtestingÚassert_frame_equalr”   Úfeature_names)
rš   rm   Z
bunch_liacÚbunch_pandasZ	data_liacr­   Zdata_liac_with_fixed_dtypesZ
frame_liacr°   Zframe_liac_with_fixed_dtypesr   )r¬   r¯   rŸ   r   Ú$test_fetch_openml_consistency_parserI  s2    
üü

ÿr¶   c                 C   s\   t  d¡ d}t| |dd� t|dd|d�}t|dd|d�}t|j|jƒ t|j|jƒ dS )z^Check the equivalence of the dataset when using `as_frame=False` and
    `as_frame=True`.
    r‰   ro   TrŠ   Fr¥   N)r�   r�   rn   r   r   r   r   r—   )rš   r‡   rm   Zbunch_as_frame_trueZbunch_as_frame_falser   r   r   Ú-test_fetch_openml_equivalence_array_dataframeŒ  s"    
üür·   c                 C   s„  t  d¡}|jjj}d}d}d}d}|dddgƒ}tjgd	 }	d
dddg}
d}t| |dƒ t|dd|d�}|j	}|j
}|j}t||jƒsŒt‚t |j|	k¡s t‚|j|ks®t‚t |j|
k¡sÂt‚t |j|
k¡sÖt‚|j|gksæt‚t||jƒsöt‚|j|k�st‚|j|k�st‚|j|k�s&t‚|jj�s4t‚t||jƒ�sFt‚|j|k�sVt‚t |j|	|g k¡�srt‚|jj�s€t‚dS )z>Check fetching on a numerical only dataset with string labels.r‰   ro   ©rp   rq   )rp   )rp   é   zIris-setosazIris-versicolorzIris-virginicarq   ÚsepallengthÚ
sepalwidthÚpetallengthÚ
petalwidthÚclassTFr¥   N)r�   r�   r¦   r§   ÚCategoricalDtyper¢   Zfloat64rn   r   r   r—   r”   r“   r•   r<   ÚallÚdtypesr–   Úcolumnsr´   Ztarget_namesr˜   rª   rt   ÚindexZ	is_unique)rš   r‡   rŸ   r¿   rm   Z
data_shapeZtarget_shapeZframe_shapeZtarget_dtypeZdata_dtypesZ
data_namesZtarget_namer    r   r—   r”   r   r   r   Útest_fetch_openml_iris_pandasª  sJ    

ÿürÄ   Útarget_columnr½   r¼   c                 C   s¦   t  d¡}d}t| |dƒ t|dd||d�}t|dd|d�}|j |j|j¡ t|tƒr‚|j 	|j
j| |¡¡ |jjdks¢t‚n |j
j|ks’t‚|jjdks¢t‚d	S )
z@Check that we can force the target to not be the default target.r‰   ro   TF)rm   rŒ   r�   rÅ   r‡   r¥   )rp   é   r¸   N)r�   r�   rn   r   r²   r³   r”   r“   ÚlistZassert_index_equalr—   rÂ   ÚIndexr   r–   r<   rt   )rš   r‡   rÅ   rŸ   rm   Zbunch_forcing_targetZbunch_defaultr   r   r   Ú!test_fetch_openml_forcing_targetsÝ  s2    
ûü
 ÿrÉ   c                 C   s‚   t  d¡}t| |dd� t|ddd|d�}t|ddd|d�\}}|j |j|¡ t||jƒrn|j 	|j
|¡ n|j |j
|¡ dS )z>Check the behaviour of `return_X_y=True` when `as_frame=True`.r‰   TrŠ   F©rm   rŒ   r�   Ú
return_X_yr‡   N)r�   r�   rn   r   r²   r³   r   r“   r˜   Úassert_series_equalr—   )rš   rm   r‡   rŸ   r    ÚXÚyr   r   r   Ú.test_fetch_openml_equivalence_frame_return_X_y  s(    
ûû
rÏ   c                 C   s\   t  d¡ t| |dd� t|ddd|d�}t|ddd|d�\}}t|j|ƒ t|j|ƒ dS )z?Check the behaviour of `return_X_y=True` when `as_frame=False`.r‰   TrŠ   FrÊ   N)r�   r�   rn   r   r   r   r—   )rš   rm   r‡   r    rÍ   rÎ   r   r   r   Ú.test_fetch_openml_equivalence_array_return_X_y!  s$    
ûû
rÐ   c                 C   sf   t  d¡ d}t| |dd� d}t||ddd�}t||ddd�}|jjjdksRt‚|jjd	ksbt‚d
S )z9Check the difference between liac-arff and pandas parser.r‰   r�   TrŠ   Frˆ   r¥   r@   ÚON)r�   r�   rn   r   r   rª   Úkindr<   )rš   rm   rŒ   Zbunch_liac_arffrµ   r   r   r   Ú$test_fetch_openml_difference_parsers>  s$    
üürÓ   Úmodule)Úscopec                S   C   sî  dddddgdddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+dg'd,d-d.d/d0d1d2dgd3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€gNd�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽdgd�d�d‘d’d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdgNdÜdÝdÞdßd�dàdádâdãdädådædçdègdéœS )êz+Returns the columns names for each dataset.rº   r»   r¼   r½   r¾   Úfamilyzproduct-typeZsteelZcarbonZhardnessÚtemper_rollingÚ	conditionÚformabilityZstrengthú
non-ageingúsurface-finishzsurface-qualityÚenamelabilityÚbcÚbfÚbtúbw%2FmeÚblÚmÚchromÚphosÚcbondÚmarviÚexptlÚferroÚcorrúblue%2Fbright%2Fvarn%2FcleanÚlustreÚjurofmÚsÚpr–   ZthickÚwidthr3   ÚoilZboreÚpackingÚvendorZMYCTZMMINZMMAXZCACHZCHMINZCHMAXZ Mean_Acc1298_Mean_Mem40_CentroidZMean_Acc1298_Mean_Mem40_RolloffZMean_Acc1298_Mean_Mem40_FluxZMean_Acc1298_Mean_Mem40_MFCC_0ZMean_Acc1298_Mean_Mem40_MFCC_1ZMean_Acc1298_Mean_Mem40_MFCC_2ZMean_Acc1298_Mean_Mem40_MFCC_3ZMean_Acc1298_Mean_Mem40_MFCC_4ZMean_Acc1298_Mean_Mem40_MFCC_5ZMean_Acc1298_Mean_Mem40_MFCC_6ZMean_Acc1298_Mean_Mem40_MFCC_7ZMean_Acc1298_Mean_Mem40_MFCC_8ZMean_Acc1298_Mean_Mem40_MFCC_9ZMean_Acc1298_Mean_Mem40_MFCC_10ZMean_Acc1298_Mean_Mem40_MFCC_11ZMean_Acc1298_Mean_Mem40_MFCC_12ZMean_Acc1298_Std_Mem40_CentroidZMean_Acc1298_Std_Mem40_RolloffZMean_Acc1298_Std_Mem40_FluxZMean_Acc1298_Std_Mem40_MFCC_0ZMean_Acc1298_Std_Mem40_MFCC_1ZMean_Acc1298_Std_Mem40_MFCC_2ZMean_Acc1298_Std_Mem40_MFCC_3ZMean_Acc1298_Std_Mem40_MFCC_4ZMean_Acc1298_Std_Mem40_MFCC_5ZMean_Acc1298_Std_Mem40_MFCC_6ZMean_Acc1298_Std_Mem40_MFCC_7ZMean_Acc1298_Std_Mem40_MFCC_8ZMean_Acc1298_Std_Mem40_MFCC_9ZMean_Acc1298_Std_Mem40_MFCC_10ZMean_Acc1298_Std_Mem40_MFCC_11ZMean_Acc1298_Std_Mem40_MFCC_12ZStd_Acc1298_Mean_Mem40_CentroidZStd_Acc1298_Mean_Mem40_RolloffZStd_Acc1298_Mean_Mem40_FluxZStd_Acc1298_Mean_Mem40_MFCC_0ZStd_Acc1298_Mean_Mem40_MFCC_1ZStd_Acc1298_Mean_Mem40_MFCC_2ZStd_Acc1298_Mean_Mem40_MFCC_3ZStd_Acc1298_Mean_Mem40_MFCC_4ZStd_Acc1298_Mean_Mem40_MFCC_5ZStd_Acc1298_Mean_Mem40_MFCC_6ZStd_Acc1298_Mean_Mem40_MFCC_7ZStd_Acc1298_Mean_Mem40_MFCC_8ZStd_Acc1298_Mean_Mem40_MFCC_9ZStd_Acc1298_Mean_Mem40_MFCC_10ZStd_Acc1298_Mean_Mem40_MFCC_11ZStd_Acc1298_Mean_Mem40_MFCC_12ZStd_Acc1298_Std_Mem40_CentroidZStd_Acc1298_Std_Mem40_RolloffZStd_Acc1298_Std_Mem40_FluxZStd_Acc1298_Std_Mem40_MFCC_0ZStd_Acc1298_Std_Mem40_MFCC_1ZStd_Acc1298_Std_Mem40_MFCC_2ZStd_Acc1298_Std_Mem40_MFCC_3ZStd_Acc1298_Std_Mem40_MFCC_4ZStd_Acc1298_Std_Mem40_MFCC_5ZStd_Acc1298_Std_Mem40_MFCC_6ZStd_Acc1298_Std_Mem40_MFCC_7ZStd_Acc1298_Std_Mem40_MFCC_8ZStd_Acc1298_Std_Mem40_MFCC_9ZStd_Acc1298_Std_Mem40_MFCC_10ZStd_Acc1298_Std_Mem40_MFCC_11ZStd_Acc1298_Std_Mem40_MFCC_12ZBH_LowPeakAmpZBH_LowPeakBPMZBH_HighPeakAmpZBH_HighPeakBPMZBH_HighLowRatioZBHSUM1ZBHSUM2ZBHSUM3zamazed.suprisedzhappy.pleasedzrelaxing.calmzquiet.stillz
sad.lonelyzangry.aggresiveÚageZ	workclasszfnlwgt:z
education:zeducation-num:zmarital-status:zoccupation:zrelationship:zrace:zsex:zcapital-gain:zcapital-loss:zhours-per-week:znative-country:ZDYRK1A_NZITSN1_NZBDNF_NZNR1_NZNR2A_NZpAKT_NZpBRAF_NZ	pCAMKII_NZpCREB_NZpELK_NZpERK_NZpJNK_NZPKCA_NZpMEK_NZpNR1_NZpNR2A_NZpNR2B_NZpPKCAB_NZpRSK_NZAKT_NZBRAF_NZCAMKII_NZCREB_NZELK_NZERK_NZGSK3B_NZJNK_NZMEK_NZTRKA_NZRSK_NZAPP_NZ
Bcatenin_NZSOD1_NZMTOR_NZP38_NZpMTOR_NZDSCR1_NZAMPKA_NZNR2B_NZpNUMB_NZRAPTOR_NZTIAM1_NZpP70S6_NÚNUMB_NZP70S6_NZpGSK3B_NZpPKCG_NZCDK5_NZS6_NZADARB1_NZAcetylH3K9_NZRRP1_NZBAX_NZARC_NZERBB4_NZnNOS_NZTau_NZGFAP_NZGluR3_NZGluR4_NZIL1B_NZP3525_NZpCASP9_NZPSD95_NZSNCA_NZUbiquitin_NZpGSK3B_Tyr216_NZSHH_NZBAD_NÚBCL2_NZpS6_NZpCFOS_NZSYP_NZ	H3AcK18_NZEGR1_NZH3MeK4_NZCaNA_NZpclassZsurvivedrt   ÚsexZsibspZparchÚticketÚfareÚcabinÚembarkedÚboatÚbodyú	home.dest©ro   rv   ry   r}   r�   r„   r†   r   r   r   r   r   Údatasets_column_names^  sÒ   Ù)²Qñ²Qò€ £rÿ   c                   C   s`   i ddddddddddddddddddddddddddddœi i i dd	id
dddddddœdœS )Nrw   é	   rv   rq   r‚   é   )rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rð   rñ   rõ   r{   i  rr   iö  i7  i¤  i4  )ró   rø   rù   rú   rû   rü   rý   rþ   r   r   r   r   r   Údatasets_missing_valuesQ  sT    åùÝr  zJdata_id, parser, expected_n_categories, expected_n_floats, expected_n_ints)ro   rˆ   rr   rq   r   )ro   r‰   rr   rq   r   )rv   rˆ   é!   r€   r   )rv   r‰   r  rv   rq   )ry   rˆ   rr   r{   r   )ry   r‰   rr   r   r{   )r}   rˆ   r€   r   r   )r}   r‰   r€   éE   rÆ   )r�   rˆ   r   r€   r   )r�   r‰   r   r   r€   )r„   rˆ   rr   éL   r   )r„   r‰   rr   r…   r   )r†   rˆ   rÆ   r¹   r   )r†   r‰   rÆ   rÆ   rÆ   c	                    sô   t  d¡}	|	jjj‰ t| ||d� t|dd|d�}
|
j}t‡ fdd„|j	D ƒƒ}tdd„ |j	D ƒƒ}td	d„ |j	D ƒƒ}||ks„t
‚||ks�t
‚||ksœt
‚|j ¡ || ks²t
‚| ¡  ¡  ¡ }| ¡ D ]$\}}||  |d
¡}||ksÊt
‚qÊdS )zYCheck that `fetch_openml` infer the right number of categories, integers, and
    floats.r‰   rŠ   TFr¥   c                    s   g | ]}t |ˆ ƒr|‘qS r   )r“   ©Ú.0rª   ©r¿   r   r   Ú
<listcomp>½  s     
 z5test_fetch_openml_types_inference.<locals>.<listcomp>c                 S   s   g | ]}|j d kr|‘qS )r@   ©rÒ   r  r   r   r   r	  ¿  s     
 c                 S   s   g | ]}|j d kr|‘qS )Úir
  r  r   r   r   r	  À  s     
 r   N)r�   r�   r¦   r§   r¿   rn   r   r”   r3   rÁ   r<   rÂ   ÚtolistÚisnaÚsumÚto_dictÚitemsÚget)rš   rm   r‡   Zexpected_n_categoriesZexpected_n_floatsZexpected_n_intsrD   rÿ   r  rŸ   r    r”   Zn_categoriesZn_floatsZn_intsZframe_feature_to_n_nanrt   Z	n_missingZexpected_missingr   r  r   Ú!test_fetch_openml_types_inference„  s.    +

üÿr  z0ignore:The default value of `parser` will changezparams, err_msgÚunknownz`parser` must be one ofrŒ   z`as_frame` must be one ofc              	   C   s@   d}t | |dƒ tjt|d�� tf d|i|—Ž W 5 Q R X d S )Nr�   T©Úmatchrm   )rn   r�   Úraisesr_   r   ©rš   ÚparamsÚerr_msgrm   r   r   r   Ú&test_fetch_openml_validation_parameterÒ  s    	r  r  Úauto©rŒ   r‡   c                 C   sn   d}zt dƒ W nP tk
r`   t| |dƒ d}tjt|d�� tf d|i|—Ž W 5 Q R X Y n
X tdƒ‚dS )	z=Check that we raise the proper errors when we require pandas.r�   Ú!test_fetch_openml_requires_pandasTz;requires pandas to be installed. Alternatively, explicitelyr  rm   ú.This test requires pandas to not be installed.N)r   ÚImportErrorrn   r�   r  r   r
   )rš   r  rm   r  r   r   r   Ú'test_fetch_openml_requires_pandas_errorá  s    
"r   c                 C   sx   dddœ}d}zt dƒ W nP tk
rj   t| |dƒ d}tjt|d�� tf d	|i|—Ž W 5 Q R X Y n
X td
ƒ‚dS )zICheck that we raise a warning that pandas will be required in the future.Fr  r  r�   r  TzGFrom version 1.4, `parser='auto'` with `as_frame=False` will use pandasr  rm   r  N)r   r  rn   r�   ÚwarnsÚFutureWarningr   r
   )rš   r  rm   Úwarn_msgr   r   r   Ú+test_fetch_openml_requires_pandas_in_futureø  s    
ÿ"r$  z2ignore:Version 1 of dataset Australian is inactivez:Sparse ARFF datasets cannot be loaded with parser='pandas'z9Sparse ARFF datasets cannot be loaded with as_frame=True.)r‡   rŒ   c              	   C   sL   t  d¡ d}t| |dƒ t jt|d�� tf |ddœ|—Ž W 5 Q R X dS )ztCheck that we raise the expected error for sparse ARFF datasets and
    a wrong set of incompatible parameters.
    r‰   é$  Tr  F)rm   r�   N)r�   r�   rn   r  r_   r   r  r   r   r   Ú#test_fetch_openml_sparse_arff_error	  s    
þýr&  zdata_id, data_type)ro   Ú	dataframe)r%  Úsparsec                 C   sP   t  d¡}t| |dƒ t|dddd�}|dkr4|jntjj}t|j	|ƒsLt
‚dS )z&Check the auto mode of `fetch_openml`.r‰   Tr  F)rm   rŒ   r‡   r�   r'  N)r�   r�   rn   r   r•   Úscipyr(  Z
csr_matrixr“   r   r<   )rš   rm   Z	data_typerŸ   r   Úklassr   r   r   Útest_fetch_openml_auto_mode/  s
    
r+  c              
   C   sb   t  d¡ d}t| |dƒ d}t jt|d��, tdd�� t|ddd	d
� W 5 Q R X W 5 Q R X dS )z[Check that we raise a warning regarding the working memory when using
    LIAC-ARFF parser.r‰   r�   Tz*Could not adhere to working_memory config.r  g�íµ ÷Æ°>)Zworking_memoryFrˆ   r¥   N)r�   r�   rn   r!  ÚUserWarningr   r   )rš   rm   rV   r   r   r   Ú:test_convert_arff_data_dataframe_warning_low_memory_pandasD  s    
ür-  c              	   C   sF   d}d}t | ||ƒ d}tjt|d�� t|dddd� W 5 Q R X dS )	z\Check that a warning is raised when multiple versions exist and no version is
    requested.ro   rs   zƒMultiple active versions of the dataset matching the name iris exist. Versions may be fundamentally different, returning version 1.r  Frˆ   )rt   rŒ   r�   r‡   N©rn   r�   r!  r,  r   )rš   rD   rm   Z	data_namerV   r   r   r   Ú,test_fetch_openml_iris_warn_multiple_versionX  s    ÿür/  c                 C   sT   d}d}d}d}t | ||ƒ t||dddd�}|jj||fksBt‚|jdksPt‚dS )z/Check that we can get a dataset without target.ro   Nrp   r¹   Frˆ   ©rm   rÅ   r�   rŒ   r‡   )rn   r   r   r–   r<   r—   )rš   rD   rm   rÅ   Zexpected_observationsZexpected_featuresr   r   r   r   Útest_fetch_openml_no_targeto  s    ûr1  c                 C   sd   t  d¡ d}t| ||d� t|dd|d�}|jjd }|jd  ¡  ¡ sNt‚t	|j
dd	d
gƒ dS )zRcheck that missing values in categories are compatible with pandas
    categoricalr‰   iY¦  rŠ   FT©rm   r�   rŒ   r‡   rö   ZFEMALEZMALEÚ_N)r�   r�   rn   r   r   rÁ   r  Úanyr<   r   r™   )rš   rD   r‡   rm   ZpenguinsZ	cat_dtyper   r   r   Útest_missing_values_pandasƒ  s    
ür5  r›   éãž  Úglass2)rm   rt   ru   c              	   C   sj   d}t | ||ƒ d}tjt|d�� tf ddddœ|—Ž}W 5 Q R X |jjdksTt‚|jd d	ksft‚d
S )z;Check that we raise a warning when the dataset is inactive.r6  z(Version 1 of dataset glass2 is inactive,r  Frˆ   )r�   rŒ   r‡   )é£   r   rŽ   Z40675N)	rn   r�   r!  r,  r   r   r–   r<   r’   )rš   rD   r›   rm   rV   r7  r   r   r   Útest_fetch_openml_inactive™  s    
  ÿÿr9  z"data_id, params, err_type, err_msgzNo active dataset glass2 foundr»   r¾   )rm   rÅ   z1Can only handle homogeneous multi-target datasets)rm   rŒ   zOSTRING attributes are not supported for array representation. Try as_frame=TruerÖ   )rm   rÅ   rŒ   zTarget column 'family'Ú	undefinedz(Could not find target_column='undefined'c              	   C   s\   t | ||ƒ | dd¡s |dkr*t d¡ tj||d�� tf d|dœ|—Ž W 5 Q R X d S )NrŒ   Tr‰   r  F)r�   r‡   )rn   r  r�   r�   r  r   )rš   rD   rm   r  Úerr_typer  r‡   r   r   r   Útest_fetch_openml_error®  s
    0
r<  zparams, err_type, err_msgr   ru   z?Dataset data_id=-1 and version=version passed, but you can onlyZnAmE)rm   rt   z9Dataset data_id=-1 and name=name passed, but you can onlyzFNeither name nor data_id are provided. Please provide name or data_id.c              	   C   s(   t j||d�� tf | Ž W 5 Q R X d S )Nr  )r�   r  r   )r  r;  r  r   r   r   Ú)test_fetch_openml_raises_illegal_argumentå  s    r=  c              	   C   s  d}d}d}t | ||ƒ d}| |¡}tjt|d�� t||dddd� W 5 Q R X d	}| |¡}tjt|d�� t||dddd� W 5 Q R X d}| |¡}tjt|d�� t||d
gdddd� W 5 Q R X d	}| |¡}tjt|d�� t||d
gdddd� W 5 Q R X d S )Nr„   z.target_column='{}' has flag is_row_identifier.z&target_column='{}' has flag is_ignore.ZMouseIDr  Frˆ   r0  ZGenotyper¾   )rn   Úformatr�   r!  r,  r   )rš   rD   rm   Zexpected_row_id_msgZexpected_ignore_msgZ
target_colrV   r   r   r   Útest_warn_ignore_attribute  sX    
û
û
û
ûr?  c              	   C   sB   d}t | ||ƒ d}tjt|d�� t|dddd� W 5 Q R X d S )Nrr   zJOpenML registered a problem with the dataset. It might be unusable. Error:r  Frˆ   r2  r.  ©rš   rD   rm   rV   r   r   r   Útest_dataset_with_openml_error5  s
    rA  c              	   C   sB   d}t | ||ƒ d}tjt|d�� t|dddd� W 5 Q R X d S )NrÆ   zFOpenML raised a warning on the dataset. It might be unusable. Warning:r  Frˆ   r2  r.  r@  r   r   r   Ú test_dataset_with_openml_warning>  s
    rB  c           	      C   st   d}t | ||ƒ tjjj |¡}t| d¡ƒ}t||ƒ}t	||ƒ}t
j |¡sRt‚t||ƒ}| ¡ | ¡ kspt‚d S )Nro   Úscikit_learn_data)rn   ri   rj   rk   Ú
_DATA_FILEr>  ÚstrÚmkdirr   r   ÚosÚpathÚisfiler<   r   )	rš   rD   Útmpdirrm   Úopenml_pathÚcache_directoryZ	response1ÚlocationZ	response2r   r   r   Útest_open_openml_url_cacheK  s    


rN  Úwrite_to_diskc              	      s„   d}t jjj |¡}t| d¡ƒ}t||ƒ‰ ‡ ‡fdd„}|  t jjd|¡ t	j
tdd�� t||ƒ W 5 Q R X tj ˆ ¡r€t‚d S )Nro   rC  c              	      s0   ˆr$t ˆ dƒ�}| d¡ W 5 Q R X tdƒ‚d S )NÚwÚ úInvalid request)re   Úwriter_   )r`   ra   rb   r@   ©rM  rO  r   r   rc   c  s    z>test_open_openml_url_unlinks_local_path.<locals>._mock_urlopenrd   rR  r  )ri   rj   rk   rD  r>  rE  rF  r   rh   r�   r  r_   r   rG  rH  Úexistsr<   )rš   rJ  rO  rm   rK  rL  rc   r   rT  r   Ú'test_open_openml_url_unlinks_local_path\  s    
rV  c              	      s¨   d}t jjj |¡}t|  d¡ƒ}t||ƒ‰ t 	tj
 ˆ ¡¡ tˆ dƒ�}| d¡ W 5 Q R X t||ƒ‡ fdd„ƒ}d}tjt|d�� |ƒ }W 5 Q R X |d	ks¤t‚d S )
Nro   rC  rP  rQ  c                      s   t j ˆ ¡rtdƒ‚dS )NzFile exist!rr   )rG  rH  rU  Ú	Exceptionr   ©rM  r   r   Ú
_load_data{  s    z/test_retry_with_clean_cache.<locals>._load_dataz!Invalid cache, redownloading filer  rr   )ri   rj   rk   rD  r>  rE  rF  r   rG  ÚmakedirsrH  Údirnamere   rS  r   r�   r!  ÚRuntimeWarningr<   )rJ  rm   rK  rL  r@   rY  r#  Úresultr   rX  r   Útest_retry_with_clean_cacheq  s    
r^  c              	   C   s\   d}t jjj |¡}t|  d¡ƒ}t||ƒdd„ ƒ}d}tj	t
|d�� |ƒ  W 5 Q R X d S )Nro   rC  c                   S   s   t d ddd d d�‚d S )NrR   rS   rT   r   r   r   r   r   rY  �  s        ÿz:test_retry_with_clean_cache_http_error.<locals>._load_datarS   r  )ri   rj   rk   rD  r>  rE  rF  r   r�   r  r   )rJ  rm   rK  rL  rY  Ú	error_msgr   r   r   Ú&test_retry_with_clean_cache_http_errorˆ  s    
r`  c           
      C   sˆ   dd„ }d}t | d¡ƒ}t| ||ƒ t|d|dddd�\}}|  tjjd	|¡ t|d|dddd�\}}	tj	 
||¡ tj	 
||	¡ d S )
Nc                 _   s   t d|  ¡  ƒ‚d S )NzhThis mechanism intends to test correct cachehandling. As such, urlopen should never be accessed. URL: %s)r_   r]   ©r`   ra   rb   r   r   r   Ú_mock_urlopen_raiseš  s
    ýÿz4test_fetch_openml_cache.<locals>._mock_urlopen_raisero   rC  TFrˆ   )rm   r�   r-   rË   rŒ   r‡   rd   )rE  rF  rn   r   rh   ri   rj   rk   r¢   r²   r   )
rš   rD   rJ  rb  rm   rL  Z	X_fetchedZ	y_fetchedZX_cachedZy_cachedr   r   r   Útest_fetch_openml_cache˜  s.    ú
	ú
rc  zas_frame, parser)Trˆ   )Frˆ   )Tr‰   )Fr‰   c              	      s  |s|dkrt  d¡ d}t| |dƒ td d|› � }d}|d ‰ t||ƒ�.}t |d¡}	t|	 ¡ ƒ}
d	|
t	|
ƒd
 < W 5 Q R X t 
ˆ d¡�}| |
¡ W 5 Q R X tjjj‰‡ ‡fdd„}|  tjjd|¡ t  t¡�}tjj|d||d� W 5 Q R X | d¡�st‚dS )z/Check that the checksum is working as expected.r‰   rv   Tr.   r/   zdata-v1-dl-1666876.arff.gzztest_invalid_checksum.arffr:   é%   rr   Úwbc              	      sL   |   ¡ }| d¡r@tˆ dƒ�}| ¡ }W 5 Q R X tt|ƒdd�S ˆ| ƒS d S )Nzdata/v1/download/1666876r:   Tr!   )r]   Úendswithre   r   r   r   )r`   ra   rb   r5   r@   Zcorrupted_data©Zcorrupt_copy_pathZmocked_openml_urlr   r   Úswap_file_mocká  s    
z9test_fetch_openml_verify_checksum.<locals>.swap_file_mockrd   Fr2  Z1666876N)r�   r�   rn   rf   r	   r    re   Ú	bytearrayr   r3   ÚGzipFilerS  ri   rj   rk   rd   rh   r  r_   r   r  r<   )rš   rŒ   r�   rJ  r‡   rm   Zoriginal_data_moduleZoriginal_data_file_nameZ	orig_fileZ	orig_gzipr   Zmodified_gziprh  Úexcr   rg  r   Ú!test_fetch_openml_verify_checksum¾  s0    

	   ÿrl  c              
   C   s†   dd„ }|   tjjd|¡ d}tjtt dt	| › d�¡d��>}tj
tdd�� t|d d	d
� W 5 Q R X t|ƒdksxt‚W 5 Q R X d S )Nc                 _   s   t dddd d ƒ‚d S )NrQ  i”  úSimulated network errorr   ra  r   r   r   Ú_mock_urlopen_network_errorö  s    zPtest_open_openml_url_retry_on_network_error.<locals>._mock_urlopen_network_errorrd   zinvalid-urlz+A network error occurred while downloading z. Retrying...r  rm  r   )ÚdelayrÆ   )rh   ri   rj   rk   r�   r!  r,  r1   Úescaper   r  r   r   r3   r<   )rš   rn  Zinvalid_openml_urlÚrecordr   r   r   Ú+test_open_openml_url_retry_on_network_errorõ  s"      ÿÿþrr  )rˆ   r‰   c                 C   sh   |dkrt  d¡ d}t| ||ƒ tjj|dd|d�}|dk	sBt‚|d jdksTt‚d|d	 ksdt‚dS )
z‰Check that we can load the "zoo" dataset.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/14340
    r‰   é>   Fr2  Nr   )ée   é   Zanimalr´   )r�   r�   rn   ri   rj   r   r<   r–   )rš   rD   r‡   rm   Zdatasetr   r   r   Ú&test_fetch_openml_with_ignored_feature  s    
   ÿrv  c                 C   s  t  d¡}d}t| |dd� dd|dœ}tf ddi|—Ž}tf ddi|—Ž}|j |j|j¡ |jj d	¡ 	¡ rtt
‚|jj d	¡ 	¡ rŠt
‚tf dd
dœ|—Ž}tf dd
dœ|—Ž}|j |jd |jd ¡ |jd j d	¡ 	¡ ræt
‚|jd j d	¡ 	¡ �rt
‚dS )z§Check that we strip the single quotes when used as a string delimiter.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/23381
    r‰   r„   F©rm   rD   T©rŒ   r�   rm   r‡   rˆ   ú'rô   )r‡   rÅ   r¾   N)r�   r�   rn   r   r²   rÌ   r—   rE  r;   r4  r<   rf  r”   )rš   rŸ   rm   Úcommon_paramsZmice_pandasZmice_liac_arffr   r   r   Útest_fetch_openml_strip_quotes%  s,    
 ÿÿ ÿr{  c                 C   sj   t  d¡}d}t| |dd� dd|dœ}tf ddi|—Ž}tf ddi|—Ž}|j |jd	 |jd	 ¡ d
S )z�Check that we can strip leading whitespace in pandas parser.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/25311
    r‰   i6  Frw  Trx  r‡   rˆ   r¾   N)r�   r�   rn   r   r²   rÌ   r”   ©rš   rŸ   rm   rz  Zadult_pandasZadult_liac_arffr   r   r   Ú$test_fetch_openml_leading_whitespaceB  s    
 ÿr}  c                 C   sb   t  d¡}d}t| |dd� dd|dœ}tf ddi|—Ž}tf ddi|—Ž}|j |j|j¡ d	S )
z¡Check that we can handle escapechar and single/double quotechar.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/25478
    r‰   iZ¤  Frw  Trx  r‡   rˆ   N)r�   r�   rn   r   r²   r³   r”   r|  r   r   r   Ú&test_fetch_openml_quotechar_escapecharT  s    
r~  c              	   C   sH   t  d¡ d}t| |dd� t jtdd�� tjj|d� W 5 Q R X dS )	z?Check that we raise a deprecation warning for parser parameter.r‰   ro   Frw  z)The default value of `parser` will changer  )rm   N)r�   r�   rn   r!  r"  ri   rj   r   )rš   rm   r   r   r   Ú$test_fetch_openml_deprecation_parserh  s
    
r  )UÚ__doc__r    rY   rG  r1   Ú	functoolsr   Úior   Úurllib.errorr   Únumpyr¢   Zscipy.sparser)  r�   ri   r   Zsklearn.utilsr   r   Zsklearn.utils.fixesr	   Zsklearn.utils._testingr
   r   r   r   Zsklearn.datasetsr   Zfetch_openml_origZsklearn.datasets._openmlr   r   r   r   rf   rg   r   rn   ÚmarkZparametrizer¡   r¤   r¶   r·   rÄ   rÉ   rÏ   rÐ   rÓ   Zfixturerÿ   r  r  Úfilterwarningsr  r   r$  r&  r+  r-  r/  r1  r5  r9  r_   ÚKeyErrorr<  r=  r?  rA  rB  rN  rV  r^  r`  rc  rl  rr  rv  r{  r}  r~  r  r   r   r   r   Ú<module>   s  xíþ-ïþ)A1!


 s

2éþ0


þþýþ


þþþ÷þ
þþ



þþüü
ü
üüüßþ+

ýý
ýýðþ

1




%üþ	-