o
    tBhB4                     @   s  d dl 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Zd dlm	Z	 d dl
Z
edZg dZeeZdd Zd	d
 Zdd Zd(ddZd)dee defddZejde dd Zejde dd Zedkrd dlZd dlZejddZejddd e Z e!e j"Z#e j"$dZ%e&e%d kre 'd!e%d" re%d# Z(ndZ(e)ee#d$ e(e#d$< e#d$ ree#e j"d%Z*e+e* e,d& dS e+d'-e j" dS dS )*    N)	signature)Optional)all_estimatorsznumpydoc.validate)oz)sklearn.datasets._kddcup99.fetch_kddcup99z%sklearn.datasets._lfw.fetch_lfw_pairsz&sklearn.datasets._lfw.fetch_lfw_peoplez;sklearn.datasets._samples_generator.make_gaussian_quantilesz3sklearn.datasets._samples_generator.make_spd_matrixzCsklearn.datasets._species_distributions.fetch_species_distributionsz7sklearn.datasets._svmlight_format_io.load_svmlight_filez8sklearn.datasets._svmlight_format_io.load_svmlight_filesz2sklearn.decomposition._dict_learning.dict_learningz9sklearn.decomposition._dict_learning.dict_learning_onlinez5sklearn.decomposition._nmf.non_negative_factorizationz*sklearn.externals._packaging.version.parsez3sklearn.feature_extraction.image.extract_patches_2dz5sklearn.feature_extraction.text.strip_accents_unicodez4sklearn.feature_selection._univariate_selection.chi2z8sklearn.feature_selection._univariate_selection.f_onewayz9sklearn.inspection._partial_dependence.partial_dependencezCsklearn.inspection._plot.partial_dependence.plot_partial_dependencez0sklearn.linear_model._least_angle.lars_path_gramz,sklearn.linear_model._omp.orthogonal_mp_gramz9sklearn.manifold._locally_linear.locally_linear_embeddingz'sklearn.manifold._t_sne.trustworthinessz0sklearn.metrics._classification.brier_score_lossz1sklearn.metrics._classification.cohen_kappa_scorez+sklearn.metrics._classification.fbeta_scorez-sklearn.metrics._classification.jaccard_scorez(sklearn.metrics._classification.log_lossz.sklearn.metrics._plot.det_curve.plot_det_curvezHsklearn.metrics._plot.precision_recall_curve.plot_precision_recall_curvezsklearn.metrics._ranking.aucz'sklearn.metrics._ranking.coverage_errorz"sklearn.metrics._ranking.dcg_scorez>sklearn.metrics._ranking.label_ranking_average_precision_scorez&sklearn.metrics._ranking.roc_auc_scorez"sklearn.metrics._ranking.roc_curvez-sklearn.metrics._ranking.top_k_accuracy_scorez-sklearn.metrics._regression.mean_pinball_lossz2sklearn.metrics.cluster._bicluster.consensus_scorez>sklearn.metrics.cluster._supervised.adjusted_mutual_info_scorez7sklearn.metrics.cluster._supervised.adjusted_rand_scorez+sklearn.metrics.cluster._supervised.entropyz9sklearn.metrics.cluster._supervised.fowlkes_mallows_scorezFsklearn.metrics.cluster._supervised.homogeneity_completeness_v_measurez5sklearn.metrics.cluster._supervised.mutual_info_scorez@sklearn.metrics.cluster._supervised.normalized_mutual_info_scorez9sklearn.metrics.cluster._supervised.pair_confusion_matrixz.sklearn.metrics.cluster._supervised.rand_scorez3sklearn.metrics.cluster._supervised.v_measure_scorez-sklearn.metrics.pairwise.additive_chi2_kernelz,sklearn.metrics.pairwise.check_paired_arraysz.sklearn.metrics.pairwise.check_pairwise_arraysz$sklearn.metrics.pairwise.chi2_kernelz)sklearn.metrics.pairwise.cosine_distancesz*sklearn.metrics.pairwise.cosine_similarityz)sklearn.metrics.pairwise.distance_metricsz'sklearn.metrics.pairwise.kernel_metricsz3sklearn.metrics.pairwise.paired_manhattan_distancesz2sklearn.metrics.pairwise.pairwise_distances_argminz6sklearn.metrics.pairwise.pairwise_distances_argmin_minz3sklearn.metrics.pairwise.pairwise_distances_chunkedz)sklearn.metrics.pairwise.pairwise_kernelsz*sklearn.metrics.pairwise.polynomial_kernelz#sklearn.metrics.pairwise.rbf_kernelz'sklearn.metrics.pairwise.sigmoid_kernelz2sklearn.model_selection._validation.learning_curvez:sklearn.model_selection._validation.permutation_test_scorez4sklearn.model_selection._validation.validation_curvezsklearn.pipeline.make_unionz(sklearn.preprocessing._data.maxabs_scalez(sklearn.preprocessing._data.robust_scalez!sklearn.preprocessing._data.scalez+sklearn.preprocessing._label.label_binarizez7sklearn.random_projection.johnson_lindenstrauss_min_dimzsklearn.svm._bounds.l1_min_czsklearn.tree._export.plot_treezsklearn.utils.axis0_safe_slicezsklearn.utils.extmath.densityz!sklearn.utils.extmath.fast_logdetz$sklearn.utils.extmath.randomized_svdz%sklearn.utils.extmath.safe_sparse_dotz"sklearn.utils.extmath.squared_normz#sklearn.utils.extmath.stable_cumsumzsklearn.utils.extmath.svd_flipz#sklearn.utils.extmath.weighted_modezsklearn.utils.fixes.delayedzsklearn.utils.fixes.linspacez#sklearn.utils.fixes.threadpool_infoz%sklearn.utils.fixes.threadpool_limitszsklearn.utils.gen_batcheszsklearn.utils.gen_even_slicesz'sklearn.utils.graph.graph_shortest_pathz6sklearn.utils.graph.single_source_shortest_path_lengthzsklearn.utils.is_scalar_nanz)sklearn.utils.metaestimators.available_ifz3sklearn.utils.metaestimators.if_delegate_has_methodz+sklearn.utils.multiclass.class_distributionz'sklearn.utils.multiclass.type_of_targetz&sklearn.utils.multiclass.unique_labelszsklearn.utils.resamplezsklearn.utils.safe_maskzsklearn.utils.safe_sqrzsklearn.utils.shufflez'sklearn.utils.sparsefuncs.count_nonzeroz+sklearn.utils.sparsefuncs.csc_median_axis_0z1sklearn.utils.sparsefuncs.incr_mean_variance_axisz-sklearn.utils.sparsefuncs.inplace_swap_columnz*sklearn.utils.sparsefuncs.inplace_swap_rowz.sklearn.utils.sparsefuncs.inplace_swap_row_cscz.sklearn.utils.sparsefuncs.inplace_swap_row_csrz,sklearn.utils.sparsefuncs.mean_variance_axisz(sklearn.utils.validation.check_is_fittedc                  c   s    t  } | D ]B\}}|drqg }t|D ]}|drqt||}t|ds-t|tr2|| q|d  t|dd dD ]}||fV  q@qd S )N___call__c                 S   s   t | S N)str)x r
   t/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/tests/test_docstrings.py<lambda>   s    z!get_all_methods.<locals>.<lambda>)key)	r   
