§
    §éUg¾E  ã                   ól  — 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 d,d„Z e¦   «         fd„Z eed¬¦  «        Zd-d„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e¦  «        Z( G d„ de¦  «        Z) G d „ d!e¦  «        Z* G d"„ d#ee¦  «        Z+ G d$„ d%e	e
e¦  «        Z, G d&„ d'e	e
e¦  «        Z- G d(„ d)e	ee¦  «        Z. G d*„ d+e	ee¦  «        Z/dS ).é    )ÚpartialN)Ú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_callTc                 óˆ   — t          | d¦  «        si | _        |sd„ |                     ¦   «         D ¦   «         }|| j        |<   dS )zëUtility function to store passed metadata to a method.

    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                 óP   — i | ]#\  }}t          |t          ¦  «        r|d k    ¯ ||“Œ$S )Údefault©Ú
isinstanceÚstr)Ú.0ÚkeyÚvals      úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/metadata_routing_common.pyú
<dictcomp>z#record_metadata.<locals>.<dictcomp>'   sG   € ð 
ð 
ð 
á��SÝ˜c¥3Ñ'Ô'ð
ð -0°9Ò,<Ð,<ð �à,<Ð,<Ð,<ó    N)Úhasattrr   Úitems)ÚobjÚmethodÚrecord_defaultÚkwargss       r   Úrecord_metadatar'      s_   € õ �3˜
Ñ#Ô#ð ØˆŒØð 
ð
ð 
à"ŸLšL™NœNð
ñ 
ô 
ˆð
 "€C„L�ÑÐÐr    c                 ó’  — t          | dt          ¦   «         ¦  «                             |t          ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        k    s4J d|                     ¦   «         › d|                     ¦   «         › �¦   «         ‚|                     ¦   «         D ]|\  }}||         }||v r,|�*t          j        ||¦  «                             ¦   «         sJ ‚Œ=t          |t          j
        ¦  «        rt          ||¦  «         Œh||u sJ d|› d|› �¦   «         ‚Œ}dS )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
    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 N)ÚgetattrÚdictÚgetÚsetÚkeysr"   ÚnpÚisinÚallr   Úndarrayr   )r#   r$   Úsplit_paramsr&   Úrecordsr   ÚvalueÚrecorded_values           r   Úcheck_recorded_metadatar6   /   s[  € õ �c˜:¥t¡v¤vÑ.Ô.×2Ò2°6½4¹6¼6ÑBÔB€GÝˆv�{Š{‰}Œ}ÑÔ¥Ø�Š‰Œñ"ô "ò ð ð à6�6—;’;‘=”=Ð6Ð6 g§l¢l¡n¤nÐ6Ð6ñô ð ð —l’l‘n”nð 
Xð 
X‰
ˆˆUØ  œˆð �,ÐÐ >Ð#=Ý”7˜>¨5Ñ1Ô1×5Ò5Ñ7Ô7Ð7Ð7Ð7Ð7å˜.­"¬*Ñ5Ô5ð XÝ" >°5Ñ9Ô9Ð9Ð9à%¨Ð.Ð.Ð.Ð0W¸NÐ0WÐ0WÐPUÐ0WÐ0WÑ.Ô.Ð.Ð.ð
Xð 
Xr    F)r%   c                 ó*  — t          | t          ¦  «        r1| D ],\  }}|�||v r	||         }nd}t          |j        |¬¦  «         Œ-dS |€g n|}t          D ]>}||v rŒt          | |¦  «        }d„ |j                             ¦   «         D ¦   «         }|rJ ‚Œ?dS )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)Úexcludec                 óF   — g | ]\  }}t          |t          ¦  «        s|®|‘ŒS ©Nr   )r   ÚpropÚaliass      r   ú
<listcomp>z+assert_request_is_empty.<locals>.<listcomp>g   s@   € ð 
ð 
ð 
á��eÝ˜%¥Ñ%Ô%ð
ð */Ð):ð à):Ð):Ð):r    )r   r   Úassert_request_is_emptyÚrouterr   r)   Úrequestsr"   )Úmetadata_requestr8   ÚnameÚroute_mappingÚ_excluder$   ÚmmrÚpropss           r   r>   r>   R   sê   € õ Ð"¥NÑ3Ô3ð Ø#3ð 	Lð 	LÑˆD�-ØÐ" t¨w  Ø" 4œ=��à�Ý# MÔ$8À(ÐKÑKÔKÐKÐKØˆà�Oˆbˆb¨€GÝ ð 	ð 	ˆØ�WÐÐØÝÐ&¨Ñ/Ô/ˆð
ð 
à"œ|×1Ò1Ñ3Ô3ð
ñ 
ô 
ˆð
 ÐÐÐÐð	ð 	r    c                 óî   ‡— ‰                      ¦   «         D ]"\  }}t          | |¦  «        }|j        |k    sJ ‚Œ#ˆfd„t          D ¦   «         }|D ]&}t	          t          | |¦  «        j        ¦  «        rJ ‚Œ'd S )Nc                 ó   •— g | ]}|‰v¯|‘Œ	S © rI   )r   r$   Ú
