U
    _»{jã.  ã                	   @   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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 d dlmZmZ d d	lmZmZmZ d d
lmZ d dlmZmZmZ d dl m!Z!m"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/d#d$„ Z0d%d&„ Z1d'd(„ Z2ee	j3j4d)�ej, 5d*eƒ ¡d+d,„ ƒƒZ6d-d.„ Z7dS )/é    N)Ú	signature)Úwalk_packages)Úmake_classification)Úenable_halving_search_cvÚenable_iterative_imputer©ÚLogisticRegression)ÚFunctionTransformer)ÚIS_PYPYÚall_estimators)Ú_get_func_nameÚcheck_docstring_parametersÚignore_warnings)Ú_is_deprecated)Ú_construct_instanceÚ_enforce_estimator_tags_XÚ_enforce_estimator_tags_y)Úparse_versionÚ
sp_versionÚignorec                 C   s,   g | ]$}d |d ksd|d ks|d ‘qS )z._é   z.tests.© )Ú.0Zpckgr   r   úf/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sklearn/tests/test_docstring_parameters.pyÚ
<listcomp>-   s    þr   z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                     sB  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|jƒrúq€|t|j|ƒ7 }|jD ]l}	t||	ƒ}
t|
ƒ�r,�qd }|	tk�rft|
ƒ}d|jk�rf|jd jd k�rfd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�r>t!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   d   s      z-test_docstring_parameters.<locals>.<listcomp>Ú_z"Error for __init__ of %s in %s:
%sÚ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ÚRuntimeErrorr   Ú__new__r   Ú__init__ÚmethodsÚgetattrÚ_METHODS_IGNORE_NONE_Yr   Ú
parametersÚdefaultÚ
isfunctionr   ÚanyÚjoinÚAssertionError)r"   Z	incorrectÚmoduleÚclassesÚcnamer'   Zthis_incorrectÚwZcdocÚmethod_nameÚmethodZparam_ignoreÚsigÚresultZ	functionsÚfnameÚfuncÚmsgr   )r,   r0   r   Útest_docstring_parametersJ   sr     ÿ


ÿ





ÿ
rY   c                 C   s   | t ƒ dddgiƒS )NÚCgš™™™™™¹?r   r   )ZSearchCVr   r   r   Ú_construct_searchcv_instanceœ   s    r[   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    


ra   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)r`   rd   r   r   r   Ú_construct_sparse_coderª   s
    *þrg   ©Úcategoryz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�rdttdƒk�rTdnd }|j
|d!� |jd"k�r||j
dd#� d$| ¡ k�r–|j
d	d%� d&| ¡ k�r°|j
dd'� i }|j d(¡�r|jd)k�rÜd*d+d,d-g}n |jd.k�rüdd	d/œd0dd1œg}d }	n*td2d0dd	d	d3�\}}	t||	ƒ}	t||ƒ}d4| ¡ d5 k�rJ| |	¡ n^d6| ¡ d5 k�rr| tj|	|	f ¡ n6d7| ¡ d5 k�rœ| |tjd8f |	¡ 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!|ƒ "|¡}|�rXtd>|j› d?|› �ƒ‚d S )@Nr    r   r!   Z
Attributes)ZHalvingRandomSearchCVZRandomizedSearchCVZHalvingGridSearchCVZGridSearchCV)r\   r]   r^   ZSparseCoderZSelectKBestrc   )ÚkZDummyClassifierZ
stratified)ZstrategyZCCAZPLSr   )Zn_components)ZGaussianRandomProjectionZSparseRandomProjectionZTSNE)Z
perplexity)ZKMeansZMiniBatchKMeansÚauto)Zn_init)Z	LinearSVCZ	LinearSVR)Zdual)ZMultinomialNBZComplementNBZBernoulliNBZCategoricalNBT)Zforce_alphaZQuantileRegressorz1.6.0Zhighszinterior-point)ÚsolverZMDS)Znormalized_stressÚmax_iter)rm   Úrandom_state)rn   Z
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é   )ro   Zbazé   )Z	n_samplesZ
n_featuresZn_redundantZ	n_classesrn   Z1dlabelsZX_typesZ2dlabelsZ3darray.ú zonly rh   c                 S   s   g | ]
}|j ‘qS r   r+   )r   Úattrr   r   r   r   6  s     z1test_fit_docstring_attributes.<locals>.<listcomp>zUndocumented attributes for z: )#r3   r4   r    r"   r@   r_   r[   ra   rg   r   Z
set_paramsr&   r   r   Ú
get_paramsr6   r   r   r   Z	_get_tagsr   re   Zc_Znewaxisr,   rL   ÚdescÚlowerr   ÚFutureWarningÚhasattrrM   Ú_get_all_fitted_attributesÚsetÚ
difference)r,   r`   r"   ÚdocÚ
attributesZestrl   Zskipped_attributesÚXr)   rt   rv   Ú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Úerrorrh   c                 S   s$   g | ]}|  d ¡r| d ¡s|‘qS )r(   )r6   r&   )r   rj   r   r   r   r   U  s     
 
 z._get_all_fitted_attributes.<locals>.<listcomp>)ÚlistÚ__dict__Úkeysr7   r8   Úfilterwarningsrx   ÚdirÚ	__class__rF   Ú
isinstanceÚpropertyÚAttributeErrorÚappend)Z	estimatorr€   r,   Úobjr   r   r   rz   ?  s    


rz   )8r9   r;   r7   r   Úpkgutilr   Únumpyre   r3   r$   Zsklearn.datasetsr   Zsklearn.experimentalr   r   Zsklearn.linear_modelr   Zsklearn.preprocessingr	   Zsklearn.utilsr
   r   Zsklearn.utils._testingr   r   r   Zsklearn.utils.deprecationr   Zsklearn.utils.estimator_checksr   r   r   Zsklearn.utils.fixesr   r   r8   Úsimplefilterrx   Ú__path__Zsklearn_pathr{   r5   r>   rG   Úmarkr†   ZskipifrY   r[   ra   rg   Ú
exceptionsZConvergenceWarningZparametrizer�   rz   r   r   r   r   Ú<module>   sb   

þÿ
û
ú

O
	 