Ë
    8Ò^jŠ†  ã                   óô  — U d dl Z d dlZd dlZd dlZd dl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mZmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZ d dlm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZS ej¨                  j«                  d«      ZVd\  ZWZXeVj³                  eWeX«      ZZeVj·                  d deW¬«      Z\e\dk\  j»                  e^«      Z_ ejÀ                  e\«      ZaeVj·                  d deWdf¬«      Zb ecebjÈ                  d   «      D � cg c]  }  ejÀ                  ebdd…| f   «      ‘Œ c} ZeeVj·                  d deW¬«      ZfeVj³                  eW«      ZgeVj·                  d d ehe\«      ¬«      Zig eAddeZebddgd œ‘e@dd!eZebddgdd"eeiid#œ‘edd!eZe\dgd$d%œ‘e?dd!eZebdgd œ‘eBddeZebdgd œ‘e&d&d'd(d)œeZe\d*dd+gd,dgd-œ‘e3dd!d.d/d0d1giieZe\dgd$d*dd+gd,dgd2œ‘e7dd!d3d/d0d1giieZe\dgd$d*dd+gd,dgd2œ‘e5dd!d.d/d0d1giieZe\dgd$d*dd+gd,dgd2œ‘e6dd!d3d/d0d1giieZe\dgd$d*dd+gd,dgd2œ‘e2dd!eZe_dgd$d%œ‘e8dd!eZe_dgd$d*dd+gd,dgd4œ‘e<dd!eZe\ddgdd"eaiid#œ‘e;dd!eZe\ddgd$dd"eaiid5œ‘e=dd!d6dieZe\dgd7œ‘edd!eZe\ddgdd"eaiid#œ‘e)eZe\d,dgd8œ‘e"eZe\d,dgd8œ‘e$eZe\d,dgd8œ‘e'eZebd,dgd8œ‘e(eZebd,dgd8œ‘e#eZe\d,dgd8œ‘e%eZe\d,dgd8œ‘e*ddd9dd:œeZe\d$g d;¢ddd+gid<œ	‘e ddd=d&ieZe\dgd7œ‘edd!eZe\d&dd>gfd?d@dAdBgd?d@gd?d@gg dC¢dCœdDœ‘eddeZe\d&dd>gfd?gdEœ‘e,eZe\d*dgdFœ‘e+eZe\d*dgdFœ‘e,eZe\d*dgd,dgdGœ‘e+eZe\d*dgd,dgdGœ‘eeZe\d,dgd8œ‘eddeZe\dd?gdHœ‘eFdd!eZe\dIg dJ¢ddd+gidDœ‘edd!eZe\dgd*dgd,dgdKœ