dictionarys     €r   r=   z(assert_request_equal.<locals>.<listcomp>t   s#   ø€ ÐUÐUÐU ¸FÈ*Ð<TÐ<T�VÐ<TÐ<TÐ<Tr    )r"   r)   r@   r   Úlen)ÚrequestrJ   r$   r@   rE   Úempty_methodss    `    r   Úassert_request_equalrN   o   sž   ø€ Ø&×,Ò,Ñ.Ô.ð (ð (Ñˆ�Ý�g˜vÑ&Ô&ˆØŒ|˜xÒ'Ð'Ð'Ð'Ð'àUÐUÐUÐU­.ÐUÑUÔU€MØð :ð :ˆÝ•w˜w¨Ñ/Ô/Ô8Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :r    c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	_Registryc                 ó   — | S r:   rI   )ÚselfÚmemos     r   Ú__deepcopy__z_Registry.__deepcopy__   ó   € Øˆr    c                 ó   — | S r:   rI   ©rR   s    r   Ú__copy__z_Registry.__copy__‚   rU   r    N)Ú__name__Ú
__module__Ú__qualname__rT   rX   rI   r    r   rP   rP   y   s2   € € € € € ðð ð ðð ð ð ð r    rP   c                   ó:   — e Zd ZdZd	d„Zd
d„Zd
d„Zdd„Zd
d„ZdS )Ú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                 ó   — || _         d S r:   ©Úregistry©rR   r`   s     r   Ú__init__zConsumingRegressor.__init__’   ó   € Ø ˆŒˆˆr    r   c                 ón   — | j         �| j                              | ¦  «         t          | d||¬¦  «         | S ©NÚpartial_fit©Úsample_weightÚmetadata©r`   ÚappendÚrecord_metadata_not_default©rR   ÚXÚyrh   ri   s        r   rf   zConsumingRegressor.partial_fit•   sG   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å#Ø�-¨}Àxð	
ñ 	
ô 	
ð 	
ð ˆr    c                 ón   — | j         �| j                              | ¦  «         t          | d||¬¦  «         | S ©NÚfitrg   rj   rm   s        r   rr   zConsumingRegressor.fitž   óG   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å#Ø�% }¸xð	
ñ 	
ô 	
ð 	
ð ˆr    c                 ón   — t          | d||¬¦  «         t          j        t          |¦  «        f¬¦  «        S )NÚpredictrg   ©Úshape)rl   r.   ÚzerosrK   rm   s        r   ru   zConsumingRegressor.predict§   s?   € Ý#Ø�)¨=À8ð	
ñ 	
ô 	
ð 	
õ Œx�s 1™vœv˜iÐ(Ñ(Ô(Ð(r    c                 ó,   — t          | d||¬¦  «         dS )NÚscorerg   é   )rl   rm   s        r   rz   zConsumingRegressor.score­   s)   € Ý#Ø�'¨Àð	
ñ 	
ô 	
ð 	
ð ˆqr    r:   ©r   r   ©Nr   r   )	rY   rZ   r[   Ú__doc__rb   rf   rr   ru   rz   rI   r    r   r]   r]   †   s‚   € € € € € ð	ð 	ð!ð !ð !ð !ðð ð ð ðð ð ð ð)ð )ð )ð )ðð ð ð ð ð r    r]   c                   ó4   — e Zd ZdZd	d„Zd„ Zd
d„Zd„ Zd„ ZdS )ÚNonConsumingClassifierú5A classifier which accepts no metadata on any method.ç        c                 ó   — || _         d S r:   )Úalpha)rR   r„   s     r   rb   zNonConsumingClassifier.__init__·   s   € ØˆŒ
ˆ
ˆ
r    c                 ó8   — t          j        |¦  «        | _        | S r:   )r.   ÚuniqueÚclasses_©rR   rn   ro   s      r   rr   zNonConsumingClassifier.fitº   s   € Ýœ	 !™œˆŒØˆr    Nc                 ó   — | S r:   rI   )rR   rn   ro   Úclassess       r   rf   z"NonConsumingClassifier.partial_fit¾   rU   r    c                 ó,   — |                       |¦  «        S r:   )ru   ©rR   rn   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 )Nrv   r   é   r{   )r.   ÚemptyrK   )rR   rn   Úy_preds      r   ru   zNonConsumingClassifier.predictÄ   sQ   € Ý”¥ Q¡¤ 	Ð*Ñ*Ô*ˆØ !ˆˆ}•�Q‘”˜1‘ˆ}ÑØ !ˆ�s�1‰vŒv˜‰{ˆ}ˆ}ÑØˆr    )r‚   r:   )	rY   rZ   r[   r~   rb   rr   rf   r�   ru   rI   r    r   r€   r€   ´   so   € € € € € Ø?Ð?ðð ð ð ðð ð ðð ð ð ðð ð ðð ð ð ð r    r€   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚNonConsumingRegressorr�   c                 ó   — | S r:   rI   rˆ   s      r   rr   zNonConsumingRegressor.fitÎ   rU   r    c                 ó   — | S r:   rI   rˆ   s      r   rf   z!NonConsumingRegressor.partial_fitÑ   rU   r    c                 óD   — t          j        t          |¦  «        ¦  «        S r:   )r.   ÚonesrK   rŒ   s     r   ru   zNonConsumingRegressor.predictÔ   s   € ÝŒw•s˜1‘v”v‰ŒÐr    N)rY   rZ   r[   r~   rr   rf   ru   rI   r    r   r“   r“   Ë   sG   € € € € € Ø?Ð?ðð ð ðð ð ðð ð ð ð r    r“   c                   óL   — 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S )Ú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.
    Nr‚   c                 ó"   — || _         || _        d S r:   )r„   r`   )rR   r`   r„   s      r   rb   zConsumingClassifier.__init__è   s   € ØˆŒ
