
    riA-                        d 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	m
Z
mZmZ ddlmZ ddl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 ddlmZmZ ddlmZm Z  ddl!m"Z"m#Z# ddl$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/ ddl0m1Z1  G d d      Z2 e2dd        e2dd dg       e2dd dg       e2ded d!g       e2d"eg d#       e2d$eg d%       e2d&d' g d(      gZ3d) Z4d* Z5d+ Z6g d,Z7 e6       D  cg c]  } | jp                  jr                  e7vr|  c} Z:d- Z;ejx                  j{                  d.e:e;/      d0        Z>yc c} w )1zCommon tests for metaestimators    N)suppress)	signature)BaseEstimatorcloneis_regressor)make_classification)BaggingClassifier)NotFittedError)TfidfVectorizer)RFERFECV)LogisticRegressionRidge)GridSearchCVRandomizedSearchCV)Pipelinemake_pipeline)MaxAbsScalerStandardScalerSelfTrainingClassifier)all_estimators)_construct_instances)SkipTestset_random_state)_enforce_estimator_tags_X_enforce_estimator_tags_ycheck_is_fittedc                   &    e Zd Zd ed      fdZy)DelegatorData r   )random_statec                 <    || _         || _        || _        || _        y N)name	constructfit_argsskip_methods)selfr&   r'   r)   r(   s        _/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/tests/test_metaestimators.py__init__zDelegatorData.__init__    s!     	" (    N)__name__
__module____qualname__r   r,   r"   r-   r+   r!   r!      s    
 $!4
)r-   r!   r   c                     t        d| fg      S )Nest)r   r2   s    r+   <lambda>r4   2   s    (UCL>*B r-   r   c                 $    t        | ddgid      S )Nparam      )
param_gridcv)r   r3   s    r+   r4   r4   5   s    L'A3AF r-   score)r)   r   c                 &    t        | ddgidd      S )Nr6   r7   r8      )param_distributionsr:   n_iter)r   r3   s    r+   r4   r4   :   s    &gs^!
 r-   r   	transforminverse_transformr   )r@   rA   r;   r	   )r@   rA   r;   predict_probapredict_log_probapredictr   c                     t        |       S r%   r   r3   s    r+   r4   r4   Q   s    *3/ r-   )r@   rA   rB   c                     d  G fddt               } | j                  j                         D cg c]&  }|j                  d      s|j                  d      s|( }}|j	                          t
        D ]  } |        }|j                  |      }|D ]  }||j                  v rt        ||      sJ t        ||      sJ |j                  d|d       |dk(  rPt        j                  t              5   t        ||      |j                  d	   |j                  d
          d d d        t        j                  t              5   t        ||      |j                  d	          d d d          |j                  |j                    |D ]c  }||j                  v r|dk(  r. t        ||      |j                  d	   |j                  d
          E t        ||      |j                  d	          e |D ]\  }||j                  v r | |      }|j                  |      }t        ||      rJ t        ||      sGJ |j                  d|d         y c c}w # 1 sw Y   xY w# 1 sw Y   xY w)Nc                 $     t          fd       }|S )Nc                     | j                   j                  k(  rt        d| j                   z        t        j                  |       S )Nz%r is hidden)hidden_methodr.   AttributeError	functoolspartial)objmethods    r+   wrapperz=test_metaestimator_delegation.<locals>.hides.<locals>.wrapperZ   s>      FOO3$^c6G6G%GHH$$VS11r-   )property)rN   rO   s   ` r+   hidesz,test_metaestimator_delegation.<locals>.hidesY   s    		2 
	2
 r-   c                       e Zd ZddZddZd ZW  d        ZW  d        ZW  d        ZW  d        Z	W  d	        Z
W  d
        ZW  d        Zy)3test_metaestimator_delegation.<locals>.SubEstimatorNc                      || _         || _        y r%   )r6   rI   )r*   r6   rI   s      r+   r,   z<test_metaestimator_delegation.<locals>.SubEstimator.__init__c   s    DJ!.Dr-   c                 `    t        j                  |j                  d         | _        g | _        y)Nr=   T)nparangeshapecoef_classes_r*   Xyargskwargss        r+   fitz7test_metaestimator_delegation.<locals>.SubEstimator.fitg   s$    1771:.DJDMr-   c                     t        |        y r%   r   )r*   s    r+   
_check_fitz>test_metaestimator_delegation.<locals>.SubEstimator._check_fitl   s
    D!r-   c                 &    | j                          |S r%   rb   r*   r\   r^   r_   s       r+   rA   zEtest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformo       OOHr-   c                 &    | j                          |S r%   rd   re   s       r+   r@   z=test_metaestimator_delegation.<locals>.SubEstimator.transformt   rf   r-   c                 f    | j                          t        j                  |j                  d         S Nr   rb   rV   onesrX   re   s       r+   rD   z;test_metaestimator_delegation.<locals>.SubEstimator.predicty   #    OO771771:&&r-   c                 f    | j                          t        j                  |j                  d         S ri   rj   re   s       r+   rB   zAtest_metaestimator_delegation.<locals>.SubEstimator.predict_proba~   rl   r-   c                 f    | j                          t        j                  |j                  d         S ri   rj   re   s       r+   rC   zEtest_metaestimator_delegation.<locals>.SubEstimator.predict_log_proba   rl   r-   c                 f    | j                          t        j                  |j                  d         S ri   rj   re   s       r+   decision_functionzEtest_metaestimator_delegation.<locals>.SubEstimator.decision_function   rl   r-   c                 $    | j                          y)N      ?rd   r[   s        r+   r;   z9test_metaestimator_delegation.<locals>.SubEstimator.score   s    OOr-   )r=   Nr%   )r.   r/   r0   r,   r`   rb   rA   r@   rD   rB   rC   rp   r;   )rQ   s   r+   SubEstimatorrS   b   s    	/	
	" 
	 
	 
	 
	 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	 
	r-   rs   _r`   z does not have method z when its delegate doesr;   r   r=   )rI   z has method z when its delegate does not)r   __dict__keys
startswithsortDELEGATING_METAESTIMATORSr'   r)   hasattrr&   pytestraisesr
   getattrr(   r`   )rs   kmethodsdelegator_datadelegate	delegatorrN   rQ   s          @r+   test_metaestimator_delegationr   W   s   .} .d &&++-||C e)< 	
