§
    ¦˜ºh%‡  ã                   óZ  — d 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	m
Z
mZmZmZ ddlmZ ddlmZ ddlmZmZmZmZmZ ddlmZmZmZmZmZ dd	lmZ ej          !                    d
¦  «        Z"d\  Z#Z$e" %                    e#e$¦  «        Z&e" '                    dde#¬¦  «        Z(e" '                    dde#¬¦  «        Z)e" %                    e#¦  «        Z*e" %                    e#¦  «        Z+ ej,        d¬¦  «        d„ ¦   «         Z-dbd„Z.d„ Z/dcd„Z0d„ Z1 G d„ de
ee¦  «        Z2 G d„ dee¦  «        Z3 G d„ de
ee¦  «        Z4 G d„ de	e¦  «        Z5 G d„ de	e¦  «        Z6 G d „ d!e
e	e¦  «        Z7 G d"„ d#ee¦  «        Z8 G d$„ d%e
ee¦  «        Z9 G d&„ d'e¦  «        Z:d(„ Z;ej<         =                    d)g d*¢¦  «        d+„ ¦   «         Z>ej<         =                    d)g d,¢¦  «        d-„ ¦   «         Z?d.„ Z@d/„ ZAd0„ ZBd1„ ZCd2„ ZDd3„ ZEd4„ ZFd5„ ZGd6„ ZHd7„ ZId8„ ZJd9„ ZKd:„ ZLd;„ ZMej<         =                    d< ed=d>¬?¦  «         N                    d@dA¬B¦  «        dCf ed=¬D¦  «        dEf ejO        dF¦  «        dGf ed=¬D¦  «         P                    dH e3¦   «         ¬I¦  «        dJfg¦  «        dK„ ¦   «         ZQej<         =                    dL e¦   «         dMdNd>dOœeRdPf e¦   «         dMd>dNdOœeRdQfedRdSdNieRdTf ed=¬D¦  «        dUdV ed=¬D¦  «        ieRdWf e6¦   «         dXdNdieSdYfg¦  «        dZ„ ¦   «         ZTd[„ ZUd\„ ZVd]„ ZWd^„ ZXd_„ ZYd`„ ZZda„ Z[dS )dz 
Metadata Routing Utility Tests
é    N©Úconfig_context)ÚBaseEstimatorÚClassifierMixinÚMetaEstimatorMixinÚRegressorMixinÚTransformerMixinÚclone)ÚLinearRegression)Úmetadata_routing)ÚMETHODSÚMethodMetadataRequestÚ_MetadataRequesterÚrequest_is_aliasÚrequest_is_valid)ÚMetadataRequestÚMetadataRouterÚMethodMappingÚget_routing_for_objectÚprocess_routing)Úcheck_is_fittedé*   )éd   é   é   )Úsizeé
   T)Úautousec               #   ód   K  — t          d¬¦  «        5  dV — ddd¦  «         dS # 1 swxY w Y   dS )zEnable SLEP006 for all tests.T©Úenable_metadata_routingNr   © ó    úk/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/tests/test_metadata_routing.pyÚenable_slep006r%   1   s†   è è € õ 
°Ð	5Ñ	5Ô	5ð ð Øˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   “%¥)¬)c                 ó  — t          | t          ¦  «        r| D ]\  }}t          |j        ¦  «         ŒdS |€g n|}t          D ]K}||v rŒt          | |¦  «        }d„ |j                             ¦   «         D ¦   «         }t          |¦  «        rJ ‚ŒLdS )z–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.
    Nc                 óF   — g | ]\  }}t          |t          ¦  «        s|®|‘ŒS ©N©Ú
isinstanceÚstr)Ú.0ÚpropÚaliass      r$   ú
<listcomp>z+assert_request_is_empty.<locals>.<listcomp>H   s@   € ð 
ð 
ð 
á��eÝ˜%¥Ñ%Ô%ð
ð */Ð):ð à):Ð):Ð):r#   )	r*   r   Úassert_request_is_emptyÚrouterr   ÚgetattrÚrequestsÚitemsÚlen)Úmetadata_requestÚexcludeÚ_Úroute_mappingÚmethodÚmmrÚpropss          r$   r0   r0   8   sË   € õ Ð"¥NÑ3Ô3ð Ø 0ð 	:ð 	:ÑˆAˆ}Ý# MÔ$8Ñ9Ô9Ð9Ð9Øˆà�Oˆbˆb¨€GÝð 	ð 	ˆØ�WÐÐØÝÐ&¨Ñ/Ô/ˆð
ð 
à"œ|×1Ò1Ñ3Ô3ð
ñ 
ô 
ˆõ
 �u‘:”:ÐÐÐÐð	ð 	r#   c                 óî   ‡— ‰                      ¦   «         D ]"\  }}t          | |¦  «        }|j        |k    sJ ‚Œ#ˆfd„t          D ¦   «         }|D ]&}t	          t          | |¦  «        j        ¦  «        rJ ‚Œ'd S )Nc                 ó   •— g | ]}|‰v¯|‘Œ	S r"   r"   )r,   r:   Ú
