
    -i,                        S r SSKrSSKJr  SSKJr  SSKrSSKrSSK	J
r
Jr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJrJr  SSKJrJr  SSKJrJr  SSK J!r!J"r"  SSK#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*J+r+  SSK,J-r-J.r.  SSK/J0r0   " S S5      r1\1" SS 5      \1" SS S/S9\1" SS S/S9\1" S\S S!/S9\1" S"\/ S#QS9\1" S$\/ S%QS9\1" S&S' / S(QS9/r2S) r3S* r4S+ r5/ S,Qr6\5" 5        V s/ s H!  n U Rn                  Rp                  \6;  d  M  U PM#     sn r9S- r:\Rv                  Ry                  S.\9\:S/9S0 5       r=gs  sn f )1zCommon tests for metaestimators    N)suppress)	signature)BaseEstimator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                   *    \ rS rSrS\" SS94S jrSrg)DelegatorData    r   )random_statec                 4    Xl         X l        X@l        X0l        g N)name	constructfit_argsskip_methods)selfr&   r'   r)   r(   s        T/var/www/html/venv/lib/python3.13/site-packages/sklearn/tests/test_metaestimators.py__init__DelegatorData.__init__    s     	" (    )r'   r(   r&   r)   N)__name__
__module____qualname____firstlineno__r   r,   __static_attributes__r"   r.   r+   r    r       s    
 $!4
)r.   r    r   c                     [        SU 4/5      $ )Nest)r   r5   s    r+   <lambda>r7   2   s    (UCL>*Br.   r   c                     [        U SS/0SS9$ )Nparam      )
param_gridcv)r   r6   s    r+   r7   r7   5   s    L'A3AFr.   score)r)   r   c                      [        U SS/0SSS9$ )Nr9   r:   r;      )param_distributionsr=   n_iter)r   r6   s    r+   r7   r7   :   s    &gs^!
r.   r   	transforminverse_transformr   )rC   rD   r>   r   )rC   rD   r>   predict_probapredict_log_probapredictr   c                     [        U 5      $ r%   r   r6   s    r+   r7   r7   Q   s
    *3/r.   )rC   rD   rE   c                  d  ^ S m " U4S jS[         5      n U R                  R                  5        Vs/ s H5  nUR                  S5      (       a  M  UR                  S5      (       a  M3  UPM7     nnUR	                  5         [
         GH  nU " 5       nUR                  U5      nU H  nXcR                  ;   a  M  [        XF5      (       d   e[        XV5      (       d   UR                  < SU< S35       eUS:X  aQ  [        R                  " [        5         [        XV5      " UR                  S	   UR                  S
   5        S S S 5        M  [        R                  " [        5         [        XV5      " UR                  S	   5        S S S 5        M     UR                  " UR                  6   U Hf  nXcR                  ;   a  M  US:X  a.  [        XV5      " UR                  S	   UR                  S
   5        MH  [        XV5      " UR                  S	   5        Mh     U Hf  nXcR                  ;   a  M  U " US9nUR                  U5      n[        XF5      (       a   e[        XV5      (       d  MO   UR                  < SU< S35       e   GM     g s  snf ! , (       d  f       GM  = f! , (       d  f       GM
  = f)Nc                 &   ^  [         U 4S j5       nU$ )Nc                    > U R                   TR                  :X  a  [        SU R                   -  5      e[        R                  " TU 5      $ )Nz%r is hidden)hidden_methodr/   AttributeError	functoolspartial)objmethods    r+   wrapper=test_metaestimator_delegation.<locals>.hides.<locals>.wrapperZ   s>      FOO3$^c6G6G%GHH$$VS11r.   )property)rQ   rR   s   ` r+   hides,test_metaestimator_delegation.<locals>.hidesY   s    		2 
	2
 r.   c                      > \ rS rSrSS jrSS jrS r Y S 5       r Y S 5       r Y S 5       r	 Y S	 5       r
 Y S
 5       r Y S 5       r Y S 5       rSrg)3test_metaestimator_delegation.<locals>.SubEstimatorb   Nc                     Xl         X l        g r%   )r9   rL   )r*   r9   rL   s      r+   r,   <test_metaestimator_delegation.<locals>.SubEstimator.__init__c   s    J!.r.   c                 b    [         R                  " UR                  S   5      U l        / U l        g)Nr@   T)nparangeshapecoef_classes_r*   Xyargskwargss        r+   fit7test_metaestimator_delegation.<locals>.SubEstimator.fitg   s$    1771:.DJDMr.   c                     [        U 5        g r%   r   )r*   s    r+   
_check_fit>test_metaestimator_delegation.<locals>.SubEstimator._check_fitl   s
    D!r.   c                 &    U R                  5         U$ r%   rj   r*   rc   re   rf   s       r+   rD   Etest_metaestimator_delegation.<locals>.SubEstimator.inverse_transformo       OOHr.   c                 &    U R                  5         U$ r%   rm   rn   s       r+   rC   =test_metaestimator_delegation.<locals>.SubEstimator.transformt   rp   r.   c                 h    U R                  5         [        R                  " UR                  S   5      $ Nr   rj   r]   onesr_   rn   s       r+   rG   ;test_metaestimator_delegation.<locals>.SubEstimator.predicty   #    OO771771:&&r.   c                 h    U R                  5         [        R                  " UR                  S   5      $ rt   ru   rn   s       r+   rE   Atest_metaestimator_delegation.<locals>.SubEstimator.predict_proba~   rx   r.   c                 h    U R                  5         [        R                  " UR                  S   5      $ rt   ru   rn   s       r+   rF   Etest_metaestimator_delegation.<locals>.SubEstimator.predict_log_proba   rx   r.   c                 h    U R                  5         [        R                  " UR                  S   5      $ rt   ru   rn   s       r+   decision_functionEtest_metaestimator_delegation.<locals>.SubEstimator.decision_function   rx   r.   c                 $    U R                  5         g)N      ?rm   rb   s        r+   r>   9test_metaestimator_delegation.<locals>.SubEstimator.score   s    OOr.   )ra   r`   rL   r9   )r@   Nr%   )r/   r0   r1   r2   r,   rg   rj   rD   rC   rG   rE   rF   r~   r>   r3   )rU   s   r+   SubEstimatorrX   b   s    	/	
	" 
	 
	 
	 
	 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	 
	r.   r   _rg   z does not have method z when its delegate doesr>   r   r@   )rL   z has method z when its delegate does not)r   __dict__keys
startswithsortDELEGATING_METAESTIMATORSr'   r)   hasattrr&   pytestraisesr	   getattrr(   rg   )r   kmethodsdelegator_datadelegate	delegatorrQ   rU   s          @r+   test_metaestimator_delegationr   W   s[   .} .d &&++--A||C  	
)*e)< 	
-  
 LLN33>",,X6	F4448,,,,9--  #''-  ]]>2I.&//2N4K4KA4N 32
 ]]>2I.~/F/Fq/IJ 32% * 	~../F444 	*"++A.0G0G0J 	*>+B+B1+EF  F444#&9H&00:Ix0000y11  #''1 I 4. 32
 32s)   JJ)J-J%J
J
J/c           	      0   1 SkU-  (       a  [        U 5      (       a#  [        [        5       [        5       5      nSSS/0nO"[        [        5       [	        5       5      nSSS/0nUR                  SS15      (       a  SU;   a  SS	0O0 n[        U 5      " X#40 UD6$ [        U 5      " U5      $ S
U;   aL  S[        [        5       [        5       5      4S[        [        5       [        SS95      4/n[        U 5      " U5      $ SU;   a  [        U 5      (       a;  S[        [        5       [        SS95      4S[        [        5       [        SS95      4/nO:S[        [        5       [	        SS95      4S[        [        5       [	        SS95      4/n[        U 5      " U5      $ g)zLGiven a single meta-estimator instance, generate an instance with a pipeline>   	estimator	regressorbase_estimatorridge__alphag?r   logisticregression__Cr<   rA   rB   r;   transformer_listtrans1trans2F)	with_mean
estimatorsest1)alphaest2r@   )CN)	r   r   r
   r   r   intersectiontyper   r   )meta_estimatorinit_paramsr   r<   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'	NNN'	22[( }_%6GHo/%1PQ
 N#$455{"'''8%c:JKL'8%a.IJI !/"35G#5NO '8:Lq:QRSI N#I.. #r.   c               #     #    [        S[        [        5       5      5        [        [        5       5       H  u  p[	        [        U5      R                  5      n[        SUR                  U5        UR                  1 Sk5      (       d  MT  [        [        5         [        U5       H  n[        U5        [        X25      v   M     SSS5        M     g! , (       d  f       M  = f7f)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   )r   	Estimatorsigr   s       r+   0_generate_meta_estimator_instances_with_pipeliner      s      
.#n./0~/0)I&112dI&&,
 
 h"6y"An%1.FF #B   1  s   BC +CC 
C	C )AdaBoostClassifierAdaBoostRegressorr   BaggingRegressorClassifierChainFrozenEstimatorIterativeImputerOneVsOneClassifierRANSACRegressorr   r   RegressorChainr   SequentialFeatureSelectorc                 .    U R                   R                  $ r%   )	__class__r/   )r   s    r+   _get_meta_estimator_idr   2  s    '''r.   r   )idsc                    [         R                  R                  S5      n[        U 5        SnUR	                  [         R
                  " / SQ[        S9US9n[        U 5      (       a  UR                  US9nOUR                  SUS9n[        X5      R                  5       n[        X5      R                  5       nU R                  X45        [        U S5      (       a   eg )Nr      )aabbcc)dtype)size   n_features_in_)r]   randomRandomStater   choicearrayobjectr   normalrandintr   tolistr   rg   r   )r   rng	n_samplesrc   rd   s        r+   -test_meta_estimators_delegate_data_validationr   6  s     ))


"CYI

288.f=I
NAIJJIJ&KK	K* 	")/668A!)/668A
 MM! y"233333r.   )>__doc__rN   
contextlibr   inspectr   numpyr]   r   sklearn.baser   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    r   r   r   r   )DATA_VALIDATION_META_ESTIMATORS_TO_IGNOREr   r/   DATA_VALIDATION_META_ESTIMATORSr   markparametrizer   r6   s   0r+   <module>r      sp   %      4 0 . - ; 0 : D 4 > : ( N = 5) )& *BCFY
 	
 Y %K9L+MN%P 
  /H=# Lrj,/^G>- )& @A#A
}}%NN A# ( 06L  44#s   -D=D=