Ë
    êÿæi¥N  ã                   óf  — d dl Z d dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
mZmZmZ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mZ d dlmZ d2d„Z e «       fd„Z! eed¬«      Z"d3d„Z#d„ Z$ G d„ de%«      Z& G d„ dee
«      Z' G d„ dee
«      Z( G d„ dee
«      Z) G d„ dee
«      Z* G d„ de*«      Z+ G d„ de*«      Z, G d „ d!e*«      Z- G d"„ d#ee
«      Z. G d$„ d%e
«      Z/ G d&„ d'e«      Z0 G d(„ d)ee«      Z1 G d*„ d+eee
«      Z2 G d,„ d-eee
«      Z3 G d.„ d/eee
«      Z4 G d0„ d1eee
«      Z5y)4é    N)Údefaultdict)Úpartial)Úassert_array_equal)ÚBaseEstimatorÚClassifierMixinÚMetaEstimatorMixinÚRegressorMixinÚTransformerMixinÚclone)Ú_ScorerÚmean_squared_error)ÚBaseCrossValidator)ÚGroupsConsumerMixin)ÚSIMPLE_METHODS)ÚMetadataRouterÚMethodMappingÚprocess_routing)Ú_check_partial_fit_first_callc                 ód  — t        j                  «       }|d   j                  }|d   j                  }t        | d«      st	        d„ «      | _        |s8|j                  «       D ��ci c]  \  }}t        |t        «      r|dk7  r||“Œ }}}| j
                  |   |   j                  |«       yc c}}w )zòUtility function to store passed metadata to a method of obj.

    If record_default is False, kwargs whose values are "default" are skipped.
    This is so that checks on keyword arguments whose default was not changed
    are skipped.

    é   é   Ú_recordsc                  ó    — t        t        «      S ©N)r   Úlist© ó    úz/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/tests/metadata_routing_common.pyÚ<lambda>z!record_metadata.<locals>.<lambda>*   s	   € ¬;´tÔ+<r   ÚdefaultN)
ÚinspectÚstackÚfunctionÚhasattrr   r   ÚitemsÚ
isinstanceÚstrÚappend)ÚobjÚrecord_defaultÚkwargsr"   ÚcalleeÚcallerÚkeyÚvals           r   Úrecord_metadatar0      s«   € ô �M‰M‹O€EØ�1‰X×Ñ€FØ�1‰X×Ñ€FÜ�3˜
Ô#Ü"Ñ#<Ó=ˆŒÙð #ŸL™LœNô
á*‘��SÜ˜c¤3Ô'¨C°9Ò,<ð �‰HØ*ð 	ñ 
ð
 ‡L�L�Ñ˜Ñ ×'Ñ'¨Õ/ùó
s   Á%"B,c           	      ó^  — t        | dt        «       «      j                  |t        «       «      j                  |t        «       «      }|D ]ã  }t	        |j                  «       «      t	        |j                  «       «      k(  s)J d|j                  «       › d|j                  «       › �«       ‚|j                  «       D ]r  \  }}||   }	||v r)|	�'t        j                  |	|«      j                  «       rŒ6J ‚t        |	t        j                  «      rt        |	|«       Œ_|	|u rŒdJ d|	› d|› d|› �«       ‚ Œå y)a®  Check whether the expected metadata is passed to the object's method.

    Parameters
    ----------
    obj : estimator object
        sub-estimator to check routed params for
    method : str
        sub-estimator's method where metadata is routed to, or otherwise in
        the context of metadata routing referred to as 'callee'
    parent : str
        the parent method which should have called `method`, or otherwise in
        the context of metadata routing referred to as 'caller'
    split_params : tuple, default=empty
        specifies any parameters which are to be checked as being a subset
        of the original values
    **kwargs : dict
        passed metadata
    r   z	Expected z vs Nz