dictionarys     €r$   r/   z(assert_request_equal.<locals>.<listcomp>U   s#   ø€ ÐNÐNÐN °VÀ:Ð5MÐ5M�VÐ5MÐ5MÐ5Mr#   )r4   r2   r3   r   r5   )Úrequestr?   r:   r3   r;   Úempty_methodss    `    r$   Úassert_request_equalrB   P   sž   ø€ Ø&×,Ò,Ñ.Ô.ð (ð (Ñˆ�Ý�g˜vÑ&Ô&ˆØŒ|˜xÒ'Ð'Ð'Ð'Ð'àNÐNÐNÐN­'ÐNÑNÔN€MØð :ð :ˆÝ•w˜w¨Ñ/Ô/Ô8Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :r#   c                 óˆ   — 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 )Údefaultr)   )r,   ÚkeyÚvals      r$   ú
<dictcomp>z#record_metadata.<locals>.<dictcomp>e   sG   € ð 
ð 
ð 
á��SÝ˜c¥3Ñ'Ô'ð
ð -0°9Ò,<Ð,<ð �à,<Ð,<Ð,<r#   N)ÚhasattrrD   r4   )Úobjr:   Úrecord_defaultÚkwargss       r$   Úrecord_metadatarN   Z   s_   € õ �3˜
Ñ#Ô#ð ØˆŒØð 
ð
ð 
à"ŸLšL™NœNð
ñ 
ô 
ˆð
 "€C„L�ÑÐÐr#   c                 óX  — t          | dt          ¦   «         ¦  «                             |t          ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        k    sJ ‚|                     ¦   «         D ]\  }}||         |u sJ ‚ŒdS )zECheck whether the expected metadata is passed to the object's method.rD   N)r2   ÚdictÚgetÚsetÚkeysr4   )rK   r:   rM   ÚrecordsrG   Úvalues         r$   Úcheck_recorded_metadatarV   m   s™   € å�c˜:¥t¡v¤vÑ.Ô.×2Ò2°6½4¹6¼6ÑBÔB€GÝˆv�{Š{‰}Œ}ÑÔ¥ W§\¢\¡^¤^Ñ!4Ô!4Ò4Ð4Ð4Ð4Ø—l’l‘n”nð %ð %‰
ˆˆUØ�sŒ|˜uÐ$Ð$Ð$Ð$Ð$ð%ð %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©Úselfr[   s     r$   Ú__init__zMetaRegressor.__init__x   ó   € Ø"ˆŒˆˆr#   c                 óˆ   — t          | d|¦  «        } t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        d S ©NÚfit)r   r
   r[   rb   Ú
estimator_©r]   ÚXÚyÚ
fit_paramsÚparamss        r$   rb   zMetaRegressor.fit{   sE   € Ý   u¨jÑ9Ô9ˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒˆˆr#   c                 ón   — t          | j        j        ¬¦  «                             | j        d¬¦  «        }|S ©N©Úownerú
one-to-one©r[   Úmethod_mapping)r   Ú	__class__Ú__name__Úaddr[   ©r]   r1   s     r$   Úget_metadata_routingz"MetaRegressor.get_metadata_routing   s;   € Ý d¤nÔ&=Ð>Ñ>Ô>×BÒBØ”n°\ð Cñ 
ô 
ˆð ˆr#   N©rq   Ú
__module__Ú__qualname__Ú__doc__r^   rb   rt   r"   r#   r$   rX   rX   u   sJ   € € € € € Ø2Ð2ð#ð #ð #ðRð Rð Rðð ð ð ð r#   rX   c                   ó    — e Zd ZdZdd„Zd„ ZdS )ÚRegressorMetadataz!A regressor consuming a metadata.Nc                 ó*   — t          | d|¬¦  «         | S ©Nrb   ©Úsample_weight©rN   ©r]   re   rf   r~   s       r$   rb   zRegressorMetadata.fit‰   s   € Ý˜˜e°=ÐAÑAÔAÐAØˆr#   c                 óF   — t          j        t          |¦  «        ¬¦  «        S )N)Úshape)ÚnpÚzerosr5   ©r]   re   s     r$   ÚpredictzRegressorMetadata.predict�   s   € ÝŒx�s 1™vœvÐ'Ñ'Ô'Ð'r#   r(   ©rq   rv   rw   rx   rb   r†   r"   r#   r$   rz   rz   †   s=   € € € € € Ø+Ð+ðð ð ð ð(ð (ð (ð (ð (r#   rz   c                   ó,   — e Zd ZdZd„ Zdd„Zd„ Zd„ ZdS )ÚWeightedMetaRegressorz*A meta-regressor which is also a consumer.c                 ó   — || _         d S r(   rZ   r\   s     r$   r^   zWeightedMetaRegressor.__init__”   r_   r#   Nc                 ó°   — t          | d|¬¦  «         t          | d||¬¦  «        } t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S r|   ©rN   r   r
   r[   rb   rc   )r]   re   rf   r~   rg   rh   s         r$   rb   zWeightedMetaRegressor.fit—   s`   € Ý˜˜e°=ÐAÑAÔAÐAÝ   u¨jÈÐVÑVÔVˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒØˆr#   c                 ó^   — t          | d|¦  «        } | j        j        |fi |j        j        ¤ŽS )Nr†   )r   rc   r†   r[   )r]   re   Úpredict_paramsrh   s       r$   r†   zWeightedMetaRegressor.predict�   s6   € Ý   y°.ÑAÔAˆØ&ˆtŒÔ& qÐEÐE¨FÔ,<Ô,DÐEÐEÐEr#   c                 ó”   — t          | j        j        ¬¦  «                             | ¦  «                             | j        d¬¦  «        }|S rj   ©r   rp   rq   Úadd_self_requestrr   r[   rs   s     r$   rt   z*WeightedMetaRegressor.get_metadata_routing¡   sB   € å ¤Ô!8Ð9Ñ9Ô9ßÒ˜dÑ#Ô#ßŠS˜4œ>¸,ˆSÑGÔGð 	ð
 ˆr#   r(   ©rq   rv   rw   rx   r^   rb   r†   rt   r"   r#   r$   r‰   r‰   ‘   s^   € € € € € Ø4Ð4ð#ð #ð #ðð ð ð ðFð Fð Fðð ð ð ð r#   r‰   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚClassifierNoMetadataz5An estimator which accepts no metadata on any method.c                 ó   — | S r(   r"   ©r]   re   rf   s      r$   rb   zClassifierNoMetadata.fit­   s   € Øˆr#   c                 óD   — t          j        t          |¦  «        ¦  «        S r(   ©rƒ   Úonesr5   r…   s     r$   r†   zClassifierNoMetadata.predict°   ó   € ÝŒw•s˜1‘v”v‰ŒÐr#   Nr‡   r"   r#   r$   r”   r”   ª   s8   € € € € € Ø?Ð?ðð ð ðð ð ð ð r#   r”   c                   ó    — e Zd ZdZdd„Zd„ ZdS )ÚClassifierFitMetadataz:An estimator accepting two metadata in its ``fit`` method.Nc                 ó,   — t          | d||¬¦  «         | S )Nrb   ©r~   Úbrandr   )r]   re   rf   r~   rŸ   s        r$   rb   zClassifierFitMetadata.fit·   s   € Ý˜˜e°=ÈÐNÑNÔNÐNØˆr#   c                 óD   — t          j        t          |¦  «        ¦  «        S r(   r˜   r…   s     r$   r†   zClassifierFitMetadata.predict»   rš   r#   ©NNr‡   r"   r#   r$   rœ   rœ   ´   s=   € € € € € ØDÐDðð ð ð ðð ð ð ð r#   rœ   c                   ó&   — e Zd ZdZd„ Zdd„Zd„ ZdS )ÚSimpleMetaClassifierzEA meta-estimator which also consumes sample_weight itself in ``fit``.c                 ó   — || _         d S r(   rZ   r\   s     r$   r^   zSimpleMetaClassifier.__init__Â   r_   r#   Nc                 ó°   — t          | d|¬¦  «         t          | d||¬¦  «        } t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S r|   rŒ   )r]   re   rf   r~   rM   rh   s         r$   rb   zSimpleMetaClassifier.fitÅ   s`   € Ý˜˜e°=ÐAÑAÔAÐAÝ   u¨fÀMÐRÑRÔRˆØ3�% ¤Ñ/Ô/Ô3°A°qÐQÐQ¸FÔ<LÔ<PÐQÐQˆŒØˆr#   c                 ó”   — t          | j        j        ¬¦  «                             | ¦  «                             | j        d¬¦  «        }|S )Nrk   rb   rn   r�   rs   s     r$   rt   z)SimpleMetaClassifier.get_metadata_routingË   sB   € å ¤Ô!8Ð9Ñ9Ô9ßÒ˜dÑ#Ô#ßŠS˜4œ>¸%ˆSÑ@Ô@ð 	ð
 ˆr#   r(   ru   r"   r#   r$   r£   r£   ¿   sL   € € € € € ØOÐOð#ð #ð #ðð ð ð ðð ð ð ð r#   r£   c                   ó"   — e Zd ZdZdd„Zdd„ZdS )ÚTransformerMetadataz:A transformer which accepts metadata on fit and transform.Nc                 ó,   — t          | d||¬¦  «         | S )Nrb   ©rŸ   r~   r   )r]   re   rf   rŸ   r~   s        r$   rb   zTransformerMetadata.fit×   s   € Ý˜˜e¨5ÀÐNÑNÔNÐNØˆr#   c                 ó*   — t          | d|¬¦  «         |S )NÚ	transformr}   r   ©r]   re   r~   s      r$   r¬   zTransformerMetadata.transformÛ   s   € Ý˜˜k¸ÐGÑGÔGÐGØˆr#   )NNNr(   )rq   rv   rw   rx   rb   r¬   r"   r#   r$   r¨   r¨   Ô   sB   € € € € € ØDÐDðð ð ð ðð ð ð ð ð 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)r]   r²   s     r$   r^   zMetaTransformer.__init__ã   s   € Ø&ˆÔÐÐr#   Nc                 óˆ   — t          | d|¦  «        } t          | j        ¦  «        j        ||fi |j        j        ¤Ž| _        | S ra   )r   r
   r²   rb   Útransformer_rd   s        r$   rb   zMetaTransformer.fitæ   sH   € Ý   u¨jÑ9Ô9ˆØ7�E $Ô"2Ñ3Ô3Ô7¸¸1ÐWÐWÀÔ@RÔ@VÐWÐWˆÔØˆr#   c                 ó^   — t          | d|¦  «        } | j        j        |fi |j        j        ¤ŽS )Nr¬   )r   r´   r¬   r²   )r]   re   rf   Útransform_paramsrh   s        r$   r¬   zMetaTransformer.transformë   s8   € Ý   {Ð4DÑEÔEˆØ*ˆtÔ Ô*¨1ÐMÐM°Ô0BÔ0LÐMÐMÐMr#   c                 ój   — t          | j        j        ¬¦  «                             | j        d¬¦  «        S )Nrk   rm   )r²   ro   )r   rp   rq   rr   r²   )r]   s    r$   rt   z$MetaTransformer.get_metadata_routingï   s8   € Ý D¤NÔ$;Ð<Ñ<Ô<×@Ò@ØÔ(¸ð Añ 
ô 
ð 	
r#   r(   )rq   rv   rw   rx   r^   rb   r¬   rt   r"   r#   r$   r¯   r¯   à   sd   € € € € € Ø$Ð$ð'ð 'ð 'ðð ð ð ð
Nð Nð Nð Nð
ð 
ð 
ð 
ð 
r#   r¯   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚSimplePipelinezEA very simple pipeline, assuming the last step is always a predictor.c                 ó   — || _         d S r(   )Ústeps)r]   r»   s     r$   r^   zSimplePipeline.__init__ø   s   € ØˆŒ
ˆ
ˆ
r#   c           	      ó  — g | _         t          | d|¦  «        }|}t          | j        d d…         ¦  «        D ]\  }} t	          |¦  «        j        ||fi |                     d|› �¦  «        j        ¤Ž}| j                              |¦  «          |j        |fi |                     d|› �¦  «        j        ¤Ž}Œ€| j                               t	          | j        d         ¦  «        j        ||fi |j	        j        ¤Ž¦  «         | S )Nrb   éÿÿÿÿÚstep_)
Ústeps_r   Ú	enumerater»   r
   rb   rQ   Úappendr¬   Ú	predictor)	r]   re   rf   rg   rh   ÚX_transformedÚiÚstepr²   s	            r$   rb   zSimplePipeline.fitû   s(  € ØˆŒÝ   u¨jÑ9Ô9ˆØˆÝ  ¤¨C¨R¨C¤Ñ1Ô1ð 	ð 	‰GˆAˆtØ)�% ™+œ+œ/Ø˜qðð Ø$*§J¢J¨{°q¨{¨{Ñ$;Ô$;Ô$?ðð ˆKð ŒK×Ò˜{Ñ+Ô+Ð+Ø1˜KÔ1Øðð Ø!'§¢¨K°A¨K¨KÑ!8Ô!8Ô!Bðð ˆMˆMð 	Œ×ÒØ%�E�$”*˜R”.Ñ!Ô!Ô% m°QÐOÐO¸&Ô:JÔ:NÐOÐOñ	
ô 	
ð 	
ð ˆr#   c           	      ó"  — t          | ¦  «         |}t          | d|¦  «        }t          | j        d d…         ¦  «        D ].\  }} |j        |fi |                     d|› �¦  «        j        ¤Ž}Œ/ | j        d         j        |fi |j        j        ¤ŽS )Nr†   r½   r¾   )r   r   rÀ   r¿   r¬   rQ   r†   rÂ   )r]   re   rŽ   rÃ   rh   rÄ   rÅ   s          r$   r†   zSimplePipeline.predict  s¥   € Ý˜ÑÔÐØˆÝ   y°.ÑAÔAˆÝ  ¤¨S¨b¨SÔ!1Ñ2Ô2ð 	Sð 	S‰GˆAˆtØ*˜DœN¨1ÐRÐR°·
²
¸;À1¸;¸;Ñ0GÔ0GÔ0QÐRÐRˆMˆMà&ˆtŒ{˜2ŒÔ& }ÐQÐQ¸Ô8HÔ8PÐQÐQÐQr#   c           
      ó„  — t          | j        j        ¬¦  «        }t          | j        d d…         ¦  «        D ]f\  }} |j        di d|› �|i¤dt          ¦   «                              dd¬¦  «                             dd¬¦  «                             dd¬¦  «        i¤Ž Œg|                     | j        d         d	¬