‘ed!deZe\g d;¢dHœ‘ed!ddgd,dgd*dd+geZe\dLœ
‘eDeZe\d,dMgd8œ‘ZjekeldN<   	 ejD �cg c]  } em|dO   jÜ                  «      ‘Œ c}Zo e«        e«       gZpdP„ ZqdQ„ ZrdIdRœdS„Zsejè                  jë                  dep«       edI¬T«      dU„ «       «       Zvejè                  jë                  dep«       edI¬T«      dV„ «       «       Zw edI¬T«      dW„ «       Zxejè                  jë                  dOejeo¬X«       edI¬T«      dY„ «       «       Zyejè                  jë                  dOejeo¬X«       edI¬T«      dZ„ «       «       Zzejè                  jë                  dOejeo¬X«       edI¬T«      d[„ «       «       Z{ejè                  jë                  dOejeo¬X«       edI¬T«      d\„ «       «       Z|ejè                  jë                  dOejeo¬X«       edI¬T«      d]„ «       «       Z}ejè                  jë                  dOejeo¬X«       edI¬T«      d^„ «       «       Z~ejè                  jë                  dOejeo¬X«       edI¬T«      d_„ «       «       Zyc c} w c c}w )`é    N)Úconfig_context)ÚBaseEstimatorÚis_classifier)ÚCalibratedClassifierCV)ÚTransformedTargetRegressor)ÚGraphicalLassoCV)ÚAdaBoostClassifierÚAdaBoostRegressorÚBaggingClassifierÚBaggingRegressor)ÚUnsetMetadataPassedError)Úenable_halving_search_cvÚenable_iterative_imputer)ÚRFEÚRFECVÚSelectFromModelÚSequentialFeatureSelector)ÚIterativeImputer)ÚElasticNetCVÚLarsCVÚLassoCVÚLassoLarsCVÚLogisticRegressionCVÚMultiTaskElasticNetCVÚMultiTaskLassoCVÚOrthogonalMatchingPursuitCVÚRANSACRegressorÚRidgeClassifierCVÚRidgeCV)Úmean_squared_error)Úmake_scorer)ÚFixedThresholdClassifierÚGridSearchCVÚ
GroupKFoldÚHalvingGridSearchCVÚHalvingRandomSearchCVÚRandomizedSearchCVÚTunedThresholdClassifierCVÚcross_validate)ÚOneVsOneClassifierÚOneVsRestClassifierÚOutputCodeClassifier)ÚClassifierChainÚMultiOutputClassifierÚMultiOutputRegressorÚRegressorChain)ÚTargetEncoder)ÚSelfTrainingClassifier)
ÚConsumingClassifierÚConsumingRegressorÚConsumingScorerÚConsumingSplitterÚ)ConsumingSplitterInheritingFromGroupKFoldÚNonConsumingClassifierÚNonConsumingRegressorÚ	_RegistryÚassert_request_is_emptyÚcheck_recorded_metadata)ÚMetadataRouteré*   )éd   é   é   )Úsizeé   é
   Ú	estimatorÚ	regressorÚfitÚpartial_fit)ÚmetaestimatorÚestimator_namerE   ÚXÚyÚestimator_routing_methodsÚ
classifierÚclasses)rI   rJ   rE   rK   rL   rM   Úmethod_argsÚsubset)rI   rJ   rE   rK   rL   rM   Úpreserves_metadataF)r   Úneg_log_loss)Úuse_legacy_attributesÚ	l1_ratiosÚscoringrV   ÚscoreÚcv)rI   Ú	init_argsrK   rL   Úscorer_nameÚscorer_routing_methodsÚcv_nameÚcv_routing_methodsÚ
param_gridÚalphagš™™™™™¹?gš™™™™™É?)rI   rJ   rE   rY   rK   rL   rM   rR   rZ   r[   r\   r]   Úparam_distributions)rI   rJ   rE   rK   rL   rM   rR   rZ   r[   r\   r]   )rI   rJ   rE   rK   rL   rM   rR   rP   Úrandom_state)rI   rJ   rE   rY   rK   rL   rM   )rI   rK   rL   r\   r]   g      à?)Úmin_samplesÚ
max_trials)rG   ÚpredictrW   )	rI   rJ   rE   rY   rK   rL   rR   rM   Úmethod_mappingÚskip_completeÚmetadatard   Úpredict_probaÚpredict_log_probaÚdecision_function)rd   rh   ri   )rI   rJ   rE   rK   rL   rR   rM   re   )rI   rJ   rE   rK   rL   rR   rM   )rI   rK   rL   rZ   r[   )rI   rK   rL   rZ   r[   r\   r]   )rI   rE   rJ   rK   rL   rM   T)rG   rd   rh   ri   rj   rW   )
rI   rJ   rE   rK   rL   rM   rZ   r[   r\   r]   )
rI   rE   rJ   rM   r\   r]   rZ   r[   rK   rL   Úfit_transformÚMETAESTIMATORSrI   c                 ó&  — | j                  di «      j                  «       }d\  }}d\  }}d\  }}d| v rs| d   }	t        «       }| d   }
|r-|
dk(  rt        |«      }nG|
dk(  rt	        |«      }n6t        d«      ‚|
dk(  rt        «       }n|
dk(  rt        «       }nt        d«      ‚|||	<   d| v r | d   }t        «       }t        |¬	«      }|||<   d
| v r8| d
   }t        «       }| d   t        u rt        |¬	«      }nt        |¬	«      }|||<   |||f||f||ffS )a=  Get the init args for a metaestimator

    This is a helper function to get the init args for a metaestimator from
    the METAESTIMATORS list. It returns an empty dict if no init args are
    required.

    Parameters
    ----------
    metaestimator_info : dict
        The metaestimator info from METAESTIMATORS

    sub_estimator_consumes : bool
        Whether the sub-estimator consumes metadata or not.

    Returns
    -------
    kwargs : dict
        The init args for the metaestimator.

    (estimator, estimator_registry) : (estimator, registry)
        The sub-estimator and the corresponding registry.

    (scorer, scorer_registry) : (scorer, registry)
        The scorer and the corresponding registry.

    (cv, cv_registry) : (CV splitter, registry)
        The CV splitter and the corresponding registry.
    rY   )NNrE   rJ   rF   rN   z!Unpermitted `sub_estimator_type`.rZ   )Úregistryr\   rI   )ÚgetÚcopyr:   r4   r3   Ú
ValueErrorr9   r8   r5   r1   r7   r6   )Úmetaestimator_infoÚsub_estimator_consumesÚkwargsrE   Úestimator_registryÚscorerÚscorer_registryrX   Úcv_registryrJ   Úsub_estimator_typerZ   r\   s                ú}/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/tests/test_metaestimators_metadata_routing.pyÚget_init_argsr{     si  € ð>  ×#Ñ# K°Ó4×9Ñ9Ó;€FØ$.Ñ!€IÐ!Ø(Ñ€FˆOØ �O€BˆØÐ(Ñ(Ø+Ð,<Ñ=ˆÜ&›[ÐØ/°Ñ<ÐÙ!Ø! [Ò0Ü.Ð/AÓB‘	Ø# |Ò3Ü/Ð0BÓC‘	ä Ð!DÓEÐEà! [Ò0Ü1Ó3‘	Ø# |Ò3Ü2Ó4‘	ä Ð!DÓEÐEØ!*ˆˆ~ÑØÐ*Ñ*Ø(¨Ñ7ˆÜ#›+ˆÜ ¨/Ô:ˆØ$ˆˆ{ÑØÐ&Ñ&Ø$ YÑ/ˆÜ“kˆØ˜oÑ.´-Ñ?Ü:ÀKÔP‰Bä"¨KÔ8ˆBØˆˆw‰ð 	Ø	Ð&Ð'Ø	�Ð!Ø	ˆ[Ðð	ð ó    c                 ój   — t        «       }| D ]#  }t        |t        «      r|}ddg}n|\  }}|||<   Œ% |S )aÓ  Process estimator_routing_methods and return a dict.

    Parameters
    ----------
    estimator_routing_methods : list of str or tuple
        The estimator_routing_methods info from METAESTIMATORS.

    Returns
    -------
    routing_methods : dict
        The dictionary is of the form {"method": ["metadata", ...]}.
        It specifies the list of metadata keys for each routing method.
        By default the list includes `sample_weight` and `metadata`.
    Úsample_weightrg   )ÚdictÚ
isinstanceÚstr)rM   ÚresÚmethod_specÚmethodrg   s        rz   Ú"filter_metadata_in_routing_methodsr…   S  sM   € ô ‹&€CØ0ò ˆÜ�k¤3Ô'Ø ˆFØ'¨Ð4‰Hà*ÑˆF�HØˆˆFŠðð €Jr|   )Úvaluec                óÎ   — |D ]`  }|j                  ||g«      D ]H  }t        | d|› d�«      } |di ||i¤Ž t        | t        «      sŒ.t	        | «      sŒ:|dk(  sŒ@ |d¬«       ŒJ Œb y)aû  Call `set_{method}_request` on a list of methods from the sub-estimator.

    Parameters
    ----------
    obj : BaseEstimator
        The object for which `set_{method}_request` methods are called.

    method_mapping : dict
        The method mapping in the form of `{caller: [callee, ...]}`.
        If a "caller" is not present in the method mapping, a one-to-one mapping is
        assumed.

    methods : list of str
        The list of methods as "caller"s for which the request for the child should
        be set.

    metadata_name : str
        The name of the metadata to be routed, usually either `"metadata"` or
        `"sample_weight"` in our tests.

    value : None, bool, or str
        The request value to be set, by default it's `True`
    Úset_Ú_requestrH   T©rO   N© )ro   Úgetattrr€   r   r   )Úobjre   ÚmethodsÚmetadata_namer†   ÚcallerÚcalleeÚset_request_for_methods           rz   Úset_requestsr“   m  sy   € ð0 ò 	5ˆØ$×(Ñ(¨°&°Ó:ò 	5ˆFÜ%,¨S°D¸¸ÀÐ2IÓ%JÐ"Ù"Ñ< m°UÐ%;Ò<ä˜3¤Õ.Ü! #Õ&Ø˜mÓ+á&¨tÖ4ñ	5ñ	5r|   )Úenable_metadata_routingc                 ó€   — t        j                  t        «      5  | j                  «        ddd«       y# 1 sw Y   yxY w)zvTest that get_metadata_routing is not implemented on meta-estimators for
    which we haven't implemented routing yet.N)ÚpytestÚraisesÚNotImplementedErrorÚget_metadata_routing©rE   s    rz   Ú0test_unsupported_estimators_get_metadata_routingr›   ‘  s2   € ô
 
�‰Ô*Ó	+ñ )Ø×&Ñ&Ô(÷)÷ )ñ )ús   š4´=c                 óº   — t        j                  t        «      5  	 | j                  dggdgdg¬«       	 ddd«       y# t        $ r t        ‚w xY w# 1 sw Y   yxY w)z«Test that fit raises NotImplementedError when metadata routing is
    enabled and a metadata is passed on meta-estimators for which we haven't
    implemented routing yet.rC   ©r~   N)r–   r—   r˜   rG   Ú	TypeErrorrš   s    rz   Ú-test_unsupported_estimators_fit_with_metadatarŸ   š  sc   € ô 