. Method: )ÚgetattrÚdictÚgetr   ÚsetÚkeysr%   ÚnpÚisinÚallr&   Úndarrayr   )
r)   ÚmethodÚparentÚsplit_paramsr+   Úall_recordsÚrecordr.   ÚvalueÚrecorded_values
             r   Úcheck_recorded_metadatarB   4   s  € ô( 	��Z¤£Ó(×,Ñ,¨V´T³VÓ<×@Ñ@ÀÌËÓPð ó ˆô �6—;‘;“=Ó!¤S¨¯©«Ó%7Ò7ð 	
Ø˜Ÿ™›� d¨6¯;©;«=¨/Ð:ó	
Ð7ð !Ÿ,™,ž.‰JˆC�Ø# C™[ˆNð �lÑ" ~Ð'AÜ—w‘w˜~¨uÓ5×9Ñ9Õ;Ð;Ð;ä˜n¬b¯j©jÔ9Ü& ~°uÕ=à)¨UÒ2ð Ø# NÐ#3°4¸°w¸jÈÈÐQóÐ2ñ )ñ r   F)r*   c           	      óX  — t        | t        «      r0| D ]*  \  }}|�
||v r||   }nd}t        |j                  |¬«       Œ, y|€g n|}t        D ]U  }||v rŒt        | |«      }|j                  j                  «       D ��cg c]  \  }}t        |t        «      s|�|‘Œ }	}}|	sŒUJ ‚ yc c}}w )a  Check if a metadata request dict is empty.

    One can exclude a method or a list of methods from the check using the
    ``exclude`` parameter. If metadata_request is a MetadataRouter, then
    ``exclude`` can be of the form ``{"object" : [method, ...]}``.
    N)Úexclude)	r&   r   Úassert_request_is_emptyÚrouterr   r2   Úrequestsr%   r'   )
Úmetadata_requestrD   ÚnameÚroute_mappingÚ_excluder;   ÚmmrÚpropÚaliasÚpropss
             r   rE   rE   b   sË   € ô Ð"¤NÔ3Û#3ÑˆD�-ØÐ" t¨w¡Ø" 4™=‘à�Ü# M×$8Ñ$8À(ÖKð $4ð 	à�O‰b¨€Gß ˆØ�WÑØÜÐ&¨Ó/ˆð  #Ÿ|™|×1Ñ1Ô3ô
á3‘��eÜ˜%¤Ô%¨Ð):ò Ø3ð 	ñ 
ò
 Ðˆyñ !ùó