Ø ˆŒˆˆr    r   c                 óŽ   — | j         �| j                              | ¦  «         t          | d||¬¦  «         t          | |¦  «         | S re   )r`   rk   rl   r   )rR   rn   ro   rŠ   rh   ri   s         r   rf   zConsumingClassifier.partial_fitì   sY   € ð Œ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å#Ø�-¨}Àxð	
ñ 	
ô 	
ð 	
õ 	& d¨GÑ4Ô4Ð4Øˆr    c                 ó    — | j         �| j                              | ¦  «         t          | d||¬¦  «         t          j        |¦  «        | _        | S rq   )r`   rk   rl   r.   r†   r‡   rm   s        r   rr   zConsumingClassifier.fitø   sV   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å#Ø�% }¸xð	
ñ 	
ô 	
ð 	
õ œ	 !™œˆŒØˆr    c                 óÐ   — t          | d||¬¦  «         t          j        t          |¦  «        fd¬¦  «        }d|t          |¦  «        dz  d …<   d|d t          |¦  «        dz  …<   |S )Nru   rg   Úint8)rw   Údtyper   r�   r{   ©rl   r.   r�   rK   ©rR   rn   rh   ri   Úy_scores        r   ru   zConsumingClassifier.predict  su   € Ý#Ø�)¨=À8ð	
ñ 	
ô 	
ð 	
õ ”(¥# a¡&¤& °&Ð9Ñ9Ô9ˆØ!"ˆ•�A‘”˜!‘��ÑØ!"ˆ�•#�a‘&”&˜A‘+�ÑØˆr    c                 ó0  — t          | d||¬¦  «         t          j        t          |¦  «        df¬¦  «        }t          j        ddg¦  «        |d t          |¦  «        dz  …d d …f<   t          j        ddg¦  «        |t          |¦  «        dz  d …d d …f<   |S )NÚpredict_probarg   r�   rv   g      ð?r‚   )rl   r.   r�   rK   Úasarray)rR   rn   rh   ri   Úy_probas        r   r¤   z!ConsumingClassifier.predict_proba  s£   € Ý#Ø�/°Èð	
ñ 	
ô 	
ð 	
õ ”(¥# a¡&¤&¨! Ð-Ñ-Ô-ˆÝ$&¤J°°S¨zÑ$:Ô$:ˆ�•#�a‘&”&˜A‘+�˜q˜q˜qÐ Ñ!Ý$&¤J°°S¨zÑ$:Ô$:ˆ•�A‘”˜!‘��˜q˜q˜qÐ Ñ!Øˆr    c                 ó   — d S r:   rI   ©rR   rn   rh   ri   s       r   Úpredict_log_probaz%ConsumingClassifier.predict_log_proba  s   € Øˆr    c                 óÎ   — t          | d||¬¦  «         t          j        t          |¦  «        f¬¦  «        }d|t          |¦  «        dz  d …<   d|d t          |¦  «        dz  …<   |S )Nr¤   rg   rv   r   r�   r{   r    r¡   s        r   r�   z%ConsumingClassifier.decision_function  ss   € Ý#Ø�/°Èð	
ñ 	
ô 	
ð 	
õ ”(¥# a¡&¤& Ð+Ñ+Ô+ˆØ!"ˆ•�A‘”˜!‘��ÑØ!"ˆ�•#�a‘&”&˜A‘+�ÑØˆr    )Nr‚   r}   r|   )rY   rZ   r[   r~   rb   rf   rr   ru   r¤   r©   r�   rI   r    r   r™   r™   Ø   s±   € € € € € ðð ð!ð !ð !ð !ð
 ENð
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r    r™   c                   ó:   — e Zd ZdZdd„Zd	d„Zd
d„Zd
d„Zd
d„ZdS )Ú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                 ó   — || _         d S r:   r_   ra   s     r   rb   zConsumingTransformer.__init__;  rc   r    c                 ón   — | j         �| j                              | ¦  «         t          | d||¬¦  «         | S rq   rj   rm   s        r   rr   zConsumingTransformer.fit>  rs   r    c                 ó,   — t          | d||¬¦  «         |S ©NÚ	transformrg   ©r'   r¨   s       r   r±   zConsumingTransformer.transformG  ó)   € ÝØ�+¨]ÀXð	
ñ 	
ô 	
ð 	
ð ˆr    c                 ó†   — t          | d||¬¦  «         |                      ||||¬¦  «                             |||¬¦  «        S )NÚfit_transformrg   )r'   rr   r±   rm   s        r   rµ   z"ConsumingTransformer.fit_transformM  s_   € õ
 	Ø�/°Èð	
ñ 	
ô 	
ð 	
ð �xŠx˜˜1¨MÀHˆxÑMÔM×WÒWØ˜]°Xð Xñ 
ô 
ð 	
r    c                 ó,   — t          | d||¬¦  «         |S )NÚinverse_transformrg   r²   r¨   s       r   r·   z&ConsumingTransformer.inverse_transformY  s*   € ÝØÐ%°]ÈXð	
ñ 	
ô 	
ð 	
ð ˆr    r:   ©NNN©NN)	rY   rZ   r[   r~   rb   rr   r±   rµ   r·   rI   r    r   r¬   r¬   /  s‚   € € € € € ð	ð 	ð!ð !ð !ð !ðð ð ð ðð ð ð ð

ð 

ð 

ð 

ðð ð ð ð ð r    r¬   c                   ó*   — e Zd ZdZdd„Zdd„Zdd„ZdS )	Ú"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                 ó   — || _         d S r:   r_   ra   s     r   rb   z+ConsumingNoFitTransformTransformer.__init__e  rc   r    c                 ón   — | j         �| j                              | ¦  «         t          | d||¬¦  «         | S rq   )r`   rk   r'   rm   s        r   rr   z&ConsumingNoFitTransformTransformer.fith  s<   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å˜˜e°=È8ÐTÑTÔTÐTàˆr    c                 ó,   — t          | d||¬¦  «         |S r°   r²   r¨   s       r   r±   z,ConsumingNoFitTransformTransformer.transformp  r³   r    r:   r¸   r¹   )rY   rZ   r[   r~   rb   rr   r±   rI   r    r   r»   r»   `  s\   € € € € € ðQð Qð!ð !ð !ð !ðð ð ð ðð ð ð ð ð r    r»   c                   ó*   ‡ — e Zd Zdˆ fd„	Zˆ fd„Zˆ xZS )ÚConsumingScorerNc                 ój   •— t          ¦   «                              t          di d¬¦  «         || _        d S )Nr{   ru   )Ú
score_funcÚsignr&   Úresponse_method)Úsuperrb   r   r`   )rR   r`   Ú	__class__s     €r   rb   zConsumingScorer.__init__x  s:   ø€ Ý‰Œ×ÒÝ)°¸"Èið 	ñ 	
ô 	
ð 	
ð !ˆŒˆˆr    c                 óÚ   •— | j         �| j                              | ¦  «         t          | dfi |¤Ž |                     dd ¦  «        }t	          ¦   «                              |||||¬¦  «        S )Nrz   rh   ©rh   )r`   rk   rl   r+   rÅ   Ú_score)rR   Úmethod_callerÚclfrn   ro   r&   rh   rÆ   s          €r   rÉ   zConsumingScorer._score~  sl   ø€ ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å# D¨'Ð<Ð<°VÐ<Ð<Ð<àŸ
š
 ?°DÑ9Ô9ˆÝ‰wŒw�~Š~˜m¨S°!°QÀmˆ~ÑTÔTÐTr    r:   )rY   rZ   r[   rb   rÉ   Ú__classcell__)rÆ   s   @r   rÀ   rÀ   w  s_   ø€ € € € € ð!ð !ð !ð !ð !ð !ðUð Uð Uð Uð Uð Uð Uð Uð Ur    rÀ   c                   ó.   — e Zd Zdd„Zdd„Zd	d„Zd
d„ZdS )ÚConsumingSplitterNc                 ó   — || _         d S r:   r_   ra   s     r   rb   zConsumingSplitter.__init__‰  rc   r    r   c              #   ó<  K  — | j         �| j                              | ¦  «         t          | d||¬¦  «         t          |¦  «        dz  }t	          t          d|¦  «        ¦  «        }t	          t          |t          |¦  «        ¦  «        ¦  «        }||fV — ||fV — d S )NÚsplit)Úgroupsri   r�   r   )r`   rk   rl   rK   ÚlistÚrange)rR   rn   ro   rÒ   ri   Úsplit_indexÚtrain_indicesÚtest_indicess           r   rÑ   zConsumingSplitter.splitŒ  s¦   è è € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å# D¨'¸&È8ÐTÑTÔTÐTå˜!‘f”f ‘kˆÝ�U 1 kÑ2Ô2Ñ3Ô3ˆÝ�E +­s°1©v¬vÑ6Ô6Ñ7Ô7ˆØ˜MÐ)Ð)Ð)Ð)Ø˜\Ð)Ð)Ð)Ð)Ð)Ð)r    c                 ó   — dS )Nr�   rI   )rR   rn   ro   rÒ   ri   s        r   Úget_n_splitszConsumingSplitter.get_n_splits˜  s   € Øˆqr    c              #   óÌ   K  — t          |¦  «        dz  }t          t          d|¦  «        ¦  «        }t          t          |t          |¦  «        ¦  «        ¦  «        }|V — |V — d S )Nr�   r   )rK   rÓ   rÔ   )rR   rn   ro   rÒ   rÕ   rÖ   r×   s          r   Ú_iter_test_indicesz$ConsumingSplitter._iter_test_indices›  sg   è è € Ý˜!‘f”f ‘kˆÝ�U 1 kÑ2Ô2Ñ3Ô3ˆÝ�E +­s°1©v¬vÑ6Ô6Ñ7Ô7ˆØÐÐÐØÐÐÐÐÐr    r:   r}   )NNNNr¸   )rY   rZ   r[   rb   rÑ   rÙ   rÛ   rI   r    r   rÎ   rÎ   ˆ  sd   € € € € € ð!ð !ð !ð !ð
*ð 
*ð 
*ð 
*ðð ð ð ðð ð ð ð ð r    rÎ   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚMetaRegressorz(A meta-regressor which is only a router.c                 ó   — || _         d S r:   )Ú	estimator)rR   rß   s     r   rb   zMetaRegressor.__init__¦  s   € Ø"ˆŒˆˆr    c                 ó‚   — t          | dfi |¤Ž} t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        d S ©Nrr   )r   r
   rß   rr   Ú