¦  «         |S )Nrk   r½   r¾   ro   rb   ©ÚcalleeÚcallerr¬   r†   rm   )rÂ   ro   r"   )r   rp   rq   rÀ   r»   rr   r   )r]   r1   rÄ   rÅ   s       r$   rt   z#SimplePipeline.get_metadata_routing  sÛ   € Ý d¤nÔ&=Ð>Ñ>Ô>ˆÝ  ¤¨C¨R¨C¤Ñ1Ô1ð 	ð 	‰GˆAˆtØˆFŒJð ð Ø˜1�;�; Ð%ðð å,™œß’˜E¨%�Ñ0Ô0ß’˜K°�Ñ6Ô6ß’˜K°	�Ñ:Ô:ðð ð ð ð ð 	�
Š
˜TœZ¨œ^¸Lˆ
ÑIÔIÐIØˆr#   Nr’   r"   r#   r$   r¹   r¹   õ   sY   € € € € € ØOÐOðð ð ðð ð ð$Rð Rð Rðð ð ð ð r#   r¹   c                  ó  — t          d¬¦  «        } t          | ¦  «         | j                             dd ¬¦  «         t          | ¦  «         | j                             dd¬¦  «         t	          j        t          ¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          | d¬¦  «         | j                             d	d
¬¦  «         t	          j        t          ¦  «        5  t          | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          | ddg¬¦  «         t          t          d¬¦  «         	                    t          d ¬¦  «        ¦  «                             dt          ¦   «         ¬¦  «        ¦  «         d S )NÚtestrk   Úfoo©Úparamr.   ÚbarrU   rb   ©r7   ÚcarrotTÚscorerZ   ©ro   r[   )r   r0   rb   Úadd_requestÚpytestÚraisesÚAssertionErrorrÓ   r   r‘   r‰   rr   rz   )r3   s    r$   Útest_assert_request_is_emptyrÙ   $  s÷  € Ý VÐ,Ñ,Ô,€HÝ˜HÑ%Ô%Ð%à„L×Ò 5°ÐÑ5Ô5Ð5å˜HÑ%Ô%Ð%à„L×Ò 5°ÐÑ8Ô8Ð8Ý	Œ•~Ñ	&Ô	&ð *ð *å Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ
 ˜H¨eÐ4Ñ4Ô4Ð4à„N×Ò X°TÐÑ:Ô:Ð:Ý	Œ•~Ñ	&Ô	&ð 9ð 9å °%Ð8Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ
 ˜H¨u°gÐ.>Ð?Ñ?Ô?Ð?õ Ý˜VÐ$Ñ$Ô$ß	Ò	Õ/¸$Ð?Ñ?Ô?Ñ	@Ô	@ß	Š˜EÕ->Ñ-@Ô-@ˆÑ	AÔ	Añô ð ð ð s$   Â BÂB Â#B Ã-DÄDÄDzval, res))FF)TF)NF)ú$UNUSED$F)ú$WARN$F©zinvalid-inputF)Ú	valid_argTc                 ó0   — t          | ¦  «        |k    sJ ‚d S r(   )r   ©rH   Úress     r$   Útest_request_type_is_aliasrá   D  ó#   € õ ˜CÑ Ô  CÒ'Ð'Ð'Ð'Ð'Ð'r#   ))FT)TT)NT)rÚ   T)rÛ   TrÜ   )Ú	alias_argFc                 ó0   — t          | ¦  «        |k    sJ ‚d S r(   )r   rß   s     r$   Útest_request_type_is_validrå   U  râ   r#   c                  óh  —  G d„ dt           ¦  «        } t           | ¦   «         ¦  «        }|j        j        ddik    sJ ‚t	          t          t          ¦   «         ¦  «        j        j        ¦  «        rJ ‚t          t          ¦   «                              ¦   «         ¦  «         t          t          ¦   «         ¦  «        }|j        j        d d dœk    sJ ‚|j	        j        dd ik    sJ ‚t          |¦  «         t          t          ¦   «         ¦  «        }|j        j        d d dœk    sJ ‚t          |¦  «         d S )Nc                   ó   — e Zd ZddiZdS )ú+test_default_requests.<locals>.OddEstimatorr~   TN)rq   rv   rw   Ú$_OddEstimator__metadata_request__fitr"   r#   r$   ÚOddEstimatorrè   g  s   € € € € € ð ˜Tð#