s   Á>B&c                 óø   — |j                  «       D ]"  \  }}t        | |«      }|j                  |k(  rŒ"J ‚ t        D �cg c]	  }||vsŒ|‘Œ }}|D ]#  }t	        t        | |«      j                  «      sŒ#J ‚ y c c}w r   )r%   r2   rG   r   Úlen)ÚrequestÚ
dictionaryr;   rG   rL   Úempty_methodss         r   Úassert_request_equalrU      s€   € Ø&×,Ñ,Ö.Ñˆ�Ü�g˜vÓ&ˆØ�|‰|˜xÓ'Ð'Ð'ð /õ +9ÓU©. ¸FÈ*Ò<T’V¨.€MÐUÛˆÜ”w˜w¨Ó/×8Ñ8Õ9Ð9Ð9ñ  ùò Vs   ¾	A7ÁA7c                   ó   — e Zd Zd„ Zd„ Zy)Ú	_Registryc                 ó   — | S r   r   )ÚselfÚmemos     r   Ú__deepcopy__z_Registry.__deepcopy__�   ó   € Øˆr   c                 ó   — | S r   r   ©rY   s    r   Ú__copy__z_Registry.__copy__’   r\   r   N)Ú__name__Ú
__module__Ú__qualname__r[   r_   r   r   r   rW   rW   ‰   s   „ òór   rW   c                   ó8   — e Zd ZdZdd„Zd	d„Zd	d„Zd
d„Zd	d„Zy)ÚConsumingRegressorac  A regressor consuming metadata.

    Parameters
    ----------
    registry : list, default=None
        If a list, the estimator will append itself to the list in order to have
        a reference to the estimator later on. Since that reference is not
        required in all tests, registration can be skipped by leaving this value
        as None.
    Nc                 ó   — || _         y r   ©Úregistry©rY   rg   s     r   Ú__init__zConsumingRegressor.__init__¢   ó	   € Ø ˆ�r   c                 óp   — | j                   �| j                   j                  | «       t        | ||¬«       | S ©N©Úsample_weightÚmetadata©rg   r(   Úrecord_metadata_not_default©rY   ÚXÚyrn   ro   s        r   Úpartial_fitzConsumingRegressor.partial_fit¥   ó4   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä#Ø ¸õ	
ð ˆr   c                 óp   — | j                   �| j                   j                  | «       t        | ||¬«       | S rl   rp   rr   s        r   ÚfitzConsumingRegressor.fit®   rv   r   c                 ó^   — t        | ||¬«       t        j                  t        |«      f¬«      S )Nrm   ©Úshape)rq   r7   ÚzerosrQ   rr   s        r   ÚpredictzConsumingRegressor.predict·   s(   € Ü#Ø ¸õ	
ô �x‰xœs 1›v˜iÔ(Ð(r   c                 ó    — t        | ||¬«       y©Nrm   r   ©rq   rr   s        r   ÚscorezConsumingRegressor.score½   ó   € Ü#Ø ¸õ	
ð r   r   ©r    r    ©Nr    r    )	r`   ra   rb   Ú__doc__ri   ru   rx   r}   r�   r   r   r   rd   rd   –   s    „ ñ	ó!óóó)ôr   rd   c                   ó>   — e Zd ZdZd
d„Zd„ Zdd„Zd„ Zd„ Zd„ Z	d	„ Z
y)ÚNonConsumingClassifierú5A classifier which accepts no metadata on any method.c                 ó   — || _         y r   )Úalpha)rY   rŠ   s     r   ri   zNonConsumingClassifier.__init__Ç   s	   € Øˆ�
r   c                 ón   — t        j                  |«      | _        t        j                  |«      | _        | S r   )r7   ÚuniqueÚclasses_Ú	ones_likeÚcoef_©rY   rs   rt   s      r   rx   zNonConsumingClassifier.fitÊ   s%   € ÜŸ	™	 !›ˆŒÜ—\‘\ !“_ˆŒ
Øˆr   Nc                 ó   — | S r   r   )rY   rs   rt   Úclassess       r   ru   z"NonConsumingClassifier.partial_fitÏ   r\   r   c                 ó$   — | j                  |«      S r   )r}   ©rY   rs   s     r   Údecision_functionz(NonConsumingClassifier.decision_functionÒ   s   € Ø�|‰|˜A‹Ðr   c                 óŠ   — t        j                  t        |«      f¬«      }d|d t        |«      dz   d|t        |«      dz  d  |S )Nrz   r   r   r   )r7   ÚemptyrQ   )rY   rs   Úy_preds      r   r}   zNonConsumingClassifier.predictÕ   sC   € Ü—‘¤ Q£ 	Ô*ˆØ !ˆˆ}”�Q“˜1‘ÐØ !ˆŒs�1‹v˜‰{ˆ}ÐØˆr   c                 ó2  — t        j                  t        |«      t        | j                  «      ft         j                  ¬«      }t         j
                  j                  t        j                  t        | j                  «      «      t        |«      ¬«      |d d  |S )N©r{   Údtype©rŠ   Úsize)r7   r—   rQ   r�   Úfloat32ÚrandomÚ	dirichletÚones)rY   rs   Úy_probas      r   Úpredict_probaz$NonConsumingClassifier.predict_probaÛ   sc   € ä—(‘(¤# a£&¬#¨d¯m©mÓ*<Ð!=ÄRÇZÁZÔPˆä—Y‘Y×(Ñ(¬r¯w©w´s¸4¿=¹=Ó7IÓ/JÔQTÐUVÓQWÐ(ÓXˆ‘ˆ
Øˆr   c                 ó$   — | j                  |«      S r   )r£   r”   s     r   Úpredict_log_probaz(NonConsumingClassifier.predict_log_probaâ   s   € à×!Ñ! !Ó$Ð$r   )ç        r   )r`   ra   rb   r…   ri   rx   ru   r•   r}   r£   r¥   r   r   r   r‡   r‡   Ä   s(   „ Ù?óòó
òòòó%r   r‡   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚNonConsumingRegressorrˆ   c                 ó   — | S r   r   r�   s      r   rx   zNonConsumingRegressor.fitê   r\   r   c                 ó   — | S r   r   r�   s      r   ru   z!NonConsumingRegressor.partial_fití   r\   r   c                 ó>   — t        j                  t        |«      «      S r   )r7   r¡   rQ   r”   s     r   r}   zNonConsumingRegressor.predictð   s   € Ü�w‰w”s˜1“v‹Ðr   N)r`   ra   rb   r…   rx   ru   r}   r   r   r   r¨   r¨   ç   s   „ Ù?òòór   r¨   c                   óR   — e Zd ZdZdd„Z	 dd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zy)ÚConsumingClassifieraê  A classifier consuming metadata.

    Parameters
    ----------
    registry : list, default=None
        If a list, the estimator will append itself to the list in order to have
        a reference to the estimator later on. Since that reference is not
        required in all tests, registration can be skipped by leaving this value
        as None.

    alpha : float, default=0
        This parameter is only used to test the ``*SearchCV`` objects, and
        doesn't do anything.
    Nc                 ó    — || _         || _        y r   )rŠ   rg   )rY   rg   rŠ   s      r   ri   zConsumingClassifier.__init__  s   € ØˆŒ
Ø ˆ�r   c                 óˆ   — | j                   �| j                   j                  | «       t        | ||¬«       t        | |«       | S rl   )rg   r(   rq   r   )rY   rs   rt   r’   rn   ro   s         r   ru   zConsumingClassifier.partial_fit  s@   € ð �=‰=Ð$Ø�M‰M× Ñ  Ô&ä#Ø ¸õ	
ô 	& d¨GÔ4Øˆr   c                 óØ   — | j                   �| j                   j                  | «       t        | ||¬«       t        j                  |«      | _        t        j                  |«      | _        | S rl   )rg   r(   rq   r7   rŒ   r�   rŽ   r�   rr   s        r   rx   zConsumingClassifier.fit  sR   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä#Ø ¸õ	
ô Ÿ	™	 !›ˆŒÜ—\‘\ !“_ˆŒ
Øˆr   c                 ó¨   — t        | ||¬«       t        j                  t        |«      fd¬«      }d|t        |«      dz  d  d|d t        |«      dz   |S )Nrm   Úint8rš   r   r   r   ©rq   r7   r—   rQ   ©rY   rs   rn   ro   Úy_scores        r   r}   zConsumingClassifier.predict   sV   € Ü#Ø ¸õ	
ô —(‘(¤# a£& °&Ô9ˆØ!"ˆ”�A“˜!‘�ÐØ!"ˆ�”#�a“&˜A‘+ÐØˆr   c                 óN  — t        | ||¬«       t        j                  t        |«      t        | j                  «      ft        j
                  ¬«      }t        j                  j                  t        j                  t        | j                  «      «      t        |«      ¬«      |d d  |S )Nrm   rš   rœ   )	rq   r7   r—   rQ   r�   rž   rŸ   r    r¡   )rY   rs   rn   ro   r¢   s        r   r£   z!ConsumingClassifier.predict_proba)  st   € Ü#Ø ¸õ	
ô —(‘(¤# a£&¬#¨d¯m©mÓ*<Ð!=ÄRÇZÁZÔPˆä—Y‘Y×(Ñ(¬r¯w©w´s¸4¿=¹=Ó7IÓ/JÔQTÐUVÓQWÐ(ÓXˆ‘ˆ
Øˆr   c                 ó@   — t        | ||¬«       | j                  |«      S rl   )rq   r£   ©rY   rs   rn   ro   s       r   r¥   z%ConsumingClassifier.predict_log_proba2  s$   € Ü#Ø ¸õ	
ð ×!Ñ! !Ó$Ð$r   c                 ó¦   — t        | ||¬«       t        j                  t        |«      f¬«      }d|t        |«      dz  d  d|d t        |«      dz   |S )Nrm   rz   r   r   r   r³   r´   s        r   r•   z%ConsumingClassifier.decision_function8  sT   € Ü#Ø ¸õ	
ô —(‘(¤# a£& Ô+ˆØ!"ˆ”�A“˜!‘�ÐØ!"ˆ�”#�a“&˜A‘+ÐØˆr   c                 ó    — t        | ||¬«       yr   r€   rr   s        r   r�   zConsumingClassifier.scoreA  r‚   r   )Nr¦   r„   rƒ   )r`   ra   rb   r…   ri   ru   rx   r}   r£   r¥   r•   r�   r   r   r   r­   r­   ô   s6   „ ñó!ð
 ENó