estimator_©rR   rn   ro   Ú
fit_paramsÚparamss        r   rr   zMetaRegressor.fit©  sK   € Ý   uÐ;Ð;°
Ð;Ð;ˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒˆˆr    c                 ó°   — t          | j        j        ¬¦  «                             | j        t          ¦   «                              dd¬¦  «        ¬¦  «        }|S ©N©Úownerrr   ©ÚcallerÚcallee©rß   Úmethod_mapping)r   rÆ   rY   Úaddrß   r   ©rR   r?   s     r   Úget_metadata_routingz"MetaRegressor.get_metadata_routing­  sS   € Ý d¤nÔ&=Ð>Ñ>Ô>×BÒBØ”nÝ(™?œ?×.Ò.°eÀEÐ.ÑJÔJð Cñ 
ô 
ˆð ˆr    N©rY   rZ   r[   r~   rb   rr   rñ   rI   r    r   rÝ   rÝ   £  sJ   € € € € € Ø2Ð2ð#ð #ð #ðRð Rð Rðð ð ð ð r    rÝ   c                   ó.   — e Zd ZdZdd„Zdd„Zd„ Zd„ ZdS )ÚWeightedMetaRegressorz*A meta-regressor which is also a consumer.Nc                 ó"   — || _         || _        d S r:   ©rß   r`   ©rR   rß   r`   s      r   rb   zWeightedMetaRegressor.__init__¸  ó   € Ø"ˆŒØ ˆŒˆˆr    c                 óì   — | j         �| j                              | ¦  «         t          | d|¬¦  «         t          | dfd|i|¤Ž} t	          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S ©Nrr   rÈ   rh   ©r`   rk   r'   r   r
   rß   rr   râ   )rR   rn   ro   rh   rä   rå   s         r   rr   zWeightedMetaRegressor.fit¼  s„   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å˜˜e°=ÐAÑAÔAÐAÝ   uÐXÐX¸MÐXÈZÐXÐXˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒØˆr    c                 óX   — t          | dfi |¤Ž} | j        j        |fi |j        j        ¤ŽS )Nru   )r   râ   ru   rß   )rR   rn   Úpredict_paramsrå   s       r   ru   zWeightedMetaRegressor.predictÅ  s<   € Ý   yÐCÐC°NÐCÐCˆØ&ˆtŒÔ& qÐEÐE¨FÔ,<Ô,DÐEÐEÐEr    c                 ó   — t          | j        j        ¬¦  «                             | ¦  «                             | j        t          ¦   «                              dd¬¦  «                             dd¬¦  «        ¬¦  «        }|S )Nrè   rr   rê   ru   rí   ©r   rÆ   rY   Úadd_self_requestrï   rß   r   rð   s     r   rñ   z*WeightedMetaRegressor.get_metadata_routingÉ  sq   € å ¤Ô!8Ð9Ñ9Ô9ßÒ˜dÑ#Ô#ßŠSØœ.Ý,™œß’˜E¨%�Ñ0Ô0ß’˜I¨i�Ñ8Ô8ð	 ñ ô ð 	ð ˆr    r:   )rY   rZ   r[   r~   rb   rr   ru   rñ   rI   r    r   rô   rô   µ  sc   € € € € € Ø4Ð4ð!ð !ð !ð !ðð ð ð ðFð Fð Fðð ð ð ð r    rô   c                   ó(   — e Zd ZdZdd„Zdd„Zd„ ZdS )ÚWeightedMetaClassifierzEA meta-estimator which also consumes sample_weight itself in ``fit``.Nc                 ó"   — || _         || _        d S r:   rö   r÷   s      r   rb   zWeightedMetaClassifier.__init__Ú  rø   r    c                 óì   — | j         �| j                              | ¦  «         t          | d|¬¦  «         t          | dfd|i|¤Ž} t	          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S rú   rû   )rR   rn   ro   rh   r&   rå   s         r   rr   zWeightedMetaClassifier.fitÞ  s„   € ØŒ=Ð$ØŒM× Ò  Ñ&Ô&Ð&å˜˜e°=ÐAÑAÔAÐAÝ   uÐTÐT¸MÐTÈVÐTÐTˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒØˆr    c                 óÖ   — t          | j        j        ¬¦  «                             | ¦  «                             | j        t          ¦   «                              dd¬¦  «        ¬¦  «        }|S rç   rÿ   rð   s     r   rñ   z+WeightedMetaClassifier.get_metadata_routingç  sb   € å ¤Ô!8Ð9Ñ9Ô9ßÒ˜dÑ#Ô#ßŠSØœ.Ý,™œ×2Ò2¸%ÈÐ2ÑNÔNð ñ ô ð 	ð ˆr    r:   rò   rI   r    r   r  r  ×  sQ   € € € € € ØOÐOð!ð !ð !ð !ðð ð ð ð	ð 	ð 	ð 	ð 	r    r  c                   ó.   — e Zd ZdZd„ Zdd„Zdd„Zd„ ZdS )ÚMetaTransformerzA simple meta-transformer.c                 ó   — || _         d S r:   )Útransformer)rR   r	  s     r   rb   zMetaTransformer.__init__ö  s   € Ø&ˆÔÐÐr    Nc                 ó‚   — t          | dfi |¤Ž} t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S rá   )r   r
   r	  rr   Útransformer_rã   s        r   rr   zMetaTransformer.fitù  sN   € Ý   uÐ;Ð;°
