o
    ?HhbA                     @   s   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d Zdd	 Zg d
Zejdedd Zg dZejdedd ZdS )    )import_module)	signature)IntegralRealN)IntervalInvalidParameterErrorgenerate_invalid_param_valgenerate_valid_parammake_constraintc                 C   s^   |  dd\}}t|}t||}t|}dd |j D }dd |j D }||||fS )N.   c                 S   s$   g | ]}|j |j|jfvr|jqS  )kindVAR_POSITIONALVAR_KEYWORDname.0pr   r   c/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sklearn/tests/test_public_functions.py
<listcomp>   s
    z"_get_func_info.<locals>.<listcomp>c                 S   s0   g | ]}|j |ju r|j|j|jfvr|jqS r   )defaultemptyr   r   r   r   r   r   r   r   r      s
    )rsplitr   getattrr   
parametersvalues)func_modulemodule_name	func_namemodulefuncfunc_sigfunc_paramsrequired_paramsr   r   r   _get_func_info   s   
r%   c              
   C   s  i }|D ]}|| dkrd||< qt t|| d ||< q|rL| }t|t| }t|t| }	d| d| d|	 d}
t|t|ksLJ |
tdd	i  }|D ]}|| }|dkr`qUtd
d |D r}tdd |D r}td| d| dd| d| d}| d| d}
tjt	|d | d	i i |||i t
|
 W d   n1 sw   Y  dd |D }|D ]C}zt|}W n	 ty   Y qw | d| d}
tjt	|d | d	i i |||i t
|
 W d   n1 sw   Y  qqUd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                 s   $    | ]}t |to|jtkV  qd S N)
isinstancer   typer   r   
constraintr   r   r   	<genexpr>N   
    
z3_check_function_param_validation.<locals>.<genexpr>c                 s   r)   r*   )r+   r   r,   r   r-   r   r   r   r/   Q   r0   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                 S   s   g | ]}t |qS r   )r
   r-   r   r   r   r   m   s    z4_check_function_param_validation.<locals>.<listcomp>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setr,   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constraintsr1   r.   	bad_valuer   r   r    _check_function_param_validation'   s~   


rD   )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                 C   s.   t | \}}}}t|d}t||||| dS )z]Check param validation for public functions that are not wrappers around
    estimators.
    _skl_parameter_constraintsN)r%   r   rD   )r   r!   r   r#   r$   r:   r   r   r   test_function_param_validationQ  s
   

rF   ))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                    s|   t | \}} }|dd\}}t|}t||}t|d}	t|d}
i |
|	} fdd| D }t|| || dS )zYCheck param validation for public functions that are wrappers around
    estimators.
    r   r   rE   _parameter_constraintsc                    s   i | ]\}}| v r||qS r   r   )r   kvr#   r   r   
<dictcomp>  s    z7test_class_wrapper_param_validation.<locals>.<dictcomp>N)r%   r   r   r   itemsrD   )r   class_moduler!   r   r$   r   
class_namer    klassparameter_constraints_funcparameter_constraints_classr:   r   rJ   r   #test_class_wrapper_param_validationz  s"   




rR   )	importlibr   inspectr   numbersr   r   r6   sklearn.utils._param_validationr   r   r   r	   r
   r%   rD   PARAM_VALIDATION_FUNCTION_LISTmarkparametrizerF   #PARAM_VALIDATION_CLASS_WRAPPER_LISTrR   r   r   r   r   <module>   s     	] N