ó
óóó%óôr   r­   c                   ó    — e Zd ZdZed„ «       Zy)Ú&ConsumingClassifierWithoutPredictProbaz×ConsumingClassifier without a predict_proba method, but with predict_log_proba.

    Used to mimic dynamic method selection such as in the `_parallel_predict_proba()`
    function called by `BaggingClassifier`.
    c                 ó   — t        d«      ‚©Nz-This estimator does not support predict_proba©ÚAttributeErrorr^   s    r   r£   z4ConsumingClassifierWithoutPredictProba.predict_probaO  ó   € äÐLÓMÐMr   N)r`   ra   rb   r…   Úpropertyr£   r   r   r   r¼   r¼   H  s   „ ñð ñNó ñNr   r¼   c                   ó    — e Zd ZdZed„ «       Zy)Ú)ConsumingClassifierWithoutPredictLogProbaz¸ConsumingClassifier without a predict_log_proba method, but with predict_proba.

    Used to mimic dynamic method selection such as in
    `BaggingClassifier.predict_log_proba()`.
    c                 ó   — t        d«      ‚©Nz1This estimator does not support predict_log_probar¿   r^   s    r   r¥   z;ConsumingClassifierWithoutPredictLogProba.predict_log_proba[  ó   € äÐPÓQÐQr   N)r`   ra   rb   r…   rÂ   r¥   r   r   r   rÄ   rÄ   T  s   „ ñð ñRó ñRr   rÄ   c                   ó0   — e Zd ZdZed„ «       Zed„ «       Zy)Ú"ConsumingClassifierWithOnlyPredictz˜ConsumingClassifier with only a predict method.

    Used to mimic dynamic method selection such as in
    `BaggingClassifier.predict_log_proba()`.
    c                 ó   — t        d«      ‚r¾   r¿   r^   s    r   r£   z0ConsumingClassifierWithOnlyPredict.predict_probag  rÁ   r   c                 ó   — t        d«      ‚rÆ   r¿   r^   s    r   r¥   z4ConsumingClassifierWithOnlyPredict.predict_log_probak  rÇ   r   N)r`   ra   rb   r…   rÂ   r£   r¥   r   r   r   rÉ   rÉ   `  s3   „ ñð ñNó ðNð ñRó ñRr   rÉ   c                   ó8   — e Zd ZdZdd„Zd	d„Zd