�‰Ô*Ó	+ñ &ð	&Ø�M‰M˜A˜3˜% ! °Q°CˆMÕ8÷&ð &øô ò 	&ô &Ð%ð	&ú÷&ð &ús   šAœ>¾AÁAÁAc                  óœ   — t        «       } t        «       }| |usJ ‚| t        j                  | «      u sJ ‚| t        j                  | «      u sJ ‚y )N)r:   rp   Údeepcopy)ÚaÚbs     rz   Útest_registry_copyr¤   ©  sK   € ô 	‹€AÜ‹€AØ�A‰:Ðˆ:Ø”—	‘	˜!“ÑÐÐØ”—‘˜aÓ Ñ Ð Ñ r|   )Úidsc                 óÊ   — | d   }t        | d¬«      ^}} |di |¤Ž}d| v rddgi}nd }t        |j                  «       |¬«       t        |j                  «       t        «      sJ ‚y )	NrI   T©rs   r\   ÚsplitterÚsplit)Úexcluder‹   )r{   r;   r™   r€   r=   )rI   Úmetaestimator_classrt   Ú_Úinstancerª   s         rz   Útest_default_requestr®   ³  ss   € ð (¨Ñ8ÐÜ˜}ÀTÔJ€J€FˆQÙ"Ñ, VÑ,€HØ�MÑ!ð  ˜yÐ)‰àˆÜ˜H×9Ñ9Ó;ÀWÕMÜ�h×3Ñ3Ó5´~ÔFÐFÑFr|   c           
      óö  — d| vry | d   }| d   }| d   }t        | d   «      }|j                  «       D �]  \  }}|D �]  }t        | d¬«      ^}\  }	}