Ð;Ð;ˆØ7�E $Ô"2Ñ3Ô3Ô7¸¸1ÐWÐWÀÔ@RÔ@VÐWÐWˆÔØˆr    c                 óX   — t          | dfi |¤Ž} | j        j        |fi |j        j        ¤ŽS )Nr±   )r   r  r±   r	  )rR   rn   ro   Útransform_paramsrå   s        r   r±   zMetaTransformer.transformþ  s>   € Ý   {ÐGÐGÐ6FÐGÐGˆØ*ˆtÔ Ô*¨1ÐMÐM°Ô0BÔ0LÐMÐMÐMr    c                 óÖ   — t          | j        j        ¬¦  «                             | j        t          ¦   «                              dd¬¦  «                             dd¬¦  «        ¬¦  «        S )Nrè   rr   rê   r±   )r	  rî   )r   rÆ   rY   rï   r	  r   rW   s    r   rñ   z$MetaTransformer.get_metadata_routing  s_   € Ý D¤NÔ$;Ð<Ñ<Ô<×@Ò@ØÔ(Ý(™?œ?ßŠS˜ eˆSÑ,Ô,ßŠS˜¨KˆSÑ8Ô8ð	 Añ 
ô 
ð 	
r    r:   )rY   rZ   r[   r~   rb   rr   r±   rñ   rI   r    r   r  r  ó  sd   € € € € € Ø$Ð$ð'ð 'ð 'ðð ð ð ð
Nð Nð Nð Nð
ð 
ð 
ð 
ð 
r    r  )Tr:   )0Ú	functoolsr   Únumpyr.   Ú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   r'   Útupler6   rl   r>   rN   rÓ   rP   r]   r€   r“   r™   r¬   r»   rÀ   rÎ   rÝ   rô   r  r  rI   r    r   ú<module>r     sÿ  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 CÐ BÐ BÐ BÐ BÐ Bð"ð "ð "ð "ð& 7<°e±g´gð Xð Xð Xð Xð@ &˜g oÀeÐLÑLÔLÐ ðð ð ð ð::ð :ð :ð
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð+ð +ð +ð +ð +˜¨ñ +ô +ð +ð\ð ð ð ð ˜_¨mñ ô ð ð.
ð 
ð 
ð 
ð 
˜N¨Mñ 
ô 
ð 
ðMð Mð Mð Mð M˜/¨=ñ Mô Mð Mðn.ð .ð .ð .ð .Ð+¨]ñ .ô .ð .ðbð ð ð ð ¨ñ ô ð ð.Uð Uð Uð Uð U�gñ Uô Uð Uð"ð ð ð ð Ð+Ð-?ñ ô ð ð6ð ð ð ð Ð&¨¸ñ ô ð ð$ð ð ð ð Ð.°Àñ ô ð ðDð ð ð ð Ð/°À-ñ ô ð ð8
ð 
ð 
ð 
ð 
Ð(Ð*:¸Mñ 
ô 
ð 
ð 
ð 
r    