d„Zd
d„Zdd„Zy)ÚConsumingTransformera~  A transformer which accepts metadata on fit and transform.

    Parameters
    ----------
    registry : list, default=None
        If a list, the estimator will append itself to the list in order to have
        a reference to the estimator later on. Since that reference is not
        required in all tests, registration can be skipped by leaving this value
        as None.
    Nc                 ó   — || _         y r   rf   rh   s     r   ri   zConsumingTransformer.__init__|  rj   r   c                 ó~   — | j                   �| j                   j                  | «       t        | ||¬«       d| _        | S )Nrm   T)rg   r(   rq   Úfitted_rr   s        r   rx   zConsumingTransformer.fit  s;   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä#Ø ¸õ	
ð ˆŒØˆr   c                 ó(   — t        | ||¬«       |dz   S r   r€   r¸   s       r   Ú	transformzConsumingTransformer.transform‰  ó   € Ü#Ø ¸õ	
ð �1‰uˆr   c                 ól   — t        | ||¬«       | j                  ||||¬«      j                  |||¬«      S rl   )rq   rx   rÒ   rr   s        r   Úfit_transformz"ConsumingTransformer.fit_transform�  sF   € ô
 	$Ø ¸õ	
ð �x‰x˜˜1¨MÀHˆxÓM×WÑWØ˜]°Xð Xó 
ð 	
r   c                 ó(   — t        | ||¬«       |dz
  S r   r€   r¸   s       r   Úinverse_transformz&ConsumingTransformer.inverse_transform›  rÓ   r   r   r„   rƒ   ©NN)	r`   ra   rb   r…   ri   rx   rÒ   rÕ   r×   r   r   r   rÍ   rÍ   p  s    „ ñ	ó!óóó

ôr   rÍ   c                   ó(   — e Zd ZdZdd„Zdd„Zdd„Zy)	Ú"ConsumingNoFitTransformTransformerzÔA metadata consuming transformer that doesn't inherit from
    TransformerMixin, and thus doesn't implement `fit_transform`. Note that
    TransformerMixin's `fit_transform` doesn't route metadata to `transform`.Nc                 ó   — || _         y r   rf   rh   s     r   ri   z+ConsumingNoFitTransformTransformer.__init__§  rj   r   c                 óp   — | j                   �| j                   j                  | «       t        | ||¬«       | S rl   )rg   r(   r0   rr   s        r   rx   z&ConsumingNoFitTransformTransformer.fitª  s/   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä˜¨MÀHÕMàˆr   c                 ó"   — t        | ||¬«       |S rl   )r0   r¸   s       r   rÒ   z,ConsumingNoFitTransformTransformer.transform²  s   € Ü˜¨MÀHÕMØˆr   r   ©NNNrØ   )r`   ra   rb   r…   ri   rx   rÒ   r   r   r   rÚ   rÚ   ¢  s   „ ñQó!óôr   rÚ   c                   ó*   ‡ — e Zd Zdˆ fd„	Zˆ fd„Zˆ xZS )ÚConsumingScorerc                 óB   •— t         ‰| �  t        di d¬«       || _        y )Nr   r}   )Ú