\  }}
}
|r |j                  di |di¤Ž t        t
        dœ|   }||i} |di |¤Ž}d	|› d
|	j                  j                  › d|› �}t        j                  t        t        j                  |«      ¬«      5  t        ||«      }d|vr4t        |	| j                  di «      dg|¬«        |j                   ||fi |¤Ž t        |	| j                  di «      dg|d ¬«       	  |||fi |¤Ž d d d «       �Œ �Œ! y # t"        $ r  ||fi |¤Ž Y Œ#w xY w# 1 sw Y   �Œ<xY w)NrE   rI   rK   rL   rM   Tr§   ©r~   rg   ú[zJ] are passed but are not explicitly set as requested or not requested for ú.)ÚmatchrG   re   ©re   rŽ   r�   )re   rŽ   r�   r†   r‹   )r…   Úitemsr{   Úset_score_requestr~   rg   Ú	__class__Ú__name__r–   r—   r   ÚreÚescaperŒ   r“   ro   rG   rž   )rI   r«   rK   rL   Úrouting_methodsÚmethod_nameÚmetadata_keysÚkeyrt   rE   r¬   rv   ÚvalÚmethod_kwargsr­   Úmsgr„   s                    rz   Ú0test_error_on_missing_requests_for_sub_estimatorrÂ   Ä  sß  € ð
 ˜-Ñ'ð 	à'¨Ñ8ÐØ�cÑ€AØ�cÑ€AÜ8ØÐ1Ñ2ó€Oð '6×&;Ñ&;Ó&=ó )/Ñ"ˆ�]Ø ó (	/ˆCÜ6CØ°dô7Ð3ˆF‘N�Y ¡K V¨Q°!ñ Ø(�×(Ñ(Ñ7¨C°¨;Ò7Ü$1¼xÑHÈÑMˆCØ  #˜JˆMÙ*Ñ4¨VÑ4ˆHà�C�5ð "Ø"+×"5Ñ"5×">Ñ">Ð!?¸qÀÀðOð ô —‘Ô7¼r¿y¹yÈ»~ÔNñ /Ü  ¨;Ó7�Ø Ñ+ä Ø!Ø'4×'8Ñ'8Ð9IÈ2Ó'NØ!& Ø&)õ	ð !�H—L‘L  AÑ7¨Ò7ô ØØ#0×#4Ñ#4Ð5EÀrÓ#JØ"˜GØ"%Øõð/á˜1˜aÑ1 =Ò1÷3/ñ /ò(	/ñ)/øôP !ò /Ù˜1Ñ. Ô.ð/ú÷5/ñ /ús+   ÃA&E.Ä=