ÐÐÐr#   rê   r~   Trž   )r   r   rb   r3   r5   r”   r0   rt   r¨   r¬   rœ   )rê   Úodd_requestÚtrs_requestÚest_requests       r$   Útest_default_requestsrî   f  sx  € ð
ð 
ð 
ð 
ð 
•}ñ 
ô 
ð 
õ )¨¨©¬Ñ8Ô8€KØŒ?Ô#¨¸Ð'>Ò>Ð>Ð>Ð>õ Õ)Õ*>Ñ*@Ô*@ÑAÔAÔEÔNÑOÔOÐOÐOÐOÝÕ0Ñ2Ô2×GÒGÑIÔIÑJÔJÐJå(Õ)<Ñ)>Ô)>Ñ?Ô?€KØŒ?Ô#ØØð(ð (ò ð ð ð ð Ô Ô)Ø˜ð.ò ð ð ð õ ˜KÑ(Ô(Ð(å(Õ)>Ñ)@Ô)@ÑAÔA€KØŒ?Ô#ØØð(ð (ò ð ð ð õ ˜KÑ(Ô(Ð(Ð(Ð(r#   c                  ó¨   — t          j        t          d¬¦  «        5  t          t	          ¦   «         di ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz Can only route and process input©ÚmatchÚinvalid_method)rÖ   r×   Ú	TypeErrorr   rœ   r"   r#   r$   Ú#test_process_routing_invalid_methodrô   †  sª   € Ý	Œ•yÐ(JÐ	KÑ	KÔ	Kð Gð GÝÕ-Ñ/Ô/Ð1AÀ2ÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs   œAÁAÁAc                  óº   —  G d„ d¦  «        } t          j        t          d¬¦  «        5  t           | ¦   «         di ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd ZdS )ú:test_process_routing_invalid_object.<locals>.InvalidObjectN)rq   rv   rw   r"   r#   r$   ÚInvalidObjectr÷   Œ  s   € € € € € Øˆr#   rø   zhas not implemented the routingrð   rb   )rÖ   r×   ÚAttributeErrorr   )rø   s    r$   Ú#test_process_routing_invalid_objectrú   ‹  s¾   € ðð ð ð ð ñ ô ð õ 
Œ•~Ð-NÐ	OÑ	OÔ	Oð 4ð 4Ý˜˜™œ¨°Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   ©AÁAÁAc                  óÆ  — t          t          ¦   «         ¬¦  «        } |                      t          t          ¦  «         t          t          ¦   «         ¬¦  «        } |                      t          t          t
          ¬¦  «         t          t          ¦   «         ¬¦  «        } d}t          j        t          t          j        |¦  «        ¬¦  «        5  |                      t          t          t
          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ¦   «                              d¬¦  «        ¬¦  «        } |                      t          t          t
          ¬¦  «         t          | j        dd d ¬¦  «         t          t          ¦   «                              d¬¦  «        ¬¦  «        } |                      t          t          t
          ¬¦  «         t          | j        dt
          d ¬¦  «         t          t          ¦   «                              d	¬¦  «        ¬¦  «        } |                      t          t          t
          ¬
¦  «         t          | j        dt
          d ¬¦  «         d S )NrZ   r}   zg[sample_weight] are passed but are not explicitly set as requested or not for ClassifierFitMetadata.fitrð   Frb   rž   TÚalternative_weight)rü   )r£   r”   rb   re   rf   Ú
my_weightsrœ   rÖ   r×   Ú
ValueErrorÚreÚescapeÚset_fit_requestrV   rc   )ÚclfÚerr_messages     r$   Útest_simple_metadata_routingr  “  sF  € õ Õ)=Ñ)?Ô)?Ð
@Ñ
@Ô
@€CØ‡G‚G�A�q�M„M€Mõ Õ)=Ñ)?Ô)?Ð
@Ñ
@Ô
@€CØ‡G‚G�A�q¥
€GÑ+Ô+Ð+õ Õ)>Ñ)@Ô)@Ð
AÑ
AÔ
A€Cð	-ð õ 
Œ•z­¬°;Ñ)?Ô)?Ð	@Ñ	@Ô	@ð 0ð 0Ø�Š••1¥JˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ Ý'Ñ)Ô)×9Ò9ÈÐ9ÑNÔNðñ ô €Cð ‡G‚G�A�q¥
€GÑ+Ô+Ð+Ý˜CœN¨EÀÈTÐRÑRÔRÐRõ Ý'Ñ)Ô)×9Ò9ÈÐ9ÑMÔMðñ ô €Cð ‡G‚G�A�q¥
€GÑ+Ô+Ð+Ý˜CœN¨EÅÐSWÐXÑXÔXÐXõ Ý'Ñ)Ô)×9Ò9Ø.ð :ñ 
ô 
ðñ ô €Cð
 ‡G‚G�A�q¥Z€GÑ0Ô0Ð0Ý˜CœN¨EÅÐSWÐXÑXÔXÐXÐXÐXs   Ã(C?Ã?DÄDc                  ó&  — t          t          t          ¦   «                              dd¬¦  «                             d¬¦  «        ¬¦  «        t          t          ¦   «                              d¬¦  «        ¬¦  «                             d¬¦  «        g¦  «        } d	gd
gdg}}}|                      t          t          t          |||¬¦  «         t          | j        d         j        dt          d ¬¦  «         t          | j        d         j        d|¬¦  «         t          | j        d	         d|¬¦  «         t          | j        d	         j        d|¬¦  «         |                      t          |¬¦  «         t          | j        d         j        d|¬¦  «         d S )NTFrª   r}   r±   Úinner_weightsrZ   Úouter_weightsé   r   é   )rŸ   r~   r  r  r   rb   r¬   )r¹   r¯   r¨   r  Úset_transform_requestr‰   rz   rb   re   rf   Ú	my_groupsrV   r¿   r´   rc   r†   )ÚpipelineÚw1Úw2Úw3s       r$   Útest_nested_routingr  Ç  s¶  € ååÝ/Ñ1Ô1ß ’ t¸5�ÑAÔAß&Ò&°TÐ&Ñ:Ô:ðñ ô õ
 "Ý+Ñ-Ô-×=Ò=Ø"1ð >ñ ô ðñ ô ÷ Šo¨OˆoÑ<Ô<ð	
ñô €Hð ��q�c˜A˜3ˆBˆ€BØ‡L‚LÝ	�1•I¨R¸rÐQSð ñ ô ð õ ØŒ˜ÔÔ'¨µiÈtðñ ô ð õ ØŒ˜ÔÔ'¨ÀBðñ ô ð õ ˜HœO¨AÔ.°ÀRÐHÑHÔHÐHÝ˜HœO¨AÔ.Ô9¸5ÐPRÐSÑSÔSÐSà×Ò•Q bÐÑ)Ô)Ð)ÝØŒ˜ÔÔ'¨ÀBðñ ô ð ð ð r#   c                  ó  — t          t          t          ¦   «                              dd¬¦  «                             d¬¦  «        ¬¦  «        t          t          ¦   «                              d¬¦  «        ¬¦  «                             d¬¦  «        g¦  «        } dgd	g}}t          j        t          t          j        d
¦  «        ¬¦  «        5  |                      t          t          t          ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTFrª   r}   r±   rZ   r  r  r   zñIn WeightedMetaRegressor, there is a conflict on sample_weight between what is requested for this estimator and what is requested by its children. You can resolve this conflict by using an alias for the child estimator(s) requested metadata.rð   )rŸ   r~   r  )r¹   r¯   r¨   r  r
  r‰   rz   rÖ   r×   rþ   rÿ   r   rb   re   rf   r  )r  r  r  s      r$   Útest_nested_routing_conflictr  ê  sc  € ååÝ/Ñ1Ô1ß ’ t¸5�ÑAÔAß&Ò&°TÐ&Ñ:Ô:ðñ ô õ
 "Ý+Ñ-Ô-×=Ò=ÈDÐ=ÑQÔQðñ ô çŠo¨OˆoÑ<Ô<ð		
ñô €Hð ˆS�1�#ˆ€BÝ	ŒÝåŒIð:ñô ð

ñ 

ô 

ð Pð Pð 	�Š•Q�¥¸"ÈBˆÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps   Ã
*DÄDÄDc                  óØ  — t          t          ¦   «                              d¬¦  «        ¬¦  «        } t          j        t
          t          j        d¦  «        ¬¦  «        5  |                      t          t          ¦  «                             t          t          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ¦   «                              d¬¦  «        ¬¦  «        } t          j        t
          t          j        d¦  «        ¬¦  «        5  |                      t          t          ¦  «                             t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTr}   r±   z4transform got unexpected argument(s) {'other_param'}rð   )Úother_paramFz6transform got unexpected argument(s) {'sample_weight'})r¯   r¨   r
  rÖ   r×   ró   rÿ   r   rb   re   rf   r¬   rý   )Útrss    r$   Útest_invalid_metadatar    s»  € å