startswithdirgetattrhasattr
isinstancepropertyappendsorted)
estimatorsname	Estimatormethods
method_objmethodr
   r
   r   get_all_methods   s$   




r   c                 C   s@   t | sdS | jdrdS | j}|dr|drdS dS )NFr   sklearn.estimator_checksT)inspect
isfunction__name__r   
__module__endswith)itemmodr
   r
   r   _is_checked_function   s   
r&   c            
         s   h d t  } tjtjddD ]:\}}}|d}t fdd|D s(d|v r)qt|}t	
|t}|D ]\}}|j d|j }	| |	 q6qt| S )z5Get all public functions define in the sklearn module>   setuptestsconftest	externalsexperimentalr   r   )pathprefix.c                 3   s    | ]}| v V  qd S r   r
   ).0partmodules_to_ignorer
   r   	<genexpr>   s    z*get_all_functions_names.<locals>.<genexpr>z._)setpkgutilwalk_packagessklearn__path__splitany	importlibimport_moduler   
getmembersr&   r"   r!   addr   )
all_functions_namesmodule_findermodule_nameispkgmodule_partsmodule	functionsr   func	full_namer
   r1   r   get_all_functions_names   s"   	

rH   c                 c   sh    | D ].\}}|dv rq|dkr#|dur#|dur#t ||}t|tr#q|dur,|dv r,q||fV  qdS )za
    Ignore some errors based on the method type.

    These rules are specific for scikit-learn.)RT02GL01GL02PR02N)EX01SA01ES01)r   r   r   )errorsr   r   codemessager   r
   r
   r   filter_errors   s   

rS   r   returnc                 C   s   |du rt |drd}n
|du rtdt|dur;t||}ztt|}W n ty2   d}Y nw |jd | }nd}|}ddt| d || | d	 d
ddd | d D g }|S )ay  Pretty print original docstring and the obtained errors

    Parameters
    ----------
    res : dict
        result of numpydoc.validate.validate
    estimator : {estimator, None}
        estimator object or None
    method : str
        if estimator is not None, either the method name or None.

    Returns
    -------
    str
       String representation of the error.
    N__init__z4At least one of estimator, method should be providedzM
Parsing of the method signature failed, possibly because this is a property.r.    z

file	docstringz# Errors
c                 s   s     | ]\}}d  ||V  qdS )z	 - {}: {}N)format)r/   rQ   rR   r
   r
   r   r3     s    
zrepr_errors.<locals>.<genexpr>rP   )	r   
ValueErrorNotImplementedErrorr   r   r   	TypeErrorr!   join)res	estimatorr   objobj_signatureobj_namemsgr
   r
   r   repr_errors   s8   



re   function_namec                 C   sf   | t v r|tjjddd t| }tt|d dd|d< |d r1t	|d|  d}t
|dS )	z)Check function docstrings using numpydoc.FzTODO pass numpydoc validation)runreasonrP   functionr   zTested function: N)FUNCTION_DOCSTRING_IGNORE_LISTapplymarkerpytestmarkxfailnumpydoc_validationvalidatelistrS   re   r[   )rf   requestr_   rd   r
   r
   r   test_function_docstring"  s   
rt   zEstimator, methodc                 C   sp   | j }|| jg}|d ur|| d|}t|}tt|d || d|d< |d r6t|| |}t	|d S )Nr.   rP   )r   )
r"   r!   r   r^   rp   rq   rr   rS   re   r[   )r   r   rs   base_import_pathimport_pathr_   rd   r
   r
   r   test_docstring4  s   



rw   __main__z!Validate docstring with numpydoc.)descriptionrv   zImport path to validate)helpr.      z(?:[A-Z][a-z]*)+rP   rj      z#All docstring checks passed for {}!r   )NN).rer   r   r5   r;   typingr   rm   sklearn.utilsr   r7   importorskiprp   rk   r4   r   r&   rH   rS   r   re   rn   parametrizert   rw   r!   sysargparseArgumentParserparseradd_argument
parse_argsargsrq   rv   r_   r9   import_path_sectionslenmatchr   rr   rd   printexitrZ   r
   r
   r
   r   <module>   sR    
s
'7


