U
    9%e.                  	   @   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/Darija-Ai-API/env/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rqt
|rqtjdd	}| |}W 5 Q R X t|rtd| |d f t|jrq|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 }qt
|t
j} fdd|D }|D ]j\}}|drĐq|dkrވ drސqt|tfddtD st|s|t|7 }qq"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rd*d+d,d-g}n |jd.krd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qd9|
j }d:|krސqttd; t||
jstW 5 Q R X qt |}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
	 