Ý'Ñ)Ô)×?Ò?ÈdÐ?ÑSÔSðñ ô €Cõ 
ŒÝÝŒyÐOÑPÔPð
ñ 
ô 
ð ;ð ;ð 	�Š••1‰Œ×Ò¥­zÐÑ:Ô:Ð:ð	;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ Ý'Ñ)Ô)×?Ò?ÈeÐ?ÑTÔTðñ ô €Cõ 
ŒÝÝŒyÐQÑRÔRð
ñ 
ô 
ð =ð =ð 	�Š••1‰Œ×Ò¥µÐÑ<Ô<Ð<ð	=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s&   ÁA B*Â*B.Â1B.ÄA EÅE#Å&E#c                  óž  —  G d„ dt           ¦  «        }  G d„ dt           ¦  «        }t          j        t          d¬¦  «        5   | ¦   «                              ¦   «          d d d ¦  «         n# 1 swxY w Y   dd d dœd d d	œd
didœ}t           |¦   «                              ¦   «         |¦  «          |¦   «                              d¬¦  «        }dd d dœd d d	œd
didœ}t          |                     ¦   «         |¦  «          |¦   «                              d¬¦  «        }dd d dœd dd	œd
didœ}t          |                     ¦   «         |¦  «         d S )Nc                   ó,   — e Zd ZdddœZddddœZddiZdS )ú<test_get_metadata_routing.<locals>.TestDefaultsBadMethodNameN)r~   Úmy_paramT©r~   r  Úmy_other_paramr  )rq   rv   rw   Ú1_TestDefaultsBadMethodName__metadata_request__fitÚ3_TestDefaultsBadMethodName__metadata_request__scoreÚ:_TestDefaultsBadMethodName__metadata_request__other_methodr"   r#   r$   ÚTestDefaultsBadMethodNamer    sH   € € € € € à!Øð#
ð #
Ðð
 "ØØ"ð%
ð %
Ð!ð -7¸Ð+=Ð(Ð(Ð(r#   r   c                   ó,   — e Zd ZdddœZddddœZddiZdS )ú/test_get_metadata_routing.<locals>.TestDefaultsN)r~   r  Tr  r  )rq   rv   rw   Ú$_TestDefaults__metadata_request__fitÚ&_TestDefaults__metadata_request__scoreÚ(_TestDefaults__metadata_request__predictr"   r#   r$   ÚTestDefaultsr"  +  sH   € € € € € à!Ø"ð#
ð #
Ðð
 "ØØ"ð%
ð %
Ð!ð
 (2°4Ð&8Ð#Ð#Ð#r#   r&  z8'MetadataRequest' object has no attribute 'other_method'rð   T)r  r  r~   )r  r~   r  )rÓ   rb   r†   r  )r  r}   )r   rÖ   r×   rù   rt   rB   Úset_score_requestr  )r   r&  ÚexpectedÚests       r$   Útest_get_metadata_routingr*    s>  € ð>ð >ð >ð >ð >Õ$6ñ >ô >ð >ð
9ð 
9ð 
9ð 
9ð 
9Õ)ñ 
9ô 
9ð 
9õ 
ŒÝÐXð
ñ 
ô 
ð ;ð ;ð 	"Ð!Ñ#Ô#×8Ò8Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð Ø"Ø!ð
ð 
ð #Ø!ð
ð 
ð  Ð%ðð €Hõ ˜˜™œ×<Ò<Ñ>Ô>ÀÑIÔIÐIà
ˆ,‰.Œ.×
*Ò
*°MÐ
*Ñ
BÔ
B€Cð &Ø"Ø!ð
ð 
ð #Ø!ð
ð 
ð  Ð%ðð €Hõ ˜×1Ò1Ñ3Ô3°XÑ>Ô>Ð>à
ˆ,‰.Œ.×
(Ò
(°tÐ
(Ñ
<Ô
<€Cð Ø"Ø!ð
ð 
ð #Ø!ð
ð 
ð  Ð%ðð €Hõ ˜×1Ò1Ñ3Ô3°XÑ>Ô>Ð>Ð>Ð>s   ÁA+Á+A/Á2A/c                  ó  — t          ¦   «         }  G d„ dt          ¦  «        }dd i| |<    G d„ dt          ¦  «        }ddi| |<    G d„ dt          ¦  «        }dd i| |<    G d	„ d
t          ¦  «        }i | |<   |                      ¦   «         D ]u\  }}t           |¦   «         ¦  «        j        j        |k    sJ ‚t           |¦   «                              ¦   «         d¬¦  «          |¦   «                              d d ¦  «         Œvd S )Nc                   ó   — e Zd ZddiZd„ ZdS )ú6test_setting_default_requests.<locals>.ExplicitRequestr-   Nc                 ó   — | S r(   r"   ©r]   re   rf   rM   s       r$   rb   z:test_setting_default_requests.<locals>.ExplicitRequest.fitq  ó   € ØˆKr#   )rq   rv   rw   Ú'_ExplicitRequest__metadata_request__fitrb   r"   r#   r$   ÚExplicitRequestr-  m  s-   € € € € € à#)¨4 .Ðð	ð 	ð 	ð 	ð 	r#   r2  r-   c                   ó   — e Zd ZddiZdd„ZdS )ú?test_setting_default_requests.<locals>.ExplicitRequestOverwriter-   TNc                 ó   — | S r(   r"   ©r]   re   rf   r-   rM   s        r$   rb   zCtest_setting_default_requests.<locals>.ExplicitRequestOverwrite.fit{  r0  r#   r(   )rq   rv   rw   Ú0_ExplicitRequestOverwrite__metadata_request__fitrb   r"   r#   r$   ÚExplicitRequestOverwriter4  v  s4   € € € € € ð $*¨4 .Ðð	ð 	ð 	ð 	ð 	ð 	r#   r8  Tc                   ó   — e Zd Zdd„ZdS )ú6test_setting_default_requests.<locals>.ImplicitRequestNc                 ó   — | S r(   r"   r6  s        r$   rb   z:test_setting_default_requests.<locals>.ImplicitRequest.fit‚  r0  r#   r(   )rq   rv   rw   rb   r"   r#   r$   ÚImplicitRequestr:  €  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	r#   r<  c                   ó(   — e Zd Zdej        iZdd„ZdS )ú=test_setting_default_requests.<locals>.ImplicitRequestRemovalr-   Nc                 ó   — | S r(   r"   r6  s        r$   rb   zAtest_setting_default_requests.<locals>.ImplicitRequestRemoval.fitŒ  r0  r#   r(   )rq   rv   rw   r   ÚUNUSEDÚ._ImplicitRequestRemoval__metadata_request__fitrb   r"   r#   r$   ÚImplicitRequestRemovalr>  ‡  s9   € € € € € ð $*Ð+;Ô+BÐ"CÐð	ð 	ð 	ð 	ð 	ð 	r#   rB  rb   rÑ   )rP   r   r4   r   rb   r3   r0   rt   )Ú
test_casesr2  r8  r<  rB  ÚKlassr3   s          r$   Útest_setting_default_requestsrE  i  s�  € å‘”€Jðð ð ð ð �-ñ ô ð ð $*¨4 .€JˆÑðð ð ð ð ¥=ñ ô ð ð -3°D¨>€JÐ'Ñ(ðð ð ð ð �-ñ ô ð ð
 $*¨4 .€JˆÑðð ð ð ð ¥ñ ô ð ð *,€JÐ%Ñ&à%×+Ò+Ñ-Ô-ð  ð  ‰ˆˆxÝ% e e¡g¤gÑ.Ô.Ô2Ô;¸xÒGÐGÐGÐGÝ  ¡¤× <Ò <Ñ >Ô >ÈÐNÑNÔNÐNØˆ‰Œ�Š�D˜$ÑÔÐÐð ð  r#   c                  óÌ   —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5   | ¦   «                              ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zFTest that removing a metadata using UNUSED which doesn't exist raises.c                   ó&   — e Zd Zdej        iZd„ ZdS )úFtest_removing_non_existing_param_raises.<locals>.InvalidRequestRemovalr-   c                 ó   — | S r(   r"   r/  s       r$   rb   zJtest_removing_non_existing_param_raises.<locals>.InvalidRequestRemoval.fitŸ  r0  r#   N)rq   rv   rw   r   r@  Ú-_InvalidRequestRemoval__metadata_request__fitrb   r"   r#   r$   ÚInvalidRequestRemovalrH  š  s4   € € € € € ð $*Ð+;Ô+BÐ"CÐð	ð 	ð 	ð 	ð 	r#   rK  zTrying to remove parameterrð   N)r   rÖ   r×   rþ   rt   )rK  s    r$   Ú'test_removing_non_existing_param_raisesrL  —  sÃ   € ðð ð ð ð ¥ñ ô ð õ 
Œ•zÐ)EÐ	FÑ	FÔ	Fð 7ð 7ØÐÑÔ×4Ò4Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   ¯AÁAÁ Ac                  ó¬  — t          dd¬¦  «        } t          j        t          d¬¦  «        5  |                      dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dd ¬¦  «         | j        dd ik    sJ ‚|                      dd	¬¦  «         | j        dd	ik    sJ ‚|                      dd
¬¦  «         | j        dd
ik    sJ ‚|                      dd¬¦  «         | j        dd
ik    sJ ‚|                      dd¬¦  «         | j        ddik    sJ ‚|                      d	¬¦  «        dhk    sJ ‚|                      d
¬¦  «        dhk    sJ ‚d S )NrÌ   rb   ©rl   r:   zThe alias you're setting forrð   rÍ   gffffffö?rÎ   FTrÐ   )Úreturn_alias)r   rÖ   r×   rþ   rÕ   r3   Ú_get_param_names)r;   s    r$   Útest_method_metadata_requestrQ  ¦  sÆ  € Ý
 f°UÐ
