U
    ½mœdó1  ã                	   @   sÜ  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Zd dlm	Z	 d dlm
Z
 d dlZd dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"Z"e #¡ �2 e $de%¡ ej&Z'e(dd„ ede'd�D ƒƒZ)W 5 Q R X dddddgZ*dddd d!d"gZ+e"j, -d#¡e"j, -d$¡e"j,j.ed%d&�d'd(„ ƒƒƒZ/ee%d)�d*d+„ ƒZ0d,d-„ Z1d.d/„ Z2d0d1„ Z3e"j, 4d2eƒ ¡d3d4„ ƒZ5d5d6„ Z6dS )7é    N)Úwalk_packages)Ú	signature)Úenable_iterative_imputer)Úenable_halving_search_cv)ÚIS_PYPY)Úcheck_docstring_parameters)Ú_get_func_name)Úignore_warnings)Úall_estimators)Ú_enforce_estimator_tags_y)Ú_enforce_estimator_tags_X)Ú_construct_instance)Ú
sp_versionÚparse_version)Ú_is_deprecated)Úmake_classification©ÚLogisticRegression)ÚFunctionTransformerÚignorec                 C   s,   g | ]$}d |d ksd|d ks|d ‘qS )z._é   z.tests.© )Ú.0Zpckgr   r   ú`/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/sklearn/tests/test_docstring_parameters.pyÚ
<listcomp>+   s    þr   úsklearn.)ÚprefixÚpathz%sklearn.utils.deprecation.load_mlcompzsklearn.pipeline.make_pipelinezsklearn.pipeline.make_unionz%sklearn.utils.extmath.safe_sparse_dotzsklearn.utils._joblibÚfitZscoreZfit_predictZfit_transformZpartial_fitZpredictzignore::FutureWarningzignore::DeprecationWarningztest segfaults on PyPy©Úreasonc                     sZ  t jddd� ddlm}  g }tD �]‰ ˆ  d¡r4q"ˆ dkr>q"tjdd	�� t 	ˆ ¡}W 5 Q R X t
 |t
j¡}d
d„ |D ƒ}|D �]\}}g }|tks€| d¡r¢q€t
 |¡r®q€tjdd	��}|  |¡}W 5 Q R X t|ƒrîtd|ˆ |d f ƒ‚t|dd ƒ}	t|	ƒ�rq€n|	d k	�r"|t|j|ƒ7 }|jD ]l}
t||
ƒ}t|ƒ�rD�q(d }|
tk�r~t|ƒ}d|jk�r~|jd jd k�r~dg}t||d�}||7 }�q(||7 }q€t
 |t
j¡}‡ fdd„|D ƒ}|D ]j\}}| d¡�rÜ�qÄ|dk�röˆ  d¡�rö�qÄt|ƒ‰t‡fdd„tD ƒƒ�sÄt|ƒ�sÄ|t|ƒ7 }�qÄq"d |¡}t|ƒdk�rVt d| ƒ‚d S )NÚnumpydocz+numpydoc is required to test the docstringsr   r   ©Ú	docscrapez	.conftestzsklearn.utils.fixesT)Úrecordc                 S   s    g | ]}|d  j  d¡r|‘qS )r   Úsklearn)Ú
__module__Ú
startswith)r   Úclsr   r   r   r   b   s      z-test_docstring_parameters.<locals>.<listcomp>Ú_z"Error for __init__ of %s in %s:
%sÚ__init__Úy)r   c                    s   g | ]}|d  j ˆ kr|‘qS )r   )r&   )r   Úfn©Únamer   r   r   ‰   s      ÚconfigurationÚsetupc                 3   s   | ]}|ˆ kV  qd S )Nr   )r   Úd)Úname_r   r   Ú	<genexpr>‘   s     z,test_docstring_parameters.<locals>.<genexpr>Ú
zDocstring Error:
)!ÚpytestÚimportorskipr!   r#   ÚPUBLIC_MODULESÚendswithÚwarningsÚcatch_warningsÚ	importlibÚimport_moduleÚinspectÚ
getmembersÚisclassÚ_DOCSTRING_IGNORESr'   Ú
isabstractÚClassDocÚlenÚRuntimeErrorÚgetattrr   r   r*   ÚmethodsÚ_METHODS_IGNORE_NONE_Yr   Ú
parametersÚdefaultÚ
isfunctionr   ÚanyÚjoinÚAssertionError)r#   Z	incorrectÚmoduleÚclassesÚcnamer(   Zthis_incorrectÚwZcdocZcls_initÚmethod_nameÚmethodZparam_ignoreÚsigÚresultZ	functionsÚfnameÚfuncÚmsgr   )r.   r2   r   Útest_docstring_parametersH   sv     ÿ


ÿ






ÿ
rY   ©Úcategoryc               	   C   s~   t tjdd�D ]j\} }}tr.d|ksd|kr.qt |¡}zt |¡}W n tk
r^   Y qY nX d|kst	dd| fƒ‚qd S )Nr   )r   Z_svmlight_format_ioz feature_extraction._hashing_fastú	z""%s" has tabs, please remove them zor add it to the ignore list)
r   r%   Ú__path__r   r;   r<   r=   Ú	getsourceÚIOErrorrM   )ÚimporterÚmodnameÚispkgÚmodÚsourcer   r   r   Ú	test_tabs›   s     ÿþ


þre   c                 C   s   | t ƒ dddgiƒS )NÚCgš™™™™™¹?r   r   )ZSearchCVr   r   r   Ú_construct_searchcv_instance³   s    rg   c                 C   s\   | j dkr | ddddgfgd�S | j dkr<| dtƒ fgd	�S | j d
krX| dtƒ fgd�S d S )NÚColumnTransformerZtransformerZpassthroughr   r   )ZtransformersÚPipelineZclf)ZstepsÚFeatureUnion)Ztransformer_list)Ú__name__r   r   )Ú	Estimatorr   r   r   Ú$_construct_compose_pipeline_instance·   s    


rm   c                 C   sB   t jdddgdddgdddgdddgdddggt jd�}| |d�S )Nr   r   éÿÿÿÿé   )Zdtype)Ú
dictionary)ÚnpÚarrayZfloat64)rl   rp   r   r   r   Ú_construct_sparse_coderÁ   s
    *þrs   zname, Estimatorc              
   C   s.  t  d¡ ddlm} | |¡}|d }|jdkr<t|ƒ}n0|jdkrPt|ƒ}n|jdkrdt|ƒ}nt	|ƒ}|jdkr„|j
d	d
� nj|jdkrœ|j
dd� nR|jdks²|j d¡rÀ|j
dd� n.|jdkrØ|j
d	d� n|jdkrî|j
d	d� |jdk�r|j
dd� |jdk�r|j
dd� |jdk�r6|j
dd� |jdk�rN|j
dd� |jd k�rf|j
d!d"� |jd#k�r”ttd$ƒk�r„d%nd&}|j
|d'� |jd(k�r¬|j
dd)� i }|j d*¡�rþ|jd+k�rØd,d-d.d/g}n |jd0k�rødd	d1œd2dd3œg}d }	n*td4d2dd	d	d5�\}}	t||	ƒ}	t||ƒ}d6| ¡ d7 k�rF| |	¡ n4d8| ¡ d7 k�rn| tj|	|	f ¡ n| ||	¡ |D ]\}
|
j|k�r’�q~d9 |
j¡ ¡ }d:|k�r°�q~ttd;�� t||
jƒ�sÎt‚W 5 Q R X �q~t|ƒ}d<d=„ |D ƒ}t|ƒ  |¡}t|ƒ  |¡}|�r*td>|j› d?|› �ƒ‚d S )@Nr!   r   r"   Z
Attributes)ZHalvingRandomSearchCVZRandomizedSearchCVZHalvingGridSearchCVZGridSearchCV)rh   ri   rj   ZSparseCoderZSelectKBestro   )ÚkZDummyClassifierZ
stratified)ZstrategyZCCAZPLSr   )Zn_components)ZGaussianRandomProjectionZSparseRandomProjectionZTSNE)Z
perplexityZSequentialFeatureSelectorÚauto)Zn_features_to_selectZFastICAzunit-variance)ZwhitenZMiniBatchDictionaryLearningé   )Z
batch_size)ZKMeansZMiniBatchKMeans)Zn_init)ZMultinomialNBZComplementNBZBernoulliNBZCategoricalNBT)Zforce_alphaZQuantileRegressorz1.6.0Zhighszinterior-point)ÚsolverZMDS)Znormalized_stressZ
Vectorizer)ZCountVectorizerZHashingVectorizerZTfidfVectorizerzThis is the first document.z%This document is the second document.zAnd this is the third one.zIs this the first document?ZDictVectorizer)ÚfooÚbaré   )rx   Zbazé   )Z	n_samplesZ
n_featuresZn_redundantZ	n_classesZrandom_stateZ1dlabelsZX_typesZ2dlabelsú zonly rZ   c                 S   s   g | ]
}|j ‘qS r   r-   )r   Úattrr   r   r   r   J  s     z1test_fit_docstring_attributes.<locals>.<listcomp>zUndocumented attributes for z: )!r5   r6   r!   r#   rB   rk   rg   rm   rs   r   Z
set_paramsr'   r   r   r8   r   r   r   Z	_get_tagsr   rq   Zc_r.   rL   ÚdescÚlowerr	   ÚFutureWarningÚhasattrrM   Ú_get_all_fitted_attributesÚsetÚ
difference)r.   rl   r#   ÚdocÚ
attributesZestrw   Zskipped_attributesÚXr+   r}   r~   Úfit_attrZfit_attr_namesZundocumented_attrsr   r   r   Útest_fit_docstring_attributesÊ   sš    











üû



 ÿr‰   c                 C   sœ   t | j ¡ ƒ}t ¡ �r tjdtd� t| jƒD ]R}t	| j|ƒ}t
|tƒsLq0zt	| |ƒ W n ttfk
rv   Y q0Y nX | |¡ q0W 5 Q R X dd„ |D ƒS )zBGet all the fitted attributes of an estimator including propertiesÚerrorrZ   c                 S   s$   g | ]}|  d ¡r| d ¡s|‘qS )r)   )r8   r'   )r   rt   r   r   r   r   i  s     
 
 z._get_all_fitted_attributes.<locals>.<listcomp>)ÚlistÚ__dict__Úkeysr9   r:   Úfilterwarningsr€   ÚdirÚ	__class__rE   Ú
isinstanceÚpropertyÚAttributeErrorÚappend)Z	estimatorrˆ   r.   Úobjr   r   r   r‚   S  s    


r‚   )7r=   r9   r;   Úpkgutilr   r   Únumpyrq   Zsklearn.experimentalr   r   r%   Zsklearn.utilsr   Zsklearn.utils._testingr   r   r	   r
   Zsklearn.utils.estimator_checksr   r   r   Zsklearn.utils.fixesr   r   Zsklearn.utils.deprecationr   Zsklearn.datasetsr   Zsklearn.linear_modelr   Zsklearn.preprocessingr   r5   r:   Úsimplefilterr€   r]   Zsklearn_pathrƒ   r7   r@   rG   ÚmarkrŽ   ZskipifrY   re   rg   rm   rs   Zparametrizer‰   r‚   r   r   r   r   Ú<module>   sp   

þÿ
û
ú

P

	
 	