EÅE+	Å(E.Å*E+	Å+E.Å.E8c           
      óä  — d| vry | d   }| d   }| d   }t        | d   «      }| j                  di «      }| j                  dd«      }|j                  «       D ]ý  \  }}|D ]ó  }	t        t        d	œ|	   }
|	|
i}t        | d¬
«      \  }\  }}\  }}\  }}|rt        |i dg|	¬«       |r|j                  dd¬«       t        |||g|	¬«        |di |¤Ž}t        ||«      }| j                  di «      j                  |i «      }d|vr|j                  ||«       	  |||fi |¤|¤Ž |sJ ‚|dk(  r|j                  «       nd}|D ]  }t        |f|||dœ|¤Ž Œ Œõ Œÿ y # t        $ r  ||fi |¤|¤Ž Y ŒMw xY w)NrE   rI   rK   rL   rM   re   rR   Tr°   r§   rW   r´   ©Úgroupsrg   rP   rG   rQ   r‹   )r„   ÚparentÚsplit_params)r…   ro   rµ   r~   rg   r{   r“   Úset_split_requestrŒ   rG   rž   Úkeysr<   )rI   r«   rK   rL   r»   re   rR   r¼   r½   r¾   r¿   rÀ   rt   rE   rn   rv   r¬   rX   r­   r„   Úextra_method_argsrÇ   s                         rz   Ú3test_setting_request_on_sub_estimator_removes_errorrË     s  € ð
 ˜-Ñ'ð 	à'¨Ñ8ÐØ�cÑ€AØ�cÑ€AÜ8ØÐ1Ñ2ó€Oð #×&Ñ&Ð'7¸Ó<€NØ&×*Ñ*Ð+?ÀÓFÐà&5×&;Ñ&;Ó&=ò 2Ñ"ˆ�]Ø ò 1	ˆCÜ$1¼xÑHÈÑMˆCØ  #˜JˆMäBOØ°dôCÑ?ˆFÑ)�Y ©;¨F°A¹¸¸Qñ ÜØ¨2¸°yÐPSõñ Ø×$Ñ$¨D¸4Ð$Ô@ô ØØ-Ø$˜Ø!õ	ñ +Ñ4¨VÑ4ˆHÜ˜X {Ó3ˆFØ -× 1Ñ 1°-ÀÓ D× HÑ HØ˜Ró!Ðð ˜KÑ'à—‘˜Q Ô"ð@á�q˜!ÑB˜}ÐBÐ0AÒBñ ˆO�8à(:¸hÒ(F�×"Ñ"Ô$ÈBð ð &ò �	Ü'Øðà&Ø&Ø!-ñ	ð
 $óññU1	ñ2øôD ò @Ù�qÑ?˜MÐ?Ð->Ô?ð@ús   ÄEÅE/Å.E/c                 ó†  — d| vry d„ }| d   }| d   }| d   }t        | d   «      }|D ]  }t        | d¬«      \  }\  }}	\  }	}	\  }	}	 |di |¤Ž}
 |||«       t        |