;Ñ
;Ô
;€Cå	Œ•zÐ)GÐ	HÑ	HÔ	Hð 0ð 0Ø�Š˜e¨3ˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ‡O‚O˜% t€OÑ,Ô,Ð,ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 5˜>Ò)Ð)Ð)Ð)Ø‡O‚O˜% t€OÑ,Ô,Ð,ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 5˜>Ò)Ð)Ð)Ð)Ø×Ò¨UÐÑ3Ô3¸°wÒ>Ð>Ð>Ð>Ø×Ò¨TÐÑ2Ô2°u°gÒ=Ð=Ð=Ð=Ð=Ð=s   ­AÁAÁAc                  óì  —  G d„ dt           ¦  «        } t          t          d ¦  «        ¦  «         t          t          t          ¦   «         ¦  «        ¦  «         t	          d¬¦  «        }|j                             dd¬¦  «         t          |¦  «        }t          |d¬	¦  «         |j        j        ddik    sJ ‚t           | ¦   «         ¦  «        }t          |d¬	¦  «         |j        j        d
d ik    sJ ‚d S )Nc                   ó   — e Zd ZddiZdS )ú-test_get_routing_for_object.<locals>.Consumerr-   N)rq   rv   rw   Ú _Consumer__metadata_request__fitr"   r#   r$   ÚConsumerrT  »  s   € € € € € Ø#)¨4 .ÐÐÐr#   rV  rÌ   rk   rÍ   rÐ   rÎ   rb   rÑ   r-   )r   r0   r   Úobjectr   rb   rÕ   r3   )rV  ÚmrÚ
mr_factorys      r$   Útest_get_routing_for_objectrZ  º  s
  € ð1ð 1ð 1ð 1ð 1•=ñ 1ô 1ð 1õ Õ2°4Ñ8Ô8Ñ9Ô9Ð9ÝÕ2µ6±8´8Ñ<Ô<Ñ=Ô=Ð=å	˜vÐ	&Ñ	&Ô	&€BØ„F×Ò˜U¨%ÐÑ0Ô0Ð0Ý'¨Ñ+Ô+€JÝ˜J°Ð6Ñ6Ô6Ð6ØŒ>Ô" u¨e nÒ4Ð4Ð4Ð4å	  ¡