score_funcÚsignr+   Úresponse_method)Úsuperri   r   rg   )rY   rg   Ú	__class__s     €r   ri   zConsumingScorer.__init__¸  s'   ø€ Ü‰ÑÜ)°¸"Èið 	ô 	
ð !ˆ�r   c                 ó¶   •— | j                   �| j                   j                  | «       t        | fi |¤Ž |j                  dd «      }t        ‰| �  |||||¬«      S )Nrn   ©rn   )rg   r(   rq   r4   rå   Ú_score)rY   Úmethod_callerÚclfrs   rt   r+   rn   ræ   s          €r   ré   zConsumingScorer._score¾  sU   ø€ Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä# DÑ3¨FÒ3àŸ
™
 ?°DÓ9ˆÜ‰w‰~˜m¨S°!°QÀmˆ~ÓTÐTr   r   )r`   ra   rb   ri   ré   Ú__classcell__)ræ   s   @r   rà   rà   ·  s   ø„ õ!÷Uð Ur   rà   c                   ó,   — e Zd Zdd„Zdd„Zdd„Zd	d„Zy)
ÚConsumingSplitterNc                 ó   — || _         y r   rf   rh   s     r   ri   zConsumingSplitter.__init__É  rj   r   c              #   ó  K  — | j                   �| j                   j                  | «       t        | ||¬«       t        |«      dz  }t	        t        d|«      «      }t	        t        |t        |«      «      «      }||f–— ||f–— y ­w)N)Úgroupsro   r   r   )rg   r(   rq   rQ   r   Úrange)rY   rs   rt   rñ   ro   Úsplit_indexÚtrain_indicesÚtest_indicess           r   ÚsplitzConsumingSplitter.splitÌ  sw   è ø€ Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä# D°À(ÕKä˜!“f ‘kˆÜœU 1 kÓ2Ó3ˆÜœE +¬s°1«vÓ6Ó7ˆØ˜MÐ)Ò)Ø˜\Ð)Ó)ùs   ‚BBc                  ó   — y)Nr   r   )rY   rs   rt   rñ   ro   s        r   Úget_n_splitszConsumingSplitter.get_n_splitsØ  s   € Ør   c              #   óž   K  — t        |«      dz  }t        t        d|«      «      }t        t        |t        |«      «      «      }|–— |–— y ­w)Nr   r   )rQ   r   rò   )rY   rs   rt   rñ   ró   rô   rõ   s          r   Ú_iter_test_indicesz$ConsumingSplitter._iter_test_indicesÛ  sE   è ø€ Ü˜!“f ‘kˆÜœU 1 kÓ2Ó3ˆÜœE +¬s°1«vÓ6Ó7ˆØÒØÓùs   ‚AAr   r„   )NNNNrÞ   )r`   ra   rb   ri   rö   rø   rú   r   r   r   rî   rî   È  s   „ ó!ó
*óôr   rî   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚMetaRegressorz(A meta-regressor which is only a router.c                 ó   — || _         y r   )Ú	estimator)rY   rþ   s     r   ri   zMetaRegressor.__init__æ  s	   € Ø"ˆ�r   c                 óž   — t        | dfi |¤Ž} t        | j                  «      j                  ||fi |j                  j                  ¤Ž| _        y ©Nrx   )r   r   rþ   rx   Ú
estimator_©rY   rs   rt   Ú
fit_paramsÚparamss        r   rx   zMetaRegressor.fité  sC   € Ü   uÑ;°
Ñ;ˆØ3œ% §¡Ó/×3Ñ3°A°qÑQ¸F×<LÑ<L×<PÑ<PÑQˆ�r   c                 ó†   — t        | ¬«      j                  | j                  t        «       j                  dd¬«      ¬«      }|S ©N©Úownerrx   ©r-   r,   ©rþ   Úmethod_mapping)r   Úaddrþ   r   ©rY   rF   s     r   Úget_metadata_routingz"MetaRegressor.get_metadata_routingí  s?   € Ü dÔ+×/Ñ/Ø—n‘nÜ(›?×.Ñ.°eÀEÐ.ÓJð 0ó 
ˆð ˆr   N©r`   ra   rb   r…   ri   rx   r  r   r   r   rü   rü   ã  s   „ Ù2ò#òRór   rü   c                   ó,   — e Zd ZdZdd„Zdd„Zd„ Zd„ Zy)ÚWeightedMetaRegressorz*A meta-regressor which is also a consumer.Nc                 ó    — || _         || _        y r   ©rþ   rg   ©rY   rþ   rg   s      r   ri   zWeightedMetaRegressor.__init__ø  ó   € Ø"ˆŒØ ˆ�r   c                 ó  — | j                   �| j                   j                  | «       t        | |¬«       t        | dfd|i|¤Ž} t	        | j
                  «      j                  ||fi |j
                  j                  ¤Ž| _        | S ©Nrè   rx   rn   ©rg   r(   r0   r   r   rþ   rx   r  )rY   rs   rt   rn   r  r  s         r   rx   zWeightedMetaRegressor.fitü  ss   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä˜¨MÕ:Ü   uÑX¸MÐXÈZÑXˆØ3œ% §¡Ó/×3Ñ3°A°qÑQ¸F×<LÑ<L×<PÑ<PÑQˆŒØˆr   c                 ó~   — t        | dfi |¤Ž} | j                  j                  |fi |j                  j                  ¤ŽS )Nr}   )r   r  r}   rþ   )rY   rs   Úpredict_paramsr  s       r   r}   zWeightedMetaRegressor.predict  s;   € Ü   yÑC°NÑCˆØ&ˆt�‰×&Ñ& qÑE¨F×,<Ñ,<×,DÑ,DÑEÐEr   c                 óÆ   — t        | ¬«      j                  | «      j                  | j                  t	        «       j                  dd¬«      j                  dd¬«      ¬«      }|S )Nr  rx   r	  r}   r
  ©r   Úadd_self_requestr  rþ   r   r  s     r   r  z*WeightedMetaRegressor.get_metadata_routing	  sX   € ä Ô&ßÑ˜dÓ#ß‰SØŸ.™.Ü,›ß‘˜E¨%�Ó0ß‘˜I¨i�Ó8ð	 ó ð 	ð ˆr   r   )r`   ra   rb   r…   ri   rx   r}   r  r   r   r   r  r  õ  s   „ Ù4ó!óòFór   r  c                   ó&   — e Zd ZdZdd„Zdd„Zd„ Zy)ÚWeightedMetaClassifierzEA meta-estimator which also consumes sample_weight itself in ``fit``.Nc                 ó    — || _         || _        y r   r  r  s      r   ri   zWeightedMetaClassifier.__init__  r  r   c                 ó  — | j                   �| j                   j                  | «       t        | |¬«       t        | dfd|i|¤Ž} t	        | j
                  «      j                  ||fi |j
                  j                  ¤Ž| _        | S r  r  )rY   rs   rt   rn   r+   r  s         r   rx   zWeightedMetaClassifier.fit  ss   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&ä˜¨MÕ:Ü   uÑT¸MÐTÈVÑTˆØ3œ% §¡Ó/×3Ñ3°A°qÑQ¸F×<LÑ<L×<PÑ<PÑQˆŒØˆr   c                 ó¤   — t        | ¬«      j                  | «      j                  | j                  t	        «       j                  dd¬«      ¬«      }|S r  r  r  s     r   r  z+WeightedMetaClassifier.get_metadata_routing'  sL   € ä Ô&ßÑ˜dÓ#ß‰SØŸ.™.Ü,›×2Ñ2¸%ÈÐ2ÓNð ó ð 	ð ˆr   r   r  r   r   r   r  r    s   „ ÙOó!óó	r   r  c                   ó,   — e Zd ZdZd„ Zdd„Zdd„Zd„ Zy)ÚMetaTransformerzA simple meta-transformer.c                 ó   — || _         y r   )Útransformer)rY   r&  s     r   ri   zMetaTransformer.__init__6  s
   € Ø&ˆÕr   Nc                 ó    — t        | dfi |¤Ž} t        | j                  «      j                  ||fi |j                  j                  ¤Ž| _        | S r   )r   r   r&  rx   Útransformer_r  s        r   rx   zMetaTransformer.fit9  sK   € Ü   uÑ;°