|«      }| j                  d	i «      j                  |i «      }d
|vr |
j                  ||fi |¤Ž 	  |||fi |¤Ž Œ� y # t
        $ r  ||fi |¤Ž Y Œ—w xY w)NrE   c                 óL   — t        | «      r|dk(  r| j                  d¬«       y y y )NrH   TrŠ   )r   Úset_partial_fit_request)rE   r¼   s     rz   Úset_requestz7test_non_consuming_estimator_works.<locals>.set_requestT  s+   € ä˜Ô#¨°}Ò(DØ×-Ñ-°dÐ-Õ;ð )EÐ#r|   rI   rK   rL   rM   Fr§   rP   rG   r‹   )r…   r{   rŒ   ro   rG   rž   )rI   rÏ   r«   rK   rL   r»   r¼   rt   rE   r¬   r­   r„   rÊ   s                rz   Ú"test_non_consuming_estimator_worksrÐ   I  s  € ð ˜-Ñ'ð 	ò<ð
 (¨Ñ8ÐØ�cÑ€AØ�cÑ€AÜ8ØÐ1Ñ2ó€Oð 'ò +ˆÜ1>Ø°%ô2
Ñ.ˆ‘�˜A¡  A©¨¨Añ 'Ñ0¨Ñ0ˆÙ�I˜{Ô+Ü˜ ;Ó/ˆØ)×-Ñ-¨m¸RÓ@×DÑDÀ[ÐRTÓUÐØ˜Ñ#ØˆH�L‰L˜˜AÑ3Ð!2Ò3ð	+á�1�aÑ-Ð,Ó-ñ+øô ò 	+Ù�1Ñ*Ð)Ô*ð	+ús   Â
B+Â+C Â?C c           
      ó¾  — d| vry| d   }| d   }| d   }| d   }| j                  di «      }|D ]­  }t        | d¬	«      \  }\  }}	\  }
}\  }}	|
j                  d¬
«       |r|j                  dd¬«       |�t	        |||gd¬«        |di |¤Ž}t        ||«      }dt        i}d|vr|j                  ||«        |||fi |¤Ž |sJ ‚|D ]  }t        d|d|d
dœ|¤Ž Œ Œ¯ y)ziTest that any requested metadata is correctly routed to the underlying
    scorers in CV estimators.
    rZ   NrK   rL   rI   r[   re   Tr§   r�   rÄ   r~   r´   rG   rW   )r�   r„   rÆ   rÇ   r‹   )	ro   r{   r¶   rÈ   r“   rŒ   r~   rG   r<   )rI   rK   rL   r«   r»   re   r¼   rt   rE   r¬   rv   rn   rX   r­   r„   rÀ   Ú_scorers                    rz   Ú+test_metadata_is_routed_correctly_to_scorerrÓ   q  sH  € ð ˜MÑ)àà�cÑ€AØ�cÑ€AØ'¨Ñ8ÐØ#Ð$<Ñ=€OØ"×&Ñ&Ð'7¸Ó<€Nà&ò ˆÜ>KØ°$ô?
Ñ;ˆ‘�˜AÑ 2 ¨±G°R¸ð 	× Ñ ¨tÐ Ô4ÙØ× Ñ ¨°tÐ Ô<ØÐ ÜØØ-Ø$˜Ø-õ	ñ 'Ñ0¨Ñ0ˆÜ˜ ;Ó/ˆØ(¬-Ð8ˆØ˜Ñ#Ø�L‰L˜˜AÔÙˆq�!Ñ%�}Ò%áˆˆxØò 	ˆGÜ#ð ØØØ"Ø/ñ	ð
  óñ	ñ-r|   c           	      ó~  — d| vry| d   }| d   }| d   }| d   }|D ]Ÿ  }t        | d¬«      \  }\  }}\  }	}\  }
}|r|j                  dd¬	«       |	r|	j                  dd¬	«       |
j                  dd¬
«        |di |¤Ž}t        t
        d
œ}t        ||«      } |||fi |¤Ž |sJ ‚|D ]  }t        d|d|dœ|¤Ž Œ Œ¡ y)zkTest that any requested metadata is correctly routed to the underlying
    splitters in CV estimators.
    r]   NrI   rK   rL   Tr§   Fr°   rÄ   r©   )r�   r„   rÆ   r‹   )r{   Úset_fit_requestr¶   rÈ   rÅ   rg   rŒ   r<   )rI   r«   r»   ÚX_Úy_r¼   rt   rE   r¬   rv   rX   rn   r­   rÀ   r„   Ú	_splitters                   rz   Ú-test_metadata_is_routed_correctly_to_splitterrÙ   ¡  s  € ð  =Ñ0àà'¨Ñ8ÐØ#Ð$8Ñ9€OØ	�sÑ	€BØ	�sÑ	€Bà&ò ˆÜ>KØ°$ô?