¤
Ñ	+Ô	+€BÝ˜B¨Ð.Ñ.Ô.Ð.ØŒ6Œ?˜v t˜nÒ,Ð,Ð,Ð,Ð,Ð,r#   c                  ó6  —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5   | t	          ¦   «                              d¬¦  «        ¬¦  «                             t          t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó    — e Zd Zdej        iZdS )ú>test_metaestimator_warnings.<locals>.WeightedMetaRegressorWarnr~   N)rq   rv   rw   r   ÚWARNÚ1_WeightedMetaRegressorWarn__metadata_request__fitr"   r#   r$   ÚWeightedMetaRegressorWarnr]  Í  ó   € € € € € Ø#2Ð4DÔ4IÐ"JÐÐÐr#   r`  ú4Support for .* has recently been added to this classrð   Fr}   rZ   )
r‰   rÖ   ÚwarnsÚUserWarningr   r  rb   re   rf   rý   )r`  s    r$   Útest_metaestimator_warningsre  Ì  sÿ   € ðKð Kð Kð Kð KÕ$9ñ Kô Kð Kõ 
ŒÝÐQð
ñ 
ô 
ð .ð .ð 	"Ð!Ý&Ñ(Ô(×8Ò8ÀuÐ8ÑMÔMð	
ñ 	
ô 	
ç
Š#�a•¥*ˆ#Ñ
-Ô
-Ð
-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   ¯ABÂBÂBc                  ó  —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5  t	           | ¦   «         ¬¦  «                             t          t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó    — e Zd Zdej        iZdS )ú6test_estimator_warnings.<locals>.RegressorMetadataWarnr~   N)rq   rv   rw   r   r^  Ú-_RegressorMetadataWarn__metadata_request__fitr"   r#   r$   ÚRegressorMetadataWarnrh  Ù  ra  r#   rj  rb  rð   rZ   r}   )	rz   rÖ   rc  rd  rX   rb   re   rf   rý   )rj  s    r$   Útest_estimator_warningsrk  Ø  só   € ðKð Kð Kð Kð KÕ 1ñ Kô Kð Kõ 
ŒÝÐQð
ñ 
ô 
ð 
ð 
õ 	Ð 5Ð 5Ñ 7Ô 7Ð8Ñ8Ô8×<Ò<Ý�q¥
ð 	=ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ¯>A:Á:A>ÂA>zobj, stringrÌ   rb   rN  rÍ   rÐ   rÎ   z{'foo': 'bar'}rk   z{}rÓ   ú([{'callee': 'score', 'caller': 'score'}]r†   rÔ   z–{'estimator': {'mapping': [{'callee': 'predict', 'caller': 'predict'}], 'router': {'fit': {'sample_weight': None}, 'score': {'sample_weight': None}}}}c                 ó0   — t          | ¦  «        |k    sJ ‚d S r(   )r+   )rK   Ústrings     r$   Útest_string_representationsro  ä  s!   € õ6 ˆs‰8Œ8�vÒÐÐÐÐÐr#   z%obj, method, inputs, err_cls, err_msgrr   ÚinvalidrÈ   zGiven calleezGiven callerÚfrom_strÚroutez0route should be 'one-to-one' or a single method!r‘   rK   z@Given `obj` is neither a `MetadataRequest` nor does it implementr  zUnexpected argsc                 ó�   — t          j        ||¬¦  «        5   t          | |¦  «        di |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Nrð   r"   )rÖ   r×   r2   )rK   r:   ÚinputsÚerr_clsÚerr_msgs        r$   Útest_validationsrw    sž   € õR 
Œ�w gÐ	.Ñ	.Ô	.ð 'ð 'Ø���VÑÔÐ&Ð&˜vÐ&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   —;»?Á?c                  óp  — t          ¦   «                              dd¬¦  «                             dd¬¦  «        } t          | ¦  «        }|d         dk    sJ ‚|d         dk    sJ ‚t          j        d¦  «        } t	          | ¦  «        d	k    sJ ‚t          j        d
¦  «        } t          | ¦  «        dk    sJ ‚d S )Nrb   r¬   )rÊ   rÉ   r   )r¬   rb   r  )rb   rb   rm   aü  [{'callee': 'fit', 'caller': 'fit'}, {'callee': 'partial_fit', 'caller': 'partial_fit'}, {'callee': 'predict', 'caller': 'predict'}, {'callee': 'predict_proba', 'caller': 'predict_proba'}, {'callee': 'predict_log_proba', 'caller': 'predict_log_proba'}, {'callee': 'decision_function', 'caller': 'decision_function'}, {'callee': 'score', 'caller': 'score'}, {'callee': 'split', 'caller': 'split'}, {'callee': 'transform', 'caller': 'transform'}, {'callee': 'inverse_transform', 'caller': 'inverse_transform'}]rÓ   rl  )r   rr   Úlistrq  r+   Úrepr)ÚmmÚmm_lists     r$   Útest_methodmappingr}  /  sÊ   € å‰Œß	Š�E +ˆÑ	.Ô	.ß	Š�E %ˆÑ	(Ô	(ð õ �2‰hŒh€GØ�1Œ:Ð-Ò-Ð-Ð-Ð-Ø�1Œ:˜Ò'Ð'Ð'Ð'å	Ô	 Ñ	-Ô	-€BåˆB‰Œð+ò	+ð 	+ð 	+ð 	+õ 
Ô	 Ñ	(Ô	(€BÝ�‰8Œ8ÐAÒAÐAÐAÐAÐAÐAr#   c                  ó  — t          d¬¦  «        } | j                             dd¬¦  «         t          d¬¦  «                             | ¦  «        }t          |j        ¦  «        t          | ¦  «        k    sJ ‚|j        | usJ ‚t          ¦   «                              d¬¦  «        }t          d¬¦  «                             |¬	¦  «        }t          |j        ¦  «        t          | 	                    ¦   «         ¦  «        k    sJ ‚|j        | 	                    ¦   «         usJ ‚t          t          ¦   «                              d
¬¦  «        ¬¦  «        }t          d¬¦  «                             |¬	¦  «        }t          |j        ¦  «        t          |                     ¦   «         ¦  «        k    sJ ‚t          |j        ¦  «        t          | 	                    ¦   «         ¦  «        k    sJ ‚|j        |                     ¦   «         usJ ‚d S )NÚnestedrk   rÏ   TrÎ   rÌ   rý   r}   )rK   Únested_weightsrZ   )r   rb   rÕ   r   r‘   r+   Ú_self_requestrz   r  rt   r‰   Ú_get_metadata_request)r@   r1   r)  s      r$   Ú$test_metadatarouter_add_self_requestrƒ  K  sì  € å HÐ-Ñ-Ô-€GØ„K×Ò '°ÐÑ6Ô6Ð6Ý &Ð)Ñ)Ô)×:Ò:¸7ÑCÔC€FÝˆvÔ#Ñ$Ô$­¨G©¬Ò4Ð4Ð4Ð4àÔ wÐ.Ð.Ð.Ð.õ Ñ
Ô
×
-Ò
-¸LÐ
-Ñ
IÔ
I€CÝ &Ð)Ñ)Ô)×:Ò:¸sÐ:ÑCÔC€FÝˆvÔ#Ñ$Ô$­¨C×,DÒ,DÑ,FÔ,FÑ(GÔ(GÒGÐGÐGÐGØÔ s×'?Ò'?Ñ'AÔ'AÐAÐAÐAÐAõ  Ý#Ñ%Ô%×5Ò5ÐDTÐ5ÑUÔUðñ ô €Cõ  &Ð)Ñ)Ô)×:Ò:¸sÐ:ÑCÔC€FåˆvÔ#Ñ$Ô$­¨C×,EÒ,EÑ,GÔ,GÑ(HÔ(HÒHÐHÐHÐHõ ˆvÔ#Ñ$Ô$­¨C×,DÒ,DÑ,FÔ,FÑ(GÔ(GÒGÐGÐGÐGàÔ s×'@Ò'@Ñ'BÔ'BÐBÐBÐBÐBÐBÐBr#   c                  ó°  — t          d¬¦  «                             dt          ¦   «                              d¬¦  «        ¬¦  «        } t	          | ¦  «        dk    sJ ‚t          d¬¦  «                             t          ¦   «                              dd¬	¦  «        t          ¦   «                              d
¬¦  «        ¬¦  «        } t	          | ¦  «        dk    sJ ‚d S )NrÌ   rk   rb   Úweightsr}   )ro   r)  z�{'est': {'mapping': [{'callee': 'fit', 'caller': 'fit'}], 'router': {'fit': {'sample_weight': 'weights'}, 'score': {'sample_weight': None}}}}rÓ   rÈ   TzŠ{'est': {'mapping': [{'callee': 'score', 'caller': 'fit'}], 'router': {'fit': {'sample_weight': None}, 'score': {'sample_weight': True}}}})r   rr   rz   r  r+   r   r'  ©r1   s    r$   Útest_metadata_routing_addr‡  h  sñ   € å &Ð)Ñ)Ô)×-Ò-ØÝÑÔ×/Ò/¸iÐ/ÑHÔHð .ñ ô €Fõ
 	ˆF‰Œð%ò	%ð 	%ð 	%ð 	%õ  &Ð)Ñ)Ô)×-Ò-Ý$‘”×*Ò*°'À%Ð*ÑHÔHÝÑÔ×1Ò1ÀÐ1ÑEÔEð .ñ ô €Fõ
 	ˆF‰Œð%ò	%ð 	%ð 	%ð 	%ð 	%ð 	%r#   c                  ód  — t          d¬¦  «                             t          t          ¦   «         ¬¦  «                             d¬¦  «        ¦  «                             dt          ¦   «                              d¬¦  «        ¬¦  «        } t          | ¦  «        d	k    sJ ‚|                      dd
d¬¦  «        h d£k    sJ ‚|                      ddd¬¦  «        h d£k    sJ ‚|                      ddd
¬¦  «        ddhk    sJ ‚|                      dd
d
¬¦  «        |                      ddd
¬¦  «        k    sJ ‚d S )NrÌ   rk   rZ   Úself_weightsr}   rb   Útransform_weights)ro   r  a	  {'$self_request': {'fit': {'sample_weight': 'self_weights'}, 'score': {'sample_weight': None}}, 'trs': {'mapping': [{'callee': 'fit', 'caller': 'fit'}], 'router': {'fit': {'brand': None, 'sample_weight': 'transform_weights'}, 'transform': {'sample_weight': None}}}}TF)r:   rO  Úignore_self_request>   rŸ   r‰  rŠ  >   rŸ   r~   rŠ  rŸ   )	r   r‘   r‰   rz   r  rr   r¨   r+   rP  r†  s    r$   Ú%test_metadata_routing_get_param_namesrŒ  ‚  sÉ  € å˜VÐ$Ñ$Ô$ß	Ò	Ý!Õ,=Ñ,?Ô,?Ð@Ñ@Ô@×PÒPØ,ð Qñ ô ñ

ô 

÷
 
ŠØ Ý#Ñ%Ô%×5Ò5Ø1ð 6ñ ô ð 
ñ 

ô 

ð õ  	ˆF‰Œð%ò	%ð 	%ð 	%ð 	%ð ×"Ò"Ø 4¸Uð #ñ ô à	7Ð	7Ð	7ò8ð 8ð 8ð 8ð ×"Ò"Ø 5¸eð #ñ ô à	8Ð	8Ð	8ò9ð 9ð 9ð 9ð ×"Ò"Ø 5¸dð #ñ ô à
Ð&Ð	'ò(ð (ð (ð (ð ×"Ò"Ø 4¸Tð #ñ ô à	×	 Ò	 Ø 5¸dð 
!ñ 
ô 
òð ð ð ð ð r#   c                  óò   —  G d„ dt           ¦  «        } t          D ] }t           | ¦   «         d|› d�¦  «        rJ ‚Œ! G d„ dt           ¦  «        } t          D ] }t           | ¦   «         d|› d�¦  «        sJ ‚Œ!d S )Nc                   óL   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zd„ ZdS )ú/test_method_generation.<locals>.SimpleEstimatorc                 ó   — d S r(   r"   r–   s      r$   rb   z3test_method_generation.<locals>.SimpleEstimator.fitµ  ó   € ØˆDr#   c                 ó   — d S r(   r"   r–   s      r$   Úpartial_fitz;test_method_generation.<locals>.SimpleEstimator.partial_fit¸  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   r†   z7test_method_generation.<locals>.SimpleEstimator.predict»  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   Úpredict_probaz=test_method_generation.<locals>.SimpleEstimator.predict_proba¾  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   Úpredict_log_probazAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaÁ  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   Údecision_functionzAtest_method_generation.<locals>.SimpleEstimator.decision_functionÄ  r‘  r#   c                 ó   — d S r(   r"   r–   s      r$   rÓ   z5test_method_generation.<locals>.SimpleEstimator.scoreÇ  r‘  r#   Nc                 ó   — d S r(   r"   r–   s      r$   Úsplitz5test_method_generation.<locals>.SimpleEstimator.splitÊ  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   r¬   z9test_method_generation.<locals>.SimpleEstimator.transformÍ  r‘  r#   c                 ó   — d S r(   r"   r…   s     r$   Úinverse_transformzAtest_method_generation.<locals>.SimpleEstimator.inverse_transformÐ  r‘  r#   r(   ©rq   rv   rw   rb   r“  r†   r–  r˜  rš  rÓ   r�  r¬   r   r"   r#   r$   ÚSimpleEstimatorr�  ³  s¯   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r#   r¢  Úset_Ú_requestc                   ó^   — e 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
dd
„Zdd„ZdS )r�  Nc                 ó   — d S r(   r"   r€   s       r$   rb   z3test_method_generation.<locals>.SimpleEstimator.fitØ  r‘  r#   c                 ó   — d S r(   r"   r€   s       r$   r“  z;test_method_generation.<locals>.SimpleEstimator.partial_fitÛ  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   r†   z7test_method_generation.<locals>.SimpleEstimator.predictÞ  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   r–  z=test_method_generation.<locals>.SimpleEstimator.predict_probaá  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   r˜  zAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaä  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   rš  zAtest_method_generation.<locals>.SimpleEstimator.decision_functionç  r‘  r#   c                 ó   — d S r(   r"   r€   s       r$   rÓ   z5test_method_generation.<locals>.SimpleEstimator.scoreê  r‘  r#   c                 ó   — d S r(   r"   r€   s       r$   r�  z5test_method_generation.<locals>.SimpleEstimator.splití  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   r¬   z9test_method_generation.<locals>.SimpleEstimator.transformð  r‘  r#   c                 ó   — d S r(   r"   r­   s      r$   r   zAtest_method_generation.<locals>.SimpleEstimator.inverse_transformó  r‘  r#   r(   r¡   r¡  r"   r#   r$   r¢  z/test_method_generation.<locals>.SimpleEstimatorÖ  sÜ   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r#   )r   r   rJ   )r¢  r:   s     r$   Útest_method_generationr°  ®  sä   € ð
ð ð ð ð �-ñ ô ð õ@ ð Gð GˆÝ˜?˜?Ñ,Ô,Ð.E°VÐ.EÐ.EÐ.EÑFÔFÐFÐFÐFÐFðð ð ð ð �-ñ ô ð õ@ ð Cð CˆÝ��Ñ(Ô(Ð*A°Ð*AÐ*AÐ*AÑBÔBÐBÐBÐBÐBðCð Cr#   c                  ó  — t          d¬¦  «        5  t          j        t          d¬¦  «        5  t	          ¦   «                              d¬¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zCTest that when feature flag disabled, set_{method}_requests raises.Fr    zThis method is only availablerð   Tr}   N)r   rÖ   r×   ÚRuntimeErrorrœ   r  r"   r#   r$   Ú!test_no_feature_flag_raises_errorr³  ú  s$  € å	°Ð	6Ñ	6Ô	6ð Hð HÝŒ]�<Ð/NÐOÑOÔOð 	Hð 	HÝ!Ñ#Ô#×3Ò3À$Ð3ÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	HðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs4   ‘A4­#AÁA4ÁA 	Á A4Á#A 	Á$A4Á4A8Á;A8c                  ó~   — t          t          ¦   «         ¬¦  «                             t          t          d¬¦  «         dS )zCTest that passing None as metadata when not requested doesn't raiserZ   Nr}   )rX   rz   rb   re   rf   r"   r#   r$   Útest_none_metadata_passedrµ    s5   € åÕ-Ñ/Ô/Ð0Ñ0Ô0×4Ò4µQ½ÈÐ4ÑNÔNÐNÐNÐNr#   r(   )T)\rx   rÿ   Únumpyrƒ   rÖ   Úsklearnr   Úsklearn.baser   r   r   r   r	   r
   Úsklearn.linear_modelr   Úsklearn.utilsr   Ú sklearn.utils._metadata_requestsr   r   r   r   r   Úsklearn.utils.metadata_routingr   r   r   r   r   Úsklearn.utils.validationr   ÚrandomÚRandomStateÚrngÚNÚMÚrandre   Úrandintrf   r  rý   Úmy_other_weightsÚfixturer%   r0   rB   rN   rV   rX   rz   r‰   r”   rœ   r£   r¨   r¯   r¹   rÙ   ÚmarkÚparametrizerá   rå   rî   rô   rú   r  r  r  r  r*  rE  rL  rQ  rZ  re  rk  rÕ   rq  rr   ro  rþ   ró   rw  r}  rƒ  r‡  rŒ  r°  r³  rµ  r"   r#   r$   ú<module>rÉ     s¶  ððð ð 
€	€	€	à Ð Ð Ð Ø €€€à "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4à„i×Ò˜BÑÔ€Ø�€€1Ø‡H‚HˆQ��N„N€Ø‡K‚K��1˜1€KÑÔ€Ø�KŠK˜˜2 AˆKÑ&Ô&€	Ø�XŠX�a‰[Œ[€
Ø—8’8˜A‘;”;Ð ð €„˜ÐÑÔðð ñ Ôððð ð ð ð0:ð :ð :ð"ð "ð "ð "ð&%ð %ð %ðð ð ð ð Ð&¨¸ñ ô ð ð"(ð (ð (ð (ð (˜¨ñ (ô (ð (ðð ð ð ð Ð.°Àñ ô ð ð2ð ð ð ð ˜?¨Mñ ô ð ðð ð ð ð ˜O¨]ñ ô ð ðð ð ð ð Ð-¨Àñ ô ð ð*	ð 	ð 	ð 	ð 	Ð*¨Mñ 	ô 	ð 	ð
ð 
ð 
ð 
ð 
Ð(Ð*:¸Mñ 
ô 
ð 
ð*,ð ,ð ,ð ,ð ,�]ñ ,ô ,ð ,ð^ð ð ð@ „×ÒØðð ð ñô ð(ð (ñô ð(ð
 „×ÒØðð ð ñô ð(ð (ñô ð(ð
)ð )ð )ð@Gð Gð Gð
4ð 4ð 4ð1Yð 1Yð 1Yðh ð  ð  ðFPð Pð Pð:=ð =ð =ð,I?ð I?ð I?ðX+ ð + ð + ð\7ð 7ð 7ð>ð >ð >ð(-ð -ð -ð$	.ð 	.ð 	.ð	
ð 	
ð 	
ð „×ÒØð "Ð!¨°uÐ=Ñ=Ô=×IÒIØ 5ð Jñ ô ð ð		
ð ˆO &Ð)Ñ)Ô)Øð	
ð 
 ˆÔ	 Ñ	(Ô	(Ð*TÐUàˆN Ð(Ñ(Ô(×,Ò,Ø(Ð4EÐ4EÑ4GÔ4Gð -ñ ô ð6ð		
ðñô ð4ð ñ5ô ð4ð „×ÒØ+ð ˆM‰OŒOØØ ¨EÐ2Ð2ØØð	
ð ˆM‰OŒOØØ¨	Ð2Ð2ØØð	
ð ØØ�iÐ ØØ>ð	
ð ˆN Ð(Ñ(Ô(ØØ�N�N¨Ð0Ñ0Ô0Ð1ØØNð	
ð "Ð!Ñ#Ô#ØØ˜ÐØØð	
ð;$ñ'ô 'ðP'ð 'ñQ'ô 'ðP'ð
Bð Bð Bð8Cð Cð Cð:ð ð ð4)ð )ð )ðXICð ICð ICðXHð Hð HðOð Oð Oð Oð Or#   