G 
 LLN3 0>",,X6	 	KF4448V,,,9f-  #''-  ]]>2 .GIv.&//2N4K4KA4N 
 ]]>2 K.GIv.~/F/Fq/IJK K%	K* 		~../ 		GF444 *	6*"++A.0G0G0J +	6*>+B+B1+EF		G  	F444#&9H&00:Ix000y&1  #''1	I0. 
K Ks   +I4.I I&I#&I0c                    h d|z  rt        |       r#t        t               t                     }dddgi}n"t        t               t	                     }dddgi}|j                  ddh      rd|v rdd	ini } t        |       ||fi |S  t        |       |      S d
|v rOdt        t               t                     fdt        t               t        d            fg} t        |       |      S d|v rt        |       rAdt        t               t        d            fdt        t               t        d            fg}n@dt        t               t	        d            fdt        t               t	        d            fg} t        |       |      S y)zLGiven a single meta-estimator instance, generate an instance with a pipeline>   	estimator	regressorbase_estimatorridge__alphag?rr   logisticregression__Cr9   r>   r?   r8   transformer_listtrans1trans2F)	with_mean
estimatorsest1)alphaest2r=   )CN)	r   r   r   r   r   intersectiontyper   r   )meta_estimatorinit_paramsr   r9   extra_paramsr   s         r+   _get_instance_with_pipeliner      s   3kA'%o&7AI(3*5J%o&79K9MNI1C:>J##01
 -5,CHa=L'4'	:NNN'4'	22[( }_%6GHo/%1PQ
 $tN#$455{"''8%c:JKL'8%a.IJI !/"35G#5NO '8:Lq:QRSI $tN#I.. #r-   c               #     K   t        dt        t                            t        t                     D ]  \  } }t	        t        |      j                        }t        d|j                  |       |j                  h d      sOt        t              5  t        |      D ]  }t        |       t        ||        	 ddd        y# 1 sw Y   xY ww)zGenerate instances of meta-estimators fed with a pipeline

    Are considered meta-estimators all estimators accepting one of "estimator",
    "base_estimator" or "estimators".
    zestimators: 
>   r   r   r   r   r   N)printlenr   sortedsetr   
parametersr.   r   r   r   r   r   )rt   	Estimatorsigr   s       r+   0_generate_meta_estimator_instances_with_pipeliner      s      
.#n./0~/0 G9)I&112dI&&,
 h 	G"6y"A Gn%1.#FFG	G 	GG	G 	Gs   BC*C<CC	C)AdaBoostClassifierAdaBoostRegressorr	   BaggingRegressorClassifierChainFrozenEstimatorIterativeImputerOneVsOneClassifierRANSACRegressorr   r   RegressorChainr   SequentialFeatureSelectorc                 .    | j                   j                  S r%   )	__class__r.   )r   s    r+   _get_meta_estimator_idr   2  s    '''r-   r   )idsc                    t        |       } t        j                  j                  d      }t	        |        d}|j                  t        j                  g dt              |      }t        |       r|j                  |      }n|j                  d|      }t        | |      j                         }t        | |      j                         }| j                  ||       t        | d      rJ y )Nr      )aabbcc)dtype)size   n_features_in_)r   rV   randomRandomStater   choicearrayobjectr   normalrandintr   tolistr   r`   rz   )r   rng	n_samplesr\   r]   s        r+   -test_meta_estimators_delegate_data_validationr   6  s     i I
))


"CYI

288.f=I
NAIJJIJ&KK	K* 	")Q/668A!)Q/668A
 MM!Q y"23333r-   )?__doc__rK   
contextlibr   inspectr   numpyrV   r{   sklearn.baser   r   r   sklearn.datasetsr   sklearn.ensembler	   sklearn.exceptionsr
   sklearn.feature_extraction.textr   sklearn.feature_selectionr   r   sklearn.linear_modelr   r   sklearn.model_selectionr   r   sklearn.pipeliner   r   sklearn.preprocessingr   r   sklearn.semi_supervisedr   sklearn.utilsr   -sklearn.utils._test_common.instance_generatorr   sklearn.utils._testingr   r   sklearn.utils.estimator_checksr   r   sklearn.utils.validationr   r!   ry   r   r   r   )DATA_VALIDATION_META_ESTIMATORS_TO_IGNOREr   r.   DATA_VALIDATION_META_ESTIMATORSr   markparametrizer   r3   s   0r+   <module>r      sn   %      ; ; 0 . - ; 0 : D 4 > : ( N = 5) )& *BCFY
 	
 Y %K9L+MN%P 
  /H=# Lrj,/^G>- )& @A#
}}%NN # ( 06L  44#s   !E