Ñ;ˆØ7œE $×"2Ñ"2Ó3×7Ñ7¸¸1ÑWÀ×@RÑ@R×@VÑ@VÑWˆÔØˆr   c                 ó~   — t        | dfi |¤Ž} | j                  j                  |fi |j                  j                  ¤ŽS )NrÒ   )r   r(  rÒ   r&  )rY   rs   rt   Útransform_paramsr  s        r   rÒ   zMetaTransformer.transform>  s>   € Ü   {ÑGÐ6FÑGˆØ*ˆt× Ñ ×*Ñ*¨1ÑM°×0BÑ0B×0LÑ0LÑMÐMr   c                 ó¤   — t        | ¬«      j                  | j                  t        «       j                  dd¬«      j                  dd¬«      ¬«      S )Nr  rx   r	  rÒ   )r&  r  )r   r  r&  r   r^   s    r   r  z$MetaTransformer.get_metadata_routingB  sI   € Ü DÔ)×-Ñ-Ø×(Ñ(Ü(›?ß‰S˜ eˆSÓ,ß‰S˜¨KˆSÓ8ð	 .ó 
ð 	
r   r   )r`   ra   rb   r…   ri   rx   rÒ   r  r   r   r   r$  r$  3  s   „ Ù$ò'óó
Nó
r   r$  )Tr   )6r!   Úcollectionsr   Ú	functoolsr   Únumpyr7   Únumpy.testingr   Úsklearn.baser   r   r   r	   r
   r   Úsklearn.metrics._scorerr   r   Úsklearn.model_selectionr   Úsklearn.model_selection._splitr   Ú sklearn.utils._metadata_requestsr   Úsklearn.utils.metadata_routingr   r   r   Úsklearn.utils.multiclassr   r0   ÚtuplerB   rq   rE   rU   r   rW   rd   r‡   r¨   r­   r¼   rÄ   rÉ   rÍ   rÚ   rà   rî   rü   r  r  r$  r   r   r   Ú<module>r8     sa  ðÛ Ý #Ý ã Ý ,÷÷ ÷ @Ý 6Ý >õ÷ñ õ
 Có0ñ, ?D»gó (ñV & oÀeÔLÐ óò::ô
�ô 
ô+˜¨ô +ô\ %˜_¨mô  %ôF
˜N¨Mô 
ôQ˜/¨=ô Qôh	NÐ-@ô 	Nô	RÐ0Cô 	RôRÐ)<ô Rô /Ð+¨]ô /ôd¨ô ô*U�gô Uô"Ð+Ð-?ô ô6Ð&¨¸ô ô$Ð.°Àô ôDÐ/°À-ô ô8
Ð(Ð*:¸Mõ 
r   