Ñ;ˆ‘�˜A¡ ¨©^¨b°(ñ Ø×%Ñ%°EÀEÐ%ÔJÙØ×$Ñ$°5À5Ð$ÔIØ
×Ñ D°4ÐÔ8Ù&Ñ0¨Ñ0ˆÜ#)´xÑ@ˆÜ˜ ;Ó/ˆÙˆr�2Ñ'˜Ò'ÙˆˆxØ!ò 	ˆIÜ#ð Ø g°kñØERóñ	ñr|   c                 óö   — d| vry| d   }| d   }| d   }t        | d¬«      ^}}|j                  dd«        |ddt        d	¬
«      i|¤Ž}t        |||dt        it        d	¬
«      t        t        d¬«      ¬«       y)zôTest that groups are routed correctly if group splitter of CV estimator is used
    within cross_validate. Regression test for issue described in PR #29634 to test that
    `ValueError: The 'groups' parameter should not be None.` is not raised.r]   NrI   rK   rL   Tr§   rX   é   )Ún_splitsrÅ   rd   )Úresponse_method)ÚparamsrX   rV   r‹   )r{   Úpopr$   r)   rÅ   r!   r    )rI   r«   rÖ   r×   rt   r¬   r­   s          rz   Ú&test_metadata_routed_to_group_splitterrà   Ä  s�   € ð  =Ñ0àà'¨Ñ8ÐØ	�sÑ	€BØ	�sÑ	€Bä˜}ÀTÔJ€J€FˆQà
‡J�Jˆt�TÔÙ"ÑG¤j¸!Ô&<ÐGÀÑG€HÜØØ
Ø
Øœ&Ð!Ü˜qÔ!ÜÔ.À	ÔJör|   )€rp   r¹   ÚnumpyÚnpr–   Úsklearnr   Úsklearn.baser   r   Úsklearn.calibrationr   Úsklearn.composer   Úsklearn.covariancer   Úsklearn.ensembler	   r
   r   r   Úsklearn.exceptionsr   Úsklearn.experimentalr   r   Úsklearn.feature_selectionr   r   r   r   Úsklearn.imputer   Úsklearn.linear_modelr   r   r   r   r   r   r   r   r   r   r   Úsklearn.metrics._regressionr    Úsklearn.metrics._scorerr!   Úsklearn.model_selectionr"   r#   r$   r%   r&   r'   r(   r)   Úsklearn.multiclassr*   r+   r,   Úsklearn.multioutputr-   r.   r/   r0   Úsklearn.preprocessingr1   Úsklearn.semi_supervisedr2   Ú%sklearn.tests.metadata_routing_commonr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Úsklearn.utils.metadata_routingr=   ÚrandomÚRandomStateÚrngÚNÚMÚrandrK   ÚrandintrL   ÚastypeÚintÚy_binaryÚuniquerO   Úy_multiÚrangeÚshapeÚclasses_multirg   r~   ÚlenrÅ   rl   ÚlistÚ__annotations__r�   r¸   ÚMETAESTIMATOR_IDSÚUNSUPPORTED_ESTIMATORSr{   r…   r“   ÚmarkÚparametrizer›   rŸ   r¤   r®   rÂ   rË   rÐ   rÓ   rÙ   rà   )ÚiÚrows   00rz   ú<module>r     s×
  ðÜ Û 	ã Û å "ß 5Ý 6Ý 6Ý /÷ó õ 8÷÷ó õ ,÷÷ ÷ ñ õ ;Ý /÷	÷ 	ó 	÷ñ ÷
