
    0PhbA                         d dl mZ d dlmZ d dlmZmZ d dlZd dlm	Z	m
Z
mZmZmZ d Zd Zg dZej                            d	e          d
             Zg dZej                            de          d             ZdS )    )import_module)	signature)IntegralRealN)IntervalInvalidParameterErrorgenerate_invalid_param_valgenerate_valid_parammake_constraintc                 (   |                      dd          \  }}t          |          }t          ||          }t          |          }d |j                                        D             }d |j                                        D             }||||fS )N.   c                 F    g | ]}|j         |j        |j        fv|j        S  )kindVAR_POSITIONALVAR_KEYWORDname.0ps     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/tests/test_public_functions.py
<listcomp>z"_get_func_info.<locals>.<listcomp>   s;       6!*AM::: 	
:::    c                 b    g | ],}|j         |j        u |j        |j        |j        fv%|j        -S r   )defaultemptyr   r   r   r   r   s     r   r   z"_get_func_info.<locals>.<listcomp>   sI       9AF13CQ]2S$S$S 	
$S$S$Sr   )rsplitr   getattrr   
parametersvalues)func_modulemodule_name	func_namemodulefuncfunc_sigfunc_paramsrequired_paramss           r   _get_func_infor*      s    (//Q77K;''F69%%DH $++--  K $++--  O K88r   c           
      z   i }|D ]?}||         dk    rd||<   t          t          ||         d                             ||<   @|r|                                }t          |          t          |          z
  }t          |          t          |          z
  }	d| d| d|	 d}
t          |          t          |          k    s
J |
             t	          dd	i                       }|D ]O}||         }|dk    rt          d
 |D                       r/t          d |D                       rt          d| d| d          d| d| d}| d| d}
t          j        t          |          5   | d	i i |||i t          j
        |
           ddd           n# 1 swxY w Y   d |D             }|D ]}	 t          |          }n# t          $ r Y w xY w| d| d}
t          j        t          |          5   | d	i i |||i t          j
        |
           ddd           n# 1 swxY w Y   QdS )z|Check that an informative error is raised when the value of a parameter does not
    have an appropriate type or value.
    no_validationr   r   z>Mismatch between _parameter_constraints and the parameters of z%.
Consider the unexpected parameters z% and expected but missing parameters 
BadTyper   c              3   `   K   | ])}t          |t                    o|j        t          k    V  *d S N)
isinstancer   typer   r   
constraints     r   	<genexpr>z3_check_function_param_validation.<locals>.<genexpr>N   sL       
 
 z8,,LH1L
 
 
 
 
 
r   c              3   `   K   | ])}t          |t                    o|j        t          k    V  *d S r0   )r1   r   r2   r   r3   s     r   r5   z3_check_function_param_validation.<locals>.<genexpr>Q   sL       
 
 z8,,HD1H
 
 
 
 
 
r   zThe constraint for parameter z of zc can't have a mix of intervals of Integral and Real types. Use the type RealNotInt instead of Real.zThe 'z' parameter of z must be .* Got .* instead.z@ does not raise an informative error message when the parameter zc does not have a valid type. If any Python type is valid, the constraint should be 'no_validation'.)matchNc                 ,    g | ]}t          |          S r   )r   r3   s     r   r   z4_check_function_param_validation.<locals>.<listcomp>m   s     QQQzz22QQQr   a   does not have a valid value.
Constraints should be disjoint. For instance [StrOptions({'a_string'}), str] is not a acceptable set of constraint because generating an invalid string for the first constraint will always produce a valid string for the second constraint.)r
   r   keyssetr2   any
ValueErrorpytestraisesr   failr	   NotImplementedError)r&   r$   r(   r)   parameter_constraintsvalid_required_params
param_namevalidation_paramsunexpected_paramsmissing_paramserr_msgparam_with_bad_typeconstraintsr7   r4   	bad_values                   r    _check_function_param_validationrK   '   s    %  
 ,??01!*--0D 5j A! DEE1 1!*--
  	C16688 122S5E5EE[))C0A,B,BBCC CARC C0>C C C 	
 $%%[)9)99997999 2$y"b1133! ;% ;%
+J7/))  
 
)
 
 
 
 
 	  
 
)
 
 
 
 
	 /
 / /	 / / /   WZVV	VVV 	
  B B#B B B 	 ]0>>> 	! 	!DNNM+MZ9LMMNNNK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! RQ[QQQ% 	% 	%J6zBB		&      '    4EBBB % %HHG/GYGGHHHG$$$% % % % % % % % % % % % % % %!	%S;% ;%s6   0#FF#	&F#	;G
