U
    9%eH7                     @   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d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddgZejdedd ZdddddddddddddddgZejdeddń 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kr|jqS  )kindVAR_POSITIONALVAR_KEYWORDname.0pr   r   b/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sklearn/tests/test_public_functions.py
<listcomp>   s   z"_get_func_info.<locals>.<listcomp>c                 S   s0   g | ](}|j |jkr|j|j|jfk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funcZfunc_sigfunc_paramsrequired_paramsr   r   r   _get_func_info   s    
r$   c                 C   s  i }|D ]2}|| dkr"d||< qt t|| d ||< q|r| }t|t| }t|t| }	d| d| d|	 d}
t|t|kst|
tdd	i  }|D ]}|| }|dkrqtd
d |D rtdd |D rtd| d| dd| d| d}tj	t
|d | f |||i W 5 Q R X dd |D }|D ]\}zt|}W n tk
rv   Y qJY nX tj	t
|d | f |||i W 5 Q R X qJqdS )z|Check that an informative error is raised when the value of a parameter does not
    have an appropriate type or value.
    Zno_validationr   r   z>Mismatch between _parameter_constraints and the parameters of z%.
Consider the unexpected parameters z% and expected but missing parameters 
ZBadTyper   c                 s   s"   | ]}t |to|jtkV  qd S N)
isinstancer   typer   r   
constraintr   r   r   	<genexpr>N   s   z3_check_function_param_validation.<locals>.<genexpr>c                 s   s"   | ]}t |to|jtkV  qd S r&   )r'   r   r(   r   r)   r   r   r   r+   Q   s   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.)matchc                 S   s   g | ]}t |qS r   )r
   r)   r   r   r   r   f   s     z4_check_function_param_validation.<locals>.<listcomp>N)r	   r
   keyssetAssertionErrorr(   any
ValueErrorpytestZraisesr   r   NotImplementedError)r!   r   r"   r#   parameter_constraintsZvalid_required_params
param_nameZvalidation_paramsZunexpected_paramsZmissing_paramserr_msgZparam_with_bad_typeconstraintsr,   r*   Z	bad_valuer   r   r    _check_function_param_validation'   sR    

r8   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.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.linear_model.orthogonal_mpz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.coverage_errorz'sklearn.metrics.d2_absolute_error_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.cosine_distancesz*sklearn.metrics.pairwise.cosine_similarityz,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_distancesz3sklearn.metrics.pairwise.paired_euclidean_distancesz3sklearn.metrics.pairwise.paired_manhattan_distancesz*sklearn.metrics.pairwise.polynomial_kernelz#sklearn.metrics.pairwise.rbf_kernelz'sklearn.metrics.pairwise.sigmoid_kernelz)sklearn.metrics.pairwise_distances_argminz&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.top_k_accuracy_scorezsklearn.metrics.v_measure_scorezsklearn.metrics.zero_one_lossz&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.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.resampler   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   r8   )r   r!   r   r"   r#   r4   r   r   r   test_function_param_validation  s    
    r:   )z$sklearn.cluster.affinity_propagationz#sklearn.cluster.AffinityPropagation)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.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                    sx   t | \}} }|dd\}}t|}t||}t|d}	t|d}
|
|	} fdd| D }t|| || dS )zYCheck param validation for public functions that are wrappers around
    estimators.
    r   r   r9   Z_parameter_constraintsc                    s   i | ]\}}| kr||qS r   r   )r   kvr"   r   r   
<dictcomp>T  s      z7test_class_wrapper_param_validation.<locals>.<dictcomp>N)r$   r   r   r   itemsr8   )r   Zclass_moduler!   r   r#   r   
class_namer    klassZparameter_constraints_funcZparameter_constraints_classr4   r   r=   r   #test_class_wrapper_param_validationA  s&    



    rB   )	importlibr   inspectr   numbersr   r   r2   Zsklearn.utils._param_validationr   r   r   r	   r
   r$   r8   ZPARAM_VALIDATION_FUNCTION_LISTmarkZparametrizer:   Z#PARAM_VALIDATION_CLASS_WRAPPER_LISTrB   r   r   r   r   <module>   s  	L  ,
 