ó õ 0Ý :÷÷ ÷ õ :à‡i�i×Ñ˜BÓ€Ø�€€1Ø‡H�HˆQ�ƒN€Ø‡K�K��1˜1€KÓ€Ø�‰F�?‰?˜3Ó€Ø
ˆ"�)‰)�A‹,€Ø
�+‰+�a˜ ! Q ˆ+Ó
(€Ù38¸¿¹ÀqÑ9IÓ3JÖK¨a��—‘˜7¢1 a 4™=Õ)ÒK€Ø�;‰;�q˜" 1ˆ;Ó%€Ø—‘˜“€Ø	�‰�Q˜¡ Q£ˆÓ	(€ðvà-Ø%Ø ØØØ&+¨]Ð%;ñðvð /Ø%Ø!ØØØ&+¨]Ð%;Ø%¨	°=Ð'AÐBñðvð& 0Ø%Ø!ØØØ&+ WØ&ñð%vð8 )Ø%Ø!ØØØ&+ Wñð7vðH (Ø%Ø ØØØ&+ WñðGvðX .ð &+ØØ%ñ
ð
 ØØ Ø#(¨'Ð"2ØØ$˜gñðWvðv &Ø%Ø!Ø" W¨s°C¨jÐ$9Ð:ØØØ&+ WØ&Ø Ø#(¨'Ð"2ØØ$˜gñðuvðR ,Ø%Ø!Ø+¨g¸¸S°zÐ-BÐCØØØ&+ WØ&Ø Ø#(¨'Ð"2ØØ$˜gñðQvðn -Ø%Ø!Ø" W¨s°C¨jÐ$9Ð:ØØØ&+ WØ&Ø Ø#(¨'Ð"2ØØ$˜gñðmvðJ /Ø%Ø!Ø+¨g¸¸S°zÐ-BÐCØØØ&+ WØ&Ø Ø#(¨'Ð"2ØØ$˜gñðIvðf 2Ø%Ø!ØØØ&+ WØ&ñðevðx 4Ø%Ø!ØØØ&+ WØ&Ø Ø#(¨'Ð"2ØØ$˜gñðwvðR -Ø%Ø!ØØØ&+¨]Ð%;Ø%¨	°7Ð';Ð<ñðQvðd ,Ø%Ø!ØØØ&+¨]Ð%;Ø&Ø%¨	°7Ð';Ð<ñ	ðcvðx .Ø%Ø!Ø$ bÐ)ØØØ&+ WñðwvðJ )Ø%Ø!ØØØ&+¨]Ð%;Ø%¨	°7Ð';Ð<ñðIvð\ 5ØØØØ$˜gñð[vðj &ØØØØ$˜gñðivðx !ØØØØ$˜gñðwvðF /ØØØØ$˜gñðEvðT *ØØØØ$˜gñðSvðb  ØØØØ$˜gñðavðp %ØØØØ$˜gñðovð~ )Ø%Ø Ø%(¸Ñ;ØØØ&Ú%@Ø  5¨'Ð"2Ð3ñ
ð}vðT *Ø%Ø Ø% uÐ-ØØØ&+ WñðSvðf +Ø%Ø!ØØØ#à�Z�LÐ!ØØØØð&
ð " ?Ð3Ø'¨Ð9Ú!Rñ
ñðevðN *Ø%Ø ØØØ#Ø',¨z¨lÐ&;¸YÐ%GñðMvð` !ØØØ Ø#( 'ñð_vðn +ØØØ Ø#( 'ñðmvð| !ØØØ Ø#( 'ØØ$˜gñð{vðN	 +ØØØ Ø#( 'ØØ$˜gñðM	vð`	 *ØØØØ$˜gñð_	vðn	 4Ø Ø%ØØØ&+¨YÐ%7ñðm	vð~	 0Ø%Ø!ØØØ"ò&
ð ! 5¨'Ð"2Ð3ñð}	vð`
 3Ø%Ø!ØØØ&+ WØ Ø#( 'ØØ$˜gñð_
vðx
 Ø!Ø%ØØÚ%@ñðw
vðH Ø!Ø%Ø&+ WØØ$˜gØ Ø#(¨'Ð"2ØØñðGvð` 'ØØØØ.Ð/ñð_v€�ó vðn&ðR DRÖR¸C‘S˜˜_Ñ-×6Ñ6Õ7ÒRÐ ñ ÓÙÓðÐ òIòXð4 HLô !5ðH ‡�×Ñ˜Ð&<Ó=Ù¨Ô-ñ)ó .ó >ð)ð ‡�×Ñ˜Ð&<Ó=Ù¨Ô-ñ
&ó .ó >ð
&ñ ¨Ô-ñ!ó .ð!ð ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñGó .ó QðGð ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñ8/ó .ó Qð8/ðv ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñCó .ó QðCðL ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñ#+ó .ó Qð#+ðL ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñ+ó .ó Qð+ð\ ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñó .ó QððB ‡�×Ñ˜¨.Ð>OÐÓPÙ¨Ô-ñó .ó Qñùò[ LùòL Ss   Å1 W0Ï;W5