GG>#H--H14H1)z%sklearn.calibration.calibration_curvez%sklearn.cluster.cluster_optics_dbscanz$sklearn.cluster.compute_optics_graphz"sklearn.cluster.estimate_bandwidthzsklearn.cluster.kmeans_plusplusz!sklearn.cluster.cluster_optics_xizsklearn.cluster.ward_treez'sklearn.covariance.empirical_covariancez(sklearn.covariance.ledoit_wolf_shrinkagez!sklearn.covariance.log_likelihoodz$sklearn.covariance.shrunk_covariancez sklearn.datasets.clear_data_homez#sklearn.datasets.dump_svmlight_filez#sklearn.datasets.fetch_20newsgroupsz.sklearn.datasets.fetch_20newsgroups_vectorizedz)sklearn.datasets.fetch_california_housingzsklearn.datasets.fetch_covtypezsklearn.datasets.fetch_kddcup99z sklearn.datasets.fetch_lfw_pairsz!sklearn.datasets.fetch_lfw_peoplez%sklearn.datasets.fetch_olivetti_faceszsklearn.datasets.fetch_rcv1zsklearn.datasets.fetch_openmlz,sklearn.datasets.fetch_species_distributionszsklearn.datasets.get_data_homez#sklearn.datasets.load_breast_cancerzsklearn.datasets.load_diabeteszsklearn.datasets.load_digitszsklearn.datasets.load_fileszsklearn.datasets.load_iriszsklearn.datasets.load_linnerudz"sklearn.datasets.load_sample_imagez#sklearn.datasets.load_svmlight_filez$sklearn.datasets.load_svmlight_fileszsklearn.datasets.load_winez sklearn.datasets.make_biclusterszsklearn.datasets.make_blobsz"sklearn.datasets.make_checkerboardzsklearn.datasets.make_circlesz$sklearn.datasets.make_classificationzsklearn.datasets.make_friedman1zsklearn.datasets.make_friedman2zsklearn.datasets.make_friedman3z(sklearn.datasets.make_gaussian_quantilesz!sklearn.datasets.make_hastie_10_2z%sklearn.datasets.make_low_rank_matrixzsklearn.datasets.make_moonsz/sklearn.datasets.make_multilabel_classificationz sklearn.datasets.make_regressionzsklearn.datasets.make_s_curvez)sklearn.datasets.make_sparse_coded_signalz'sklearn.datasets.make_sparse_spd_matrixz)sklearn.datasets.make_sparse_uncorrelatedz sklearn.datasets.make_spd_matrixz sklearn.datasets.make_swiss_rollz#sklearn.decomposition.sparse_encodez(sklearn.feature_extraction.grid_to_graphz'sklearn.feature_extraction.img_to_graphz3sklearn.feature_extraction.image.extract_patches_2dz<sklearn.feature_extraction.image.reconstruct_from_patches_2dzsklearn.feature_selection.chi2z#sklearn.feature_selection.f_classifz&sklearn.feature_selection.f_regressionz-sklearn.feature_selection.mutual_info_classifz0sklearn.feature_selection.mutual_info_regressionz&sklearn.feature_selection.r_regressionz%sklearn.inspection.partial_dependencez)sklearn.inspection.permutation_importancez!sklearn.isotonic.check_increasingz$sklearn.isotonic.isotonic_regressionzsklearn.linear_model.enet_pathzsklearn.linear_model.lars_pathz#sklearn.linear_model.lars_path_gramzsklearn.linear_model.lasso_pathz"sklearn.linear_model.orthogonal_mpz'sklearn.linear_model.orthogonal_mp_gramz%sklearn.linear_model.ridge_regressionz)sklearn.manifold.locally_linear_embeddingzsklearn.manifold.smacofz#sklearn.manifold.spectral_embeddingz sklearn.manifold.trustworthinesszsklearn.metrics.accuracy_scorezsklearn.metrics.aucz'sklearn.metrics.average_precision_scorez'sklearn.metrics.balanced_accuracy_scorez sklearn.metrics.brier_score_lossz'sklearn.metrics.calinski_harabasz_scorezsklearn.metrics.check_scoringz"sklearn.metrics.completeness_scorez'sklearn.metrics.class_likelihood_ratiosz%sklearn.metrics.classification_reportz2sklearn.metrics.cluster.adjusted_mutual_info_scorez*sklearn.metrics.cluster.contingency_matrixzsklearn.metrics.cluster.entropyz-sklearn.metrics.cluster.fowlkes_mallows_scorez:sklearn.metrics.cluster.homogeneity_completeness_v_measurez4sklearn.metrics.cluster.normalized_mutual_info_scorez*sklearn.metrics.cluster.silhouette_samplesz(sklearn.metrics.cluster.silhouette_scorez!sklearn.metrics.cohen_kappa_scorez sklearn.metrics.confusion_matrixzsklearn.metrics.consensus_scorezsklearn.metrics.coverage_errorz'sklearn.metrics.d2_absolute_error_scorez!sklearn.metrics.d2_log_loss_scorez sklearn.metrics.d2_pinball_scorez sklearn.metrics.d2_tweedie_scorez$sklearn.metrics.davies_bouldin_scorezsklearn.metrics.dcg_scorezsklearn.metrics.det_curvez(sklearn.metrics.explained_variance_scorezsklearn.metrics.f1_scorezsklearn.metrics.fbeta_scorezsklearn.metrics.get_scorerzsklearn.metrics.hamming_losszsklearn.metrics.hinge_lossz!sklearn.metrics.homogeneity_scorezsklearn.metrics.jaccard_scorez5sklearn.metrics.label_ranking_average_precision_scorez"sklearn.metrics.label_ranking_losszsklearn.metrics.log_losszsklearn.metrics.make_scorerz!sklearn.metrics.matthews_corrcoefzsklearn.metrics.max_errorz#sklearn.metrics.mean_absolute_errorz.sklearn.metrics.mean_absolute_percentage_errorz#sklearn.metrics.mean_gamma_deviancez!sklearn.metrics.mean_pinball_lossz%sklearn.metrics.mean_poisson_deviancez"sklearn.metrics.mean_squared_errorz&sklearn.metrics.mean_squared_log_errorz%sklearn.metrics.mean_tweedie_deviancez%sklearn.metrics.median_absolute_errorz+sklearn.metrics.multilabel_confusion_matrixz!sklearn.metrics.mutual_info_scorezsklearn.metrics.ndcg_scorez%sklearn.metrics.pair_confusion_matrixz#sklearn.metrics.adjusted_rand_scorez-sklearn.metrics.pairwise.additive_chi2_kernelz$sklearn.metrics.pairwise.chi2_kernelz)sklearn.metrics.pairwise.cosine_distancesz*sklearn.metrics.pairwise.cosine_similarityz,sklearn.metrics.pairwise.euclidean_distancesz,sklearn.metrics.pairwise.haversine_distancesz)sklearn.metrics.pairwise.laplacian_kernelz&sklearn.metrics.pairwise.linear_kernelz,sklearn.metrics.pairwise.manhattan_distancesz0sklearn.metrics.pairwise.nan_euclidean_distancesz0sklearn.metrics.pairwise.paired_cosine_distancesz)sklearn.metrics.pairwise.paired_distancesz3sklearn.metrics.pairwise.paired_euclidean_distancesz3sklearn.metrics.pairwise.paired_manhattan_distancesz6sklearn.metrics.pairwise.pairwise_distances_argmin_minz)sklearn.metrics.pairwise.pairwise_kernelsz*sklearn.metrics.pairwise.polynomial_kernelz#sklearn.metrics.pairwise.rbf_kernelz'sklearn.metrics.pairwise.sigmoid_kernelz"sklearn.metrics.pairwise_distancesz)sklearn.metrics.pairwise_distances_argminz*sklearn.metrics.pairwise_distances_chunkedz&sklearn.metrics.precision_recall_curvez/sklearn.metrics.precision_recall_fscore_supportzsklearn.metrics.precision_scorezsklearn.metrics.r2_scorezsklearn.metrics.rand_scorezsklearn.metrics.recall_scorezsklearn.metrics.roc_auc_scorezsklearn.metrics.roc_curvez'sklearn.metrics.root_mean_squared_errorz+sklearn.metrics.root_mean_squared_log_errorz$sklearn.metrics.top_k_accuracy_scorezsklearn.metrics.v_measure_scorezsklearn.metrics.zero_one_lossz)sklearn.model_selection.cross_val_predictz'sklearn.model_selection.cross_val_scorez&sklearn.model_selection.cross_validatez&sklearn.model_selection.learning_curvez.sklearn.model_selection.permutation_test_scorez(sklearn.model_selection.train_test_splitz(sklearn.model_selection.validation_curvez"sklearn.neighbors.kneighbors_graphz(sklearn.neighbors.radius_neighbors_graphz*sklearn.neighbors.sort_graph_by_row_valuesz'sklearn.preprocessing.add_dummy_featurezsklearn.preprocessing.binarizez$sklearn.preprocessing.label_binarizezsklearn.preprocessing.normalizezsklearn.preprocessing.scalez7sklearn.random_projection.johnson_lindenstrauss_min_dimzsklearn.svm.l1_min_czsklearn.tree.export_graphvizzsklearn.tree.export_textzsklearn.tree.plot_treezsklearn.utils.gen_batcheszsklearn.utils.gen_even_sliceszsklearn.utils.resamplezsklearn.utils.safe_maskz$sklearn.utils.extmath.randomized_svdz/sklearn.utils.class_weight.compute_class_weightz0sklearn.utils.class_weight.compute_sample_weightz6sklearn.utils.graph.single_source_shortest_path_lengthr"   c                 t    t          |           \  }}}}t          |d          }t          |||||           dS )z]Check param validation for public functions that are not wrappers around
    estimators.
    _skl_parameter_constraintsN)r*   r   rK   )r"   r&   r$   r(   r)   rA   s         r   test_function_param_validationrN   Q  sT    
 5C;4O4O1D)[/#D*FGG$io7L    r   ))z$sklearn.cluster.affinity_propagationz#sklearn.cluster.AffinityPropagation)zsklearn.cluster.dbscanzsklearn.cluster.DBSCAN)zsklearn.cluster.k_meanszsklearn.cluster.KMeans)zsklearn.cluster.mean_shiftzsklearn.cluster.MeanShift)z#sklearn.cluster.spectral_clusteringz"sklearn.cluster.SpectralClustering)z"sklearn.covariance.graphical_lassoz!sklearn.covariance.GraphicalLasso)zsklearn.covariance.ledoit_wolfzsklearn.covariance.LedoitWolf)zsklearn.covariance.oaszsklearn.covariance.OAS)z#sklearn.decomposition.dict_learningz(sklearn.decomposition.DictionaryLearning)z*sklearn.decomposition.dict_learning_onlinez1sklearn.decomposition.MiniBatchDictionaryLearning)zsklearn.decomposition.fasticazsklearn.decomposition.FastICA)z0sklearn.decomposition.non_negative_factorizationzsklearn.decomposition.NMF)z"sklearn.preprocessing.maxabs_scalez"sklearn.preprocessing.MaxAbsScaler)z"sklearn.preprocessing.minmax_scalez"sklearn.preprocessing.MinMaxScaler)z%sklearn.preprocessing.power_transformz&sklearn.preprocessing.PowerTransformer)z(sklearn.preprocessing.quantile_transformz)sklearn.preprocessing.QuantileTransformer)z"sklearn.preprocessing.robust_scalez"sklearn.preprocessing.RobustScalerzfunc_module, class_modulec                 R   t          |           \  }}}|                    dd          \  }}t          |          }t          ||          }t          |d          }	t          |d          }
i |
|	}fd|                                D             }t          ||||           dS )zYCheck param validation for public functions that are wrappers around
    estimators.
    r   r   rM   _parameter_constraintsc                 $    i | ]\  }}|v 	||S r   r   )r   kvr(   s      r   
<dictcomp>z7test_class_wrapper_param_validation.<locals>.<dictcomp>  s0       A!{:J:J1:J:J:Jr   N)r*   r   r   r   itemsrK   )r"   class_moduler&   r$   r)   r#   
class_namer%   klassparameter_constraints_funcparameter_constraints_classrA   r(   s               @r   #test_class_wrapper_param_validationr[   z  s     5C;4O4O1D)[/*11#q99K;''FFJ''E!(/K!L!L")%1I"J"J
%
$   .4466   %io7L    r   )	importlibr   inspectr   numbersr   r   r=   sklearn.utils._param_validationr   r   r	   r
   r   r*   rK   PARAM_VALIDATION_FUNCTION_LISTmarkparametrizerN   #PARAM_VALIDATION_CLASS_WRAPPER_LISTr[   r   r   r   <module>rd      sJ   # # # # # #       " " " " " " " "              9 9 9.Z% Z% Z%zJ" J" J" Z (FGG
 
 HG
' ' ' #6 !D     r   