Ë
    ÷Q(h­ž  ã                   óæ	  — 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	 ddl
mZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ dd	lmZ dd
lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0 ejb                  je                  d«      Z3d\  Z4Z5e3jm                  e4e5«      Z7e3jq                  dde4¬«      Z9e3jq                  dde4¬«      Z:e3jm                  e4«      Z;e3jm                  e4«      Z< G d„ de«      Z= ed¬«      d„ «       Z>ej~                  j�                  d e e«       ¬«       e e«       ¬«       e e«       ¬«       e e«        e«       ¬«       e e«        e«       ¬«      g«       ed¬«      d„ «       «       ZAej~                  j�                  dg d¢«       ed¬«      d„ «       «       ZBej~                  j�                  dg d¢«       ed¬«      d„ «       «       ZC ed¬«      d „ «       ZD ed¬«      d!„ «       ZE ed¬«      d"„ «       ZF ed¬«      d#„ «       ZGej~                  j�                  d$e!«      ej~                  j�                  d%dd%g g«       ed¬«      d&„ «       «       «       ZH ed¬«      d'„ «       ZI ed¬«      d(„ «       ZJ ed¬«      d)„ «       ZK ed¬«      d*„ «       ZL ed¬«      d+„ «       ZM ed¬«      d,„ «       ZN ed¬«      d-„ «       ZO ed¬«      d.„ «       ZP ed¬«      d/„ «       ZQ ed¬«      d0„ «       ZR ed¬«      d1„ «       ZS ed¬«      d2„ «       ZT ed¬«      d3„ «       ZU ed¬«      ej~                  j�                  d4 e#d5d6¬7«      j­                  d8d9¬:«      d;f e)d5¬<«      d=f e*d5¬<«      j¯                   e«        e+«       j¯                  d>d>¬?«      ¬@«      dAfg«       ed¬«      dB„ «       «       «       ZXej~                  j�                  dC e+«       dDd6dEd?œeYdFf e+«       dDdEd6d?œeYdGf e*d5¬<«      dHdI e*d5¬<«      ieYdJf e«       dKdEdieZdLfg«       ed¬«      dM„ «       «       Z[ ed¬«      dN„ «       Z\ ed¬«      dO„ «       Z] ed¬«      dP„ «       Z^ ed¬«      dQ„ «       Z_ ed¬«      dR„ «       Z` ed¬«      dS„ «       Za ed¬«      dT„ «       Zb ed¬«      dU„ «       Zc ed¬«      dV„ «       Zd ed¬«      dW„ «       Ze ed¬«      dX„ «       Zf ed¬«      dY„ «       Zgy)Zz 
Metadata Routing Utility Tests
é    N)Úconfig_context)ÚBaseEstimatorÚclone)ÚUnsetMetadataPassedError)ÚLinearRegression)ÚPipeline)ÚConsumingClassifierÚConsumingRegressorÚConsumingTransformerÚMetaRegressorÚMetaTransformerÚNonConsumingClassifierÚWeightedMetaClassifierÚWeightedMetaRegressorÚ	_RegistryÚassert_request_equalÚassert_request_is_emptyÚcheck_recorded_metadata)Úmetadata_routing)ÚCOMPOSITE_METHODSÚMETHODSÚSIMPLE_METHODSÚMethodMetadataRequestÚ
MethodPairÚ_MetadataRequesterÚrequest_is_aliasÚrequest_is_valid)ÚMetadataRequestÚMetadataRouterÚMethodMappingÚ_RoutingNotSupportedMixinÚget_routing_for_objectÚprocess_routing)Úcheck_is_fittedé*   )éd   é   é   )Úsizeé
   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚSimplePipelinezÓA very simple pipeline, assuming the last step is always a predictor.

    Parameters
    ----------
    steps : iterable of objects
        An iterable of transformers with the last step being a predictor.
    c                 ó   — || _         y ©N)Ústeps)Úselfr/   s     úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_metadata_routing.pyÚ__init__zSimplePipeline.__init__J   s	   € Øˆ�
ó    c           	      ó&  — g | _         t        | dfi |¤Ž}|}t        | j                  d d «      D ]ˆ  \  }} t	        |«      j
                  ||fi |j                  d|› �«      j
                  ¤Ž}| j                   j                  |«        |j                  |fi |j                  d|› �«      j                  ¤Ž}ŒŠ | j                   j                   t	        | j                  d   «      j
                  ||fi |j                  j
                  ¤Ž«       | S )NÚfitéÿÿÿÿÚstep_)
Ústeps_r#   Ú	enumerater/   r   r5   ÚgetÚappendÚ	transformÚ	predictor)	r0   ÚXÚyÚ
fit_paramsÚparamsÚX_transformedÚiÚstepÚtransformers	            r1   r5   zSimplePipeline.fitM   s  € ØˆŒÜ   uÑ;°
Ñ;ˆØˆÜ  §¡¨C¨R Ó1ò 	‰GˆAˆtØ)œ% ›+Ÿ/™/Ø˜qñØ$*§J¡J°°q°c¨{Ó$;×$?Ñ$?ñˆKð �K‰K×Ñ˜{Ô+Ø1˜K×1Ñ1ØñØ!'§¡¨e°A°3¨KÓ!8×!BÑ!Bñ‰Mð	ð 	�‰×ÑØ%ŒE�$—*‘*˜R‘.Ó!×%Ñ% m°QÑO¸&×:JÑ:J×:NÑ:NÑOô	
ð ˆr3   c           	      ó<  — t        | «       |}t        | dfi |¤Ž}t        | j                  d d «      D ]4  \  }} |j                  |fi |j                  d|› �«      j                  ¤Ž}Œ6  | j                  d   j                  |fi |j                  j                  ¤ŽS )NÚpredictr6   r7   )r$   r#   r9   r8   r<   r:   rG   r=   )r0   r>   Úpredict_paramsrB   rA   rC   rD   s          r1   rG   zSimplePipeline.predict_   s�   € Ü˜ÔØˆÜ   yÑC°NÑCˆÜ  §¡¨S¨bÐ!1Ó2ò 	S‰GˆAˆtØ*˜DŸN™N¨1ÑR°·
±
¸UÀ1À#¸;Ó0G×0QÑ0QÑR‰Mð	Sð 'ˆt�{‰{˜2‰×&Ñ& }ÑQ¸×8HÑ8H×8PÑ8PÑQÐQr3   c           
      óÆ  — t        | j                  j                  ¬«      }t        | j                  d d «      D ][  \  }} |j
                  d
i d|› �|i¤dt        «       j                  dd¬«      j                  dd¬«      j                  dd¬«      i¤Ž Œ] |j                  | j                  d   t        «       j                  dd¬«      j                  dd¬«      ¬	«       |S )N©Úownerr6   r7   Úmethod_mappingr5   ©ÚcallerÚcalleer<   rG   )r=   rL   © )r   Ú	__class__Ú__name__r9   r/   Úaddr    )r0   ÚrouterrC   rD   s       r1   Úget_metadata_routingz#SimplePipeline.get_metadata_routingh   sÓ   € Ü d§n¡n×&=Ñ&=Ô>ˆÜ  §¡¨C¨R Ó1ò 	‰GˆAˆtØˆF�J‰Jñ Ø˜1˜#�; Ð%ñä,›ß‘˜E¨%�Ó0ß‘˜E¨+�Ó6ß‘˜I¨k�Ó:ôð	ð 	�
‰
Ø—j‘j ‘nÜ(›?ß‰S˜ eˆSÓ,ß‰S˜	¨)ˆSÓ4ð	 	ô 	
ð ˆr3   N)rR   Ú
__module__Ú__qualname__Ú__doc__r2   r5   rG   rU   rP   r3   r1   r,   r,   A   s   „ ñòòò$Rór3   r,   T©Úenable_metadata_routingc            	      óÖ  — t        d¬«      } t        | «       | j                  j                  dd ¬«       t        | «       | j                  j                  dd¬«       t	        j
                  t        «      5  t        | «       d d d «       t        | d¬«       | j                  j                  d	d
¬«       t	        j
                  t        «      5  t        | d¬«       d d d «       t        | ddg¬«       t        t        d¬«      j                  t        d ¬«      «      j                  t        «       t        «       j                  dd¬«      ¬«      «       y # 1 sw Y   ŒÒxY w# 1 sw Y   Œ…xY w)NÚtestrJ   Úfoo©ÚparamÚaliasÚbarÚvaluer5   ©ÚexcludeÚcarrotTÚscore©Ú	estimatorrM   ©rh   rL   )r   r   r5   Úadd_requestÚpytestÚraisesÚAssertionErrorrf   r   Úadd_self_requestr   rS   r
   r    )Úrequestss    r1   Útest_assert_request_is_emptyrp   {   s  € ä VÔ,€HÜ˜HÔ%à‡L�L×Ñ 5°ÐÔ5ä˜HÔ%à‡L�L×Ñ 5°ÐÔ8Ü	�‰”~Ó	&ñ *ä Ô)÷*ô
 ˜H¨eÕ4à‡N�N×Ñ X°TÐÔ:Ü	�‰”~Ó	&ñ 9ä °%Õ8÷9ô
 ˜H¨u°gÐ.>Õ?ô Ü˜VÔ$ß	Ñ	Ô/¸$Ô?Ó	@ß	‰Ü(Ó*Ü(›?×.Ñ.°eÀEÐ.ÓJð 
ó 

õ÷!*ð *ú÷9ð 9ús   Á6EÃEÅEÅE(rh   )Úregistry)rh   rq   c                 óX   — | j                  t        t        «       | | j                  v sJ ‚y)z=Check that an estimator puts itself in the registry upon fit.N)r5   r>   r?   rq   rg   s    r1   Ú$test_estimator_puts_self_in_registryrs   Ÿ   s&   € ð ‡M�M”!”QÔØ˜	×*Ñ*Ñ*Ð*Ñ*r3   zval, res))FF)TF)NF)ú$UNUSED$F)ú$WARN$F©zinvalid-inputF)Ú	valid_argTc                 ó$   — t        | «      |k(  sJ ‚y r.   )r   ©ÚvalÚress     r1   Útest_request_type_is_aliasr|   °   ó   € ô ˜CÓ  CÒ'Ð'Ñ'r3   ))FT)TT)NT)rt   T)ru   Trv   )Ú	alias_argFc                 ó$   — t        | «      |k(  sJ ‚y r.   )r   ry   s     r1   Útest_request_type_is_validr€   Â   r}   r3   c                  óN  —  G d„ dt         «      } t         | «       «      }|j                  j                  ddik(  sJ ‚t	        t        t        «       «      j                  j                  «      rJ ‚t        t        «       j                  «       «       t        t        «       «      }|j                  j                  d d dœk(  sJ ‚|j                  j                  d d dœk(  sJ ‚t        |«       t        t        «       «      }|j                  j                  d d dœk(  sJ ‚t        |«       y )Nc                   ó   — e Zd ZddiZy)ú+test_default_requests.<locals>.OddEstimatorÚsample_weightTN)rR   rV   rW   Ú$_OddEstimator__metadata_request__fitrP   r3   r1   ÚOddEstimatorrƒ   Ö   s   „ ð ˜Tð#
Ñr3   r†   r„   T©r„   Úmetadata©rˆ   r„   )r   r"   r5   ro   Úlenr   r   rU   r   r<   r	   )r†   Úodd_requestÚtrs_requestÚest_requests       r1   Útest_default_requestsrŽ   Ô   s  € ô
”}ô 
ô )©«Ó8€KØ�?‰?×#Ñ#¨¸Ð'>Ò>Ð>Ð>ô Ô)Ô*@Ó*BÓC×GÑG×PÑPÔQÐQÐQÜÔ2Ó4×IÑIÓKÔLä(Ô)=Ó)?Ó@€KØ�?‰?×#Ñ#ØØñ(ò ð ð ð × Ñ ×)Ñ)¸$ÐQUÑ-VÒVÐVÐVÜ˜KÔ(ä(Ô)<Ó)>Ó?€KØ�?‰?×#Ñ#ØØñ(ò ð ð ô ˜KÕ(r3   c                  óÚ   —  G d„ dt         «      }  G d„ d| «      } G d„ d| «      }t         |«       j                  «       ddd	ii«       t         |«       j                  «       ddd	ii«       y
)zþTest that default requests are correctly overridden regardless of the ASCII order
    of the class names, hence testing small and capital letter class name starts.
    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/28430
    c                   ó   — e Zd ZddiZy)ú+test_default_request_override.<locals>.BaseÚgroupsTN)rR   rV   rW   Ú_Base__metadata_request__splitrP   r3   r1   ÚBaser‘   ú   s   „ Ø%-¨tÐ$4Ñ!r3   r”   c                   ó   — e Zd ZddiZy)ú.test_default_request_override.<locals>.class_1r’   Úsample_domainN)rR   rV   rW   Ú!_class_1__metadata_request__splitrP   r3   r1   Úclass_1r–   ý   ó   „ Ø%-¨Ð$?Ñ!r3   r™   c                   ó   — e Zd ZddiZy)ú.test_default_request_override.<locals>.Class_1r’   r—   N)rR   rV   rW   Ú!_Class_1__metadata_request__splitrP   r3   r1   ÚClass_1rœ      rš   r3   rž   Úsplitr’   r—   N)r   r   Ú_get_metadata_request)r”   r™   rž   s      r1   Útest_default_request_overrider¡   ó   sr   € ô5Œ}ô 5ô@�$ô @ô@�$ô @ô Ù‹	×'Ñ'Ó)¨G°hÀÐ5PÐ+Qôô Ù‹	×'Ñ'Ó)¨G°hÀÐ5PÐ+Qõr3   c                  ó˜   — t        j                  t        d¬«      5  t        t	        «       dt
        ¬«       d d d «       y # 1 sw Y   y xY w)Nz Can only route and process input©ÚmatchÚinvalid_method©r’   )rk   rl   Ú	TypeErrorr#   r	   Ú	my_groupsrP   r3   r1   Ú#test_process_routing_invalid_methodr©     s;   € ä	�‰”yÐ(JÔ	Kñ SÜÔ+Ó-Ð/?Ì	ÕR÷S÷ Sñ Sús   œA Á A	c                  ó¦   —  G d„ d«      } t        j                  t        d¬«      5  t         | «       dt        ¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú:test_process_routing_invalid_object.<locals>.InvalidObjectN)rR   rV   rW   rP   r3   r1   ÚInvalidObjectr¬     s   „ Ør3   r­   z#either implement the routing methodr£   r5   r¦   )rk   rl   ÚAttributeErrorr#   r¨   )r­   s    r1   Ú#test_process_routing_invalid_objectr¯     sD   € ÷ñ ô 
�‰”~Ð-RÔ	Sñ BÜ™›¨´yÕA÷B÷ Bñ Bús   ¦AÁAÚmethodÚdefaultc                 óê   — i }t        t        «       dfi |¤Ž}||    }t        |t        «      sJ ‚t	        |j                  «       «      t	        t        «      k(  sJ ‚|j                  | |¬«      }||k(  sJ ‚y )Nr5   )r±   )r#   r	   Ú
isinstanceÚdictÚsetÚkeysr   r:   )r°   r±   Úempty_paramsÚrouted_paramsÚparams_for_methodÚdefault_params_for_methods         r1   Ú2test_process_routing_empty_params_get_with_defaultr»     s„   € ð €LÜ#Ô$7Ó$9¸5ÑQÀLÑQ€Mð & fÑ-ÐÜÐ'¬Ô.Ð.Ð.ÜÐ ×%Ñ%Ó'Ó(¬C´«LÒ8Ð8Ð8ð !.× 1Ñ 1°&À'Ð 1Ó JÐØ$Ð(9Ò9Ð9Ñ9r3   c                  óø  — t        t        «       ¬«      } | j                  t        t        «       t        t        «       ¬«      } | j                  t        t        t
        ¬«       t        t        «       ¬«      } d}t        j                  t        t        j                  |«      ¬«      5  | j                  t        t        t
        ¬«       d d d «       t        t        «       j                  d¬«      ¬«      } | j                  t        t        t
        ¬«       t        | j                  dd¬«       t        t        «       j                  d¬«      ¬«      } | j                  t        t        t
        ¬«       t        | j                  ddt
        ¬	«       t        t        «       j                  d
¬«      ¬«      } | j                  t        t        t
        ¬«       t        | j                  ddt
        ¬	«       y # 1 sw Y   �Œ)xY w)Nrg   ©r„   zo[sample_weight] are passed but are not explicitly set as requested or not requested for ConsumingClassifier.fitr£   Fr5   )r°   ÚparentT©r°   r¾   r„   Úalternative_weight)rÀ   )r   r   r5   r>   r?   Ú
my_weightsr	   rk   rl   Ú
ValueErrorÚreÚescapeÚset_fit_requestr   Ú
estimator_)ÚclfÚerr_messages     r1   Útest_simple_metadata_routingrÉ   +  sw  € ô
 !Ô+AÓ+CÔ
D€CØ‡G�GŒAŒq„Mô !Ô+AÓ+CÔ
D€CØ‡G�GŒAŒq¤
€GÔ+ô !Ô+>Ó+@Ô
A€Cð	5ð ô 
�‰”z¬¯©°;Ó)?Ô	@ñ 0Ø�‰””1¤JˆÔ/÷0ô !Ü%Ó'×7Ñ7ÀeÐ7ÓLô€Cð ‡G�GŒAŒq¤
€GÔ+Ü˜CŸN™N°5ÀÕGô !Ü%Ó'×7Ñ7ÀdÐ7ÓKô€Cð ‡G�GŒAŒq¤
€GÔ+ÜØ�‰˜u¨UÄ*õô
 !Ü%Ó'×7Ñ7Ø.ð 8ó 
ô€Cð
 ‡G�GŒAŒq¤Z€GÔ0ÜØ�‰˜u¨UÄ*ö÷A0ñ 0ús   Â'!G/Ç/G9c            	      ó  — t        t        t        «       j                  dd¬«      j	                  dd¬«      ¬«      t        t        «       j                  dd¬«      j                  d¬«      ¬«      j                  d	¬«      g«      } d
gdgdg}}}| j                  t        t        t        |||¬«       t        | j                  d   j                  ddt        ¬«       t        | j                  d   j                  dd|¬«       t        | j                  d
   dd|¬«       t        | j                  d
   j                  dd|¬«       | j!                  t        |¬«       t        | j                  d   j                  dd|¬«       y )NTFr‰   r‡   ©rE   Úinner_weightsr½   rg   Úouter_weightsé   r(   é   )rˆ   r„   rÍ   rÌ   r   r5   )r°   r¾   rˆ   r<   r¿   )r,   r   r   rÅ   Úset_transform_requestr   r
   Úset_predict_requestr5   r>   r?   r¨   r   r8   Útransformer_rÆ   rG   )ÚpipelineÚw1Úw2Úw3s       r1   Útest_nested_routingr×   d  sn  € ô äÜ0Ó2ß ‘¨$¸e�ÓDß&Ñ&°TÀEÐ&ÓJôô
 "Ü,Ó.ß ‘¨È�ÓOß$Ñ$°5Ð$Ó9ô÷ ‰o¨OˆoÓ<ð	
ó€Hð ��q�c˜A˜3ˆBˆ€BØ‡L�LÜ	Œ1”y°À"ÐTVð ô ô Ø�‰˜Ñ×'Ñ'ØØÜõ	ô Ø�‰˜Ñ×'Ñ'ØØØõ	ô Ø�‰˜Ñ 5°Àbõô Ø�‰˜Ñ×%Ñ%¨e¸EÐQSõð ×Ñ”Q bÐÔ)ÜØ�‰˜Ñ×'Ñ'ØØØö	r3   c                  ó¾  — t        t        t        «       j                  dd¬«      j	                  d¬«      ¬«      t        t        «       j                  d¬«      ¬«      j                  d¬«      g«      } dgd	g}}t        j                  t        t        j                  d
«      ¬«      5  | j                  t        t        t        ||¬«       d d d «       y # 1 sw Y   y xY w)NTFr‰   r½   rË   rg   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   r
   rk   rl   rÂ   rÃ   rÄ   r5   r>   r?   r¨   )rÓ   rÔ   rÕ   s      r1   Útest_nested_routing_conflictrÙ   •  sÇ   € ô äÜ0Ó2ß ‘¨$¸e�ÓDß&Ñ&°TÐ&Ó:ôô
 "Ü,Ó.×>Ñ>ÈTÐ>ÓRôç‰o¨OˆoÓ<ð		
ó€Hð ˆS�1�#ˆ€BÜ	�‰Üä�I‰Ið:óô

ñ Sð 	�‰”Qœ¤I¸RÈrˆÔR÷S÷ Sñ Sús   Â'#CÃCc                  ól  — t        t        «       j                  d¬«      ¬«      } t        j                  t
        t        j                  d«      ¬«      5  | j                  t        t        «      j                  t        t        ¬«       d d d «       t        t        «       j                  d¬«      ¬«      } t        j                  t
        t        j                  d«      ¬«      5  | j                  t        t        «      j                  t        t        ¬«       d d d «       y # 1 sw Y   Œ˜xY w# 1 sw Y   y xY w)	NTr½   rË   z4transform got unexpected argument(s) {'other_param'}r£   ©Úother_paramFz6transform got unexpected argument(s) {'sample_weight'})r   r   rÐ   rk   rl   r§   rÃ   rÄ   r5   r>   r?   r<   rÁ   )Útrss    r1   Útest_invalid_metadatarÞ   ³  së   € ô Ü(Ó*×@Ñ@ÈtÐ@ÓTô€Cô 
�‰ÜÜ�y‰yÐOÓPô
ñ ;ð 	�‰””1‹×Ñ¤¬zÐÔ:÷	;ô Ü(Ó*×@Ñ@ÈuÐ@ÓUô€Cô 
�‰ÜÜ�y‰yÐQÓRô
ñ =ð 	�‰””1‹×Ñ¤´ÐÔ<÷	=ð =÷;ð ;ú÷=ð =ús   Á4DÃ!4D*ÄD'Ä*D3c                  ó&  —  G d„ dt         «      }  G d„ dt         «      }t        j                  t        d¬«      5   | «       j	                  «        d d d «       dd d dœd d d	œd
didœ}t         |«       j	                  «       |«        |«       j                  d¬«      }dd d dœd d d	œd
didœ}t        |j	                  «       |«        |«       j                  d¬«      }dd d dœd dd	œd
didœ}t        |j	                  «       |«       y # 1 sw Y   Œ¸xY w)Nc                   ó*   — e Zd ZdddœZddddœZddiZy)ú<test_get_metadata_routing.<locals>.TestDefaultsBadMethodNameN)r„   Úmy_paramT©r„   râ   Úmy_other_paramrâ   )rR   rV   rW   Ú1_TestDefaultsBadMethodName__metadata_request__fitÚ3_TestDefaultsBadMethodName__metadata_request__scoreÚ:_TestDefaultsBadMethodName__metadata_request__other_methodrP   r3   r1   ÚTestDefaultsBadMethodNamerá   Ì  s0   „ à!Øñ#
Ðð
 "ØØ"ñ%
Ð!ð -7¸Ð+=Ñ(r3   rè   c                   ó*   — e Zd ZdddœZddddœZddiZy)ú/test_get_metadata_routing.<locals>.TestDefaultsN)r„   rä   Trã   râ   )rR   rV   rW   Ú$_TestDefaults__metadata_request__fitÚ&_TestDefaults__metadata_request__scoreÚ(_TestDefaults__metadata_request__predictrP   r3   r1   ÚTestDefaultsrê   Ù  s0   „ à!Ø"ñ#
Ðð
 "ØØ"ñ%
Ð!ð
 (2°4Ð&8Ñ#r3   rî   z8'MetadataRequest' object has no attribute 'other_method'r£   T)râ   rä   r„   )rä   r„   râ   )rf   r5   rG   rÜ   )râ   r½   )r   rk   rl   r®   rU   r   Úset_score_requestrÅ   )rè   rî   ÚexpectedÚests       r1   Útest_get_metadata_routingrò   Ê  sL  € ô>Ô$6ô >ô
9Ô)ô 
9ô 
�‰ÜÐXô
ñ ;ñ 	"Ó#×8Ñ8Ô:÷;ð Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ™›×<Ñ<Ó>ÀÔIá
‹.×
*Ñ
*°MÐ
*Ó
B€Cð &Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ˜×1Ñ1Ó3°XÔ>á
‹.×
(Ñ
(°tÐ
(Ó
<€Cð Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ˜×1Ñ1Ó3°XÕ>÷_;ð ;ús   ºDÄD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 | |<   | j                  «       D ]e  \  }}t         |«       «      j                  j
                  |k(  sJ ‚t         |«       j                  «       d¬«        |«       j	                  d d «       Œg y )Nc                   ó   — e Zd ZddiZd„ Zy)ú6test_setting_default_requests.<locals>.ExplicitRequestÚpropNc                 ó   — | S r.   rP   ©r0   r>   r?   Úkwargss       r1   r5   z:test_setting_default_requests.<locals>.ExplicitRequest.fit   ó   € ØˆKr3   )rR   rV   rW   Ú'_ExplicitRequest__metadata_request__fitr5   rP   r3   r1   ÚExplicitRequestrõ     s   „ à#)¨4 .Ðó	r3   rü   rö   c                   ó   — e Zd ZddiZdd„Zy)ú?test_setting_default_requests.<locals>.ExplicitRequestOverwriterö   TNc                 ó   — | S r.   rP   ©r0   r>   r?   rö   rù   s        r1   r5   zCtest_setting_default_requests.<locals>.ExplicitRequestOverwrite.fit*  rú   r3   r.   )rR   rV   rW   Ú0_ExplicitRequestOverwrite__metadata_request__fitr5   rP   r3   r1   ÚExplicitRequestOverwriterþ   %  s   „ ð $*¨4 .Ðô	r3   r  Tc                   ó   — e Zd Zdd„Zy)ú6test_setting_default_requests.<locals>.ImplicitRequestNc                 ó   — | S r.   rP   r   s        r1   r5   z:test_setting_default_requests.<locals>.ImplicitRequest.fit1  rú   r3   r.   ©rR   rV   rW   r5   rP   r3   r1   ÚImplicitRequestr  /  s   „ ô	r3   r  c                   ó0   — e Zd Zdej                  iZdd„Zy)ú=test_setting_default_requests.<locals>.ImplicitRequestRemovalrö   Nc                 ó   — | S r.   rP   r   s        r1   r5   zAtest_setting_default_requests.<locals>.ImplicitRequestRemoval.fit;  rú   r3   r.   )rR   rV   rW   r   ÚUNUSEDÚ._ImplicitRequestRemoval__metadata_request__fitr5   rP   r3   r1   ÚImplicitRequestRemovalr	  6  s   „ ð $*Ð+;×+BÑ+BÐ"CÐô	r3   r  r5   rc   )r´   r   Úitemsr"   r5   ro   r   rU   )Ú
test_casesrü   r  r  r  ÚKlassro   s          r1   Útest_setting_default_requestsr    sÛ   € ô “€Jôœ-ô ð $*¨4 .€JˆÑô¤=ô ð -3°D¨>€JÐ'Ñ(ôœ-ô ð
 $*¨4 .€JˆÑô¤ô ð *,€JÐ%Ñ&à%×+Ñ+Ó-ò  ‰ˆˆxÜ%¡e£gÓ.×2Ñ2×;Ñ;¸xÒGÐGÐGÜ¡£× <Ñ <Ó >ÈÕNÙ‹�‰�D˜$Õñ r3   c                  ó¬   —  G d„ dt         «      } t        j                  t        d¬«      5   | «       j	                  «        ddd«       y# 1 sw Y   yxY w)zFTest that removing a metadata using UNUSED which doesn't exist raises.c                   ó.   — e Zd Zdej                  iZd„ Zy)úFtest_removing_non_existing_param_raises.<locals>.InvalidRequestRemovalrö   c                 ó   — | S r.   rP   rø   s       r1   r5   zJtest_removing_non_existing_param_raises.<locals>.InvalidRequestRemoval.fitO  rú   r3   N)rR   rV   rW   r   r  Ú-_InvalidRequestRemoval__metadata_request__fitr5   rP   r3   r1   ÚInvalidRequestRemovalr  J  s   „ ð $*Ð+;×+BÑ+BÐ"CÐó	r3   r  zTrying to remove parameterr£   N)r   rk   rl   rÂ   rU   )r  s    r1   Ú'test_removing_non_existing_param_raisesr  F  sC   € ô¤ô ô 
�‰”zÐ)EÔ	Fñ 7ÙÓ×4Ñ4Ô6÷7÷ 7ñ 7ús   «A
Á
Ac                  ó€  — t        dd¬«      } t        j                  t        d¬«      5  | j	                  dd¬«       d d d «       | j	                  dd ¬«       | j
                  dd ik(  sJ ‚| j	                  dd	¬«       | j
                  dd	ik(  sJ ‚| j	                  dd
¬«       | j
                  dd
ik(  sJ ‚| j	                  dd¬«       | j
                  dd
ik(  sJ ‚| j	                  dd¬«       | j
                  ddik(  sJ ‚| j                  d	¬«      dhk(  sJ ‚| j                  d
¬«      dhk(  sJ ‚y # 1 sw Y   ŒøxY w)Nr\   r5   ©rK   r°   zThe alias you're setting forr£   r]   gffffffö?r^   FTra   )Úreturn_alias)r   rk   rl   rÂ   rj   ro   Ú_get_param_names)Úmmrs    r1   Útest_method_metadata_requestr  V  s>  € ä
 f°UÔ
;€Cä	�‰”zÐ)GÔ	Hñ 0Ø�‰˜e¨3ˆÔ/÷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¸°wÒ>Ð>Ð>Ø×Ñ¨TÐÓ2°u°gÒ=Ð=Ñ=÷0ð 0ús   ©D4Ä4D=c                  ó²  —  G d„ dt         «      } t        t        d «      «       t        t        t        «       «      «       t	        d¬«      }|j
                  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 ‚y )Nc                   ó   — e Zd ZddiZy)ú-test_get_routing_for_object.<locals>.Consumerrö   N)rR   rV   rW   Ú _Consumer__metadata_request__fitrP   r3   r1   ÚConsumerr!  m  s   „ Ø#)¨4 .Ñr3   r#  r\   rJ   r]   ra   r^   r5   rc   rö   )r   r   r"   Úobjectr   r5   rj   ro   )r#  ÚmrÚ
mr_factorys      r1   Útest_get_routing_for_objectr'  k  s¯   € ô1”=ô 1ô Ô2°4Ó8Ô9ÜÔ2´6³8Ó<Ô=ä	˜vÔ	&€BØ‡F�F×Ñ˜U¨%ÐÔ0Ü'¨Ó+€JÜ˜J°Õ6Ø�>‰>×"Ñ" u¨e nÒ4Ð4Ð4ä	¡£
Ó	+€BÜ˜B¨Õ.Ø�6‰6�?‰?˜v t˜nÒ,Ð,Ñ,r3   c                  ól  — t        d¬«      } | j                  ddh¬«      t        «       k(  sJ ‚t        d¬«      } | j                  j                  dd¬«       | j                  ddh¬«      dhk(  sJ ‚t        d¬«      } | j                  j                  dd¬«       | j                  dddh¬«      dhk(  sJ ‚y	)
z@Test that MetadataRequest().consumes() method works as expected.r\   rJ   r5   r]   ©r°   rA   Tr^   ra   N)r   Úconsumesrµ   r   r5   rj   )Úrequests    r1   Ú%test_metadata_request_consumes_methodr,  ~  s¸   € ô  6Ô*€GØ×Ñ 5°%°ÐÓ9¼S»UÒBÐBÐBä FÔ+€GØ‡K�K×Ñ %¨tÐÔ4Ø×Ñ 5°%°ÐÓ9¸e¸WÒDÐDÐDä FÔ+€GØ‡K�K×Ñ %¨uÐÔ5Ø×Ñ 5°%¸°ÐÓ@ÀUÀGÒKÐKÑKr3   c                  ó  — t        t        «       j                  d¬«      ¬«      dhdhft        t        «       j                  d¬«      ¬«      ddhdhfg} | D ],  \  }}}|j                  «       j	                  d|¬«      |k(  rŒ,J ‚ y)	z=Test that MetadataRouter().consumes method works as expected.Tr½   rg   r„   rÁ   r5   r)  N)r   r
   rÅ   rU   r*  )ÚcasesÚobjÚinputÚoutputs       r1   Ú$test_metadata_router_consumes_methodr2  �  s³   € ô "Ü,Ó.×>Ñ>ÈTÐ>ÓRôð ÐØÐð	
ô "Ü,Ó.×>Ñ>Ø".ð ?ó ôð
 ˜?Ð+ØˆNð	
ð€Eð& $ò YÑˆˆU�FØ×'Ñ'Ó)×2Ñ2¸%ÈÐ2ÓNÐRXÓXÐXÐXñYr3   c                  ó   —  G d„ dt         «      } t        j                  t        d¬«      5   | t	        «       j                  d¬«      ¬«      j                  t        t        t        ¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó(   — e Zd Zdej                  iZy)ú>test_metaestimator_warnings.<locals>.WeightedMetaRegressorWarnr„   N)rR   rV   rW   r   ÚWARNÚ1_WeightedMetaRegressorWarn__metadata_request__fitrP   r3   r1   ÚWeightedMetaRegressorWarnr5  «  ó   „ Ø#2Ð4D×4IÑ4IÐ"JÑr3   r8  ú4Support for .* has recently been added to this classr£   Fr½   rg   )
r   rk   ÚwarnsÚUserWarningr   rÅ   r5   r>   r?   rÁ   )r8  s    r1   Útest_metaestimator_warningsr=  ©  sh   € ôKÔ$9ô Kô 
�‰ÜÐQô
ñ .ñ 	"Ü&Ó(×8Ñ8ÀuÐ8ÓMô	
ç
‰#Œa”¤*ˆ#Ô
-÷.÷ .ñ .ús   «A A4Á4A=c                  óà   —  G d„ dt         «      } t        j                  t        d¬«      5  t	         | «       ¬«      j                  t        t        t        ¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó(   — e Zd Zdej                  iZy)ú7test_estimator_warnings.<locals>.ConsumingRegressorWarnr„   N)rR   rV   rW   r   r6  Ú._ConsumingRegressorWarn__metadata_request__fitrP   r3   r1   ÚConsumingRegressorWarnr@  ¸  r9  r3   rB  r:  r£   rg   r½   )	r
   rk   r;  r<  r   r5   r>   r?   rÁ   )rB  s    r1   Útest_estimator_warningsrC  ¶  s_   € ôKÔ!3ô Kô 
�‰ÜÐQô
ñ 
ô 	Ñ 6Ó 8Ô9×=Ñ=ÜŒq¤
ð 	>ô 	
÷
÷ 
ñ 
ús   «0A$Á$A-zobj, stringr\   r5   r  r]   ra   r^   z{'foo': 'bar'}rJ   z{}rG   rM   ri   a*  {'estimator': {'mapping': [{'caller': 'predict', 'callee': 'predict'}], 'router': {'fit': {'sample_weight': None, 'metadata': None}, 'partial_fit': {'sample_weight': None, 'metadata': None}, 'predict': {'sample_weight': None, 'metadata': None}, 'score': {'sample_weight': None, 'metadata': None}}}}c                 ó$   — t        | «      |k(  sJ ‚y r.   )Ústr)r/  Ústrings     r1   Útest_string_representationsrG  Ã  s   € ô> ˆs‹8�vÒÐÑr3   z%obj, method, inputs, err_cls, err_msgrS   ÚinvalidzGiven calleezGiven callerrn   r/  z@Given `obj` is neither a `MetadataRequest` nor does it implementrÅ   zUnexpected argsc                 ó€   — t        j                  ||¬«      5   t        | |«      di |¤Ž d d d «       y # 1 sw Y   y xY w)Nr£   rP   )rk   rl   Úgetattr)r/  r°   ÚinputsÚerr_clsÚerr_msgs        r1   Útest_validationsrN  å  s<   € ôF 
�‰�w gÔ	.ñ 'ØŒ��VÓÑ&˜vÒ&÷'÷ 'ñ 'ús   ˜4´=c                  óÂ  — t        «       j                  dd¬«      j                  dd¬«      } t        | «      }|d   dk(  sJ ‚|d   dk(  sJ ‚t        «       } t        D ]/  }| j                  ||¬«       t	        ||«      | j
                  v rŒ/J ‚ t        | j
                  «      t        t        «      k(  sJ ‚t        «       j                  dd¬«      } t        | «      d	k(  sJ ‚y )
Nr5   r<   rM   r   )r5   r<   rÎ   )r5   r5   rf   z([{'caller': 'score', 'callee': 'score'}])r    rS   Úlistr   r   Ú_routesrŠ   Úrepr)ÚmmÚmm_listr°   s      r1   Útest_methodmappingrU    sß   € ô 	‹ß	‰�E +ˆÓ	.ß	‰�E %ˆÓ	(ð ô �2‹h€GØ�1‰:Ð-Ò-Ð-Ð-Ø�1‰:˜Ò'Ð'Ð'ä	‹€BÜò 8ˆØ
�‰�f VˆÔ,Ü˜& &Ó)¨R¯Z©ZÒ7Ð7Ð7ð8ô ˆr�z‰z‹?œc¤'›lÒ*Ð*Ð*ä	‹×	Ñ	 G°GÐ	Ó	<€BÜ�‹8ÐAÒAÐAÑAr3   c                  ó|  — t        d¬«      } | j                  j                  dd¬«       t        d¬«      j	                  | «      }t        |j                  «      t        | «      k(  sJ ‚|j                  | usJ ‚t        «       j                  d¬«      }t        d¬«      j	                  |¬	«      }t        |j                  «      t        |j                  «       «      k(  sJ ‚|j                  |j                  «       usJ ‚t        t        «       j                  d
¬«      ¬«      }t        d¬«      j	                  |¬	«      }t        |j                  «      t        |j                  «       «      k(  sJ ‚t        |j                  «      t        |j                  «       «      k7  sJ ‚|j                  |j                  «       usJ ‚y )NÚnestedrJ   r_   Tr^   r\   rÁ   r½   )r/  Únested_weightsrg   )r   r5   rj   r   rn   rE  Ú_self_requestr
   rÅ   rU   r   r    )r+  rT   rñ   s      r1   Ú$test_metadatarouter_add_self_requestrZ  "  s‡  € ô  HÔ-€GØ‡K�K×Ñ '°ÐÔ6Ü &Ô)×:Ñ:¸7ÓC€FÜˆv×#Ñ#Ó$¬¨G«Ò4Ð4Ð4à×Ñ wÑ.Ð.Ð.ô Ó
×
.Ñ
.¸\Ð
.Ó
J€CÜ &Ô)×:Ñ:¸sÐ:ÓC€FÜˆv×#Ñ#Ó$¬¨C×,DÑ,DÓ,FÓ(GÒGÐGÐGØ×Ñ s×'?Ñ'?Ó'AÑAÐAÐAô  Ü$Ó&×6Ñ6ÐEUÐ6ÓVô€Cô  &Ô)×:Ñ:¸sÐ:ÓC€Fäˆv×#Ñ#Ó$¬¨C×,EÑ,EÓ,GÓ(HÒHÐHÐHô ˆv×#Ñ#Ó$¬¨C×,DÑ,DÓ,FÓ(GÒGÐGÐGà×Ñ s×'@Ñ'@Ó'BÑBÐBÑBr3   c                  ó|  — t        d¬«      j                  t        «       j                  d¬«      t	        «       j                  dd¬«      ¬«      } t        | «      dk(  sJ ‚t        d¬«      j                  t	        «       j                  dd	¬«      t        «       j                  d
¬«      ¬«      } t        | «      dk(  sJ ‚y )Nr\   rJ   Úweightsr½   r5   rM   )rñ   rL   a!  {'est': {'mapping': [{'caller': 'fit', 'callee': 'fit'}], 'router': {'fit': {'sample_weight': 'weights', 'metadata': None}, 'partial_fit': {'sample_weight': None, 'metadata': None}, 'predict': {'sample_weight': None, 'metadata': None}, 'score': {'sample_weight': None, 'metadata': None}}}}rf   T)rL   rñ   a  {'est': {'mapping': [{'caller': 'fit', 'callee': 'score'}], 'router': {'fit': {'sample_weight': None, 'metadata': None}, 'partial_fit': {'sample_weight': None, 'metadata': None}, 'predict': {'sample_weight': None, 'metadata': None}, 'score': {'sample_weight': True, 'metadata': None}}}})r   rS   r
   rÅ   r    rE  rï   ©rT   s    r1   Útest_metadata_routing_addr^  @  sÆ   € ô  &Ô)×-Ñ-ÜÓ ×0Ñ0¸yÐ0ÓIÜ$“×*Ñ*°%ÀÐ*ÓFð .ó €Fô
 	ˆF‹ðò	ðð	ô  &Ô)×-Ñ-Ü$“×*Ñ*°%ÀÐ*ÓHÜÓ ×2Ñ2ÀÐ2ÓFð .ó €Fô
 	ˆF‹ðò	ðñ	r3   c                  ó  — t        d¬«      j                  t        t        «       ¬«      j	                  d¬«      «      j                  t        «       j	                  d¬«      t        «       j                  dd¬«      ¬	«      } t        | «      d
k(  sJ ‚| j                  ddd¬«      h d£k(  sJ ‚| j                  ddd¬«      h d£k(  sJ ‚| j                  ddd¬«      ddhk(  sJ ‚| j                  ddd¬«      | j                  ddd¬«      k(  sJ ‚y )Nr\   rJ   rg   Úself_weightsr½   Útransform_weightsr5   rM   )rÝ   rL   a^  {'$self_request': {'fit': {'sample_weight': 'self_weights'}, 'score': {'sample_weight': None}}, 'trs': {'mapping': [{'caller': 'fit', 'callee': 'fit'}], 'router': {'fit': {'sample_weight': 'transform_weights', 'metadata': None}, 'transform': {'sample_weight': None, 'metadata': None}, 'inverse_transform': {'sample_weight': None, 'metadata': None}}}}TF)r°   r  Úignore_self_request>   rˆ   r`  ra  >   rˆ   r„   ra  rˆ   )
r   rn   r   r
   rÅ   rS   r   r    rE  r  r]  s    r1   Ú%test_metadata_routing_get_param_namesrc  _  sr  € ô 	˜VÔ$ß	Ñ	Ü!Ô,>Ó,@ÔA×QÑQØ,ð Ró ó

÷
 
‰Ü$Ó&×6Ñ6Ø1ð 7ó ô )›?×.Ñ.°eÀEÐ.ÓJð	 
ó 

ð ô  	ˆF‹ðMò	Mðð	Mð ×"Ñ"Ø 4¸Uð #ó â	:ò;ð ;ð ;ð ×"Ñ"Ø 5¸eð #ó â	;ò<ð <ð <ð ×"Ñ"Ø 5¸dð #ó à
Ð)Ð	*ò+ð +ð +ð ×"Ñ"Ø 4¸Tð #ó à	×	 Ñ	 Ø 5¸dð 
!ó 
òð ñ r3   c                  ó  —  G d„ dt         «      } t        D ]  }t         | «       d|› d�«      sŒJ ‚  G d„ dt         «      } t        D ]  }t         | «       d|› d�«      sŒJ ‚ t        D ]  }t         | «       d|› d�«      rŒJ ‚ y )Nc                   óV   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd„Zd„ Zd„ Zy
)ú/test_method_generation.<locals>.SimpleEstimatorc                  ó   — y r.   rP   ©r0   r>   r?   s      r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fit”  ó   € Ør3   c                  ó   — y r.   rP   rh  s      r1   Úfit_transformz=test_method_generation.<locals>.SimpleEstimator.fit_transform—  ri  r3   c                  ó   — y r.   rP   rh  s      r1   Úfit_predictz;test_method_generation.<locals>.SimpleEstimator.fit_predictš  ri  r3   c                  ó   — y r.   rP   rh  s      r1   Úpartial_fitz;test_method_generation.<locals>.SimpleEstimator.partial_fit�  ri  r3   c                  ó   — y r.   rP   ©r0   r>   s     r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predict   ri  r3   c                  ó   — y r.   rP   rq  s     r1   Úpredict_probaz=test_method_generation.<locals>.SimpleEstimator.predict_proba£  ri  r3   c                  ó   — y r.   rP   rq  s     r1   Úpredict_log_probazAtest_method_generation.<locals>.SimpleEstimator.predict_log_proba¦  ri  r3   c                  ó   — y r.   rP   rq  s     r1   Údecision_functionzAtest_method_generation.<locals>.SimpleEstimator.decision_function©  ri  r3   c                  ó   — y r.   rP   rh  s      r1   rf   z5test_method_generation.<locals>.SimpleEstimator.score¬  ri  r3   Nc                  ó   — y r.   rP   rh  s      r1   rŸ   z5test_method_generation.<locals>.SimpleEstimator.split¯  ri  r3   c                  ó   — y r.   rP   rq  s     r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transform²  ri  r3   c                  ó   — y r.   rP   rq  s     r1   Úinverse_transformzAtest_method_generation.<locals>.SimpleEstimator.inverse_transformµ  ri  r3   r.   ©rR   rV   rW   r5   rk  rm  ro  rG   rs  ru  rw  rf   rŸ   r<   r|  rP   r3   r1   ÚSimpleEstimatorrf  ’  s>   „ ò	ò	ò	ò	ò	ò	ò	ò	ò	ó	ò	ó	r3   r~  Úset_Ú_requestc                   ól   — 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d„Zdd„Zy)rf  Nc                  ó   — y r.   rP   ©r0   r>   r?   r„   s       r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fit½  ri  r3   c                  ó   — y r.   rP   rƒ  s       r1   rk  z=test_method_generation.<locals>.SimpleEstimator.fit_transformÀ  ri  r3   c                  ó   — y r.   rP   rƒ  s       r1   rm  z;test_method_generation.<locals>.SimpleEstimator.fit_predictÃ  ri  r3   c                  ó   — y r.   rP   rƒ  s       r1   ro  z;test_method_generation.<locals>.SimpleEstimator.partial_fitÆ  ri  r3   c                  ó   — y r.   rP   ©r0   r>   r„   s      r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predictÉ  ri  r3   c                  ó   — y r.   rP   rˆ  s      r1   rs  z=test_method_generation.<locals>.SimpleEstimator.predict_probaÌ  ri  r3   c                  ó   — y r.   rP   rˆ  s      r1   ru  zAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaÏ  ri  r3   c                  ó   — y r.   rP   rˆ  s      r1   rw  zAtest_method_generation.<locals>.SimpleEstimator.decision_functionÒ  ri  r3   c                  ó   — y r.   rP   rƒ  s       r1   rf   z5test_method_generation.<locals>.SimpleEstimator.scoreÕ  ri  r3   c                  ó   — y r.   rP   rƒ  s       r1   rŸ   z5test_method_generation.<locals>.SimpleEstimator.splitØ  ri  r3   c                  ó   — y r.   rP   rˆ  s      r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transformÛ  ri  r3   c                  ó   — y r.   rP   rˆ  s      r1   r|  zAtest_method_generation.<locals>.SimpleEstimator.inverse_transformÞ  ri  r3   r.   ©NNr}  rP   r3   r1   r~  z/test_method_generation.<locals>.SimpleEstimator»  s>   „ ó	ó	ó	ó	ó	ó	ó	ó	ó	ó	ó	ô	r3   )r   r   Úhasattrr   r   )r~  r°   s     r1   Útest_method_generationr’  Œ  s©   € ô$œ-ô $ôL ò GˆÜ™?Ó,°°V°H¸HÐ.EÕFÐFÐFðGô$œ-ô $ôN $ò GˆÜ™?Ó,°°V°H¸HÐ.EÕFÐFÐFðGô !ò CˆÜ‘Ó(¨D°°¸Ð*AÕBÐBÐBñCr3   c                  ó,  —  G d„ dt         «      }  | «       }|j                  «       j                  j                  d d d dœk(  sJ ‚|j                  «       j                  j                  d d dœk(  sJ ‚|j                  dd¬«       t        j                  t        d¬	«      5  |j                  «       j                   d d d «       |j                  d¬
«       t        j                  t        d¬	«      5  |j                  «       j                   d d d «       |j                  dd¬«       |j                  «       j                   |j                  d¬«       |j                  «       j                  j                  ddddœk(  sJ ‚y # 1 sw Y   ŒÆxY w# 1 sw Y   Œ‚xY w)Nc                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ú/test_composite_methods.<locals>.SimpleEstimatorNc                  ó   — y r.   rP   )r0   r>   r?   r]   ra   s        r1   r5   z3test_composite_methods.<locals>.SimpleEstimator.fitò  ri  r3   c                  ó   — y r.   rP   )r0   r>   r]   ra   s       r1   rG   z7test_composite_methods.<locals>.SimpleEstimator.predictõ  ri  r3   c                  ó   — y r.   rP   )r0   r>   rÜ   s      r1   r<   z9test_composite_methods.<locals>.SimpleEstimator.transformø  ri  r3   r�  r.   )rR   rV   rW   r5   rG   r<   rP   r3   r1   r~  r•  ð  s   „ ó	ó	ô	r3   r~  )ra   r]   rÜ   )ra   r]   Tr\   )r]   ra   z!Conflicting metadata requests forr£   )ra   rÛ   )r   rU   rk  ro   rm  rÅ   rk   rl   rÂ   rÑ   rÐ   )r~  rñ   s     r1   Útest_composite_methodsr™  ê  s  € ô	œ-ô 	ñ Ó
€Cð ×#Ñ#Ó%×3Ñ3×<Ñ<ØØØñAò ð ð ð
 ×#Ñ#Ó%×1Ñ1×:Ñ:ÀdÐSWÑ>XÒXÐXÐXð ×Ñ˜D fÐÔ-Ü	�‰”zÐ)LÔ	Mñ /Ø× Ñ Ó"×.Ò.÷/ð
 ×Ñ ÐÔ%Ü	�‰”zÐ)LÔ	Mñ /Ø× Ñ Ó"×.Ò.÷/ð
 ×Ñ ¨&ÐÔ1Ø×ÑÓ×*Ò*ð ×Ñ¨$ÐÔ/Ø×#Ñ#Ó%×3Ñ3×<Ñ<ØØØñAò ð ñ ÷#/ð /ú÷/ð /ús   ÂE>Ã.F
Å>FÆ
Fc                  óÚ   — t        d¬«      5  t        j                  t        d¬«      5  t	        «       j                  d¬«       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w)zCTest that when feature flag disabled, set_{method}_requests raises.FrY   zThis method is only availabler£   Tr½   N)r   rk   rl   ÚRuntimeErrorr	   rÅ   rP   r3   r1   Ú!test_no_feature_flag_raises_errorrœ    sg   € ô 
°Ô	6ñ FÜ�]‰]œ<Ð/NÔOñ 	FÜÓ!×1Ñ1ÀÐ1ÔE÷	F÷Fð F÷	Fð 	Fú÷Fð Fús"   �A!©AÁA!ÁA	ÁA!Á!A*c                  ó`   — t        t        «       ¬«      j                  t        t        d¬«       y)zCTest that passing None as metadata when not requested doesn't raiserg   Nr½   )r   r
   r5   r>   r?   rP   r3   r1   Útest_none_metadata_passedrž  '  s"   € ô Ô.Ó0Ô1×5Ñ5´a¼È$Ð5ÕOr3   c                  ó<  —  G d„ dt         t        «      } t         | «       ¬«      j                  t        t
        «       t        j                  t        d¬«      5  t         | «       ¬«      j                  t        t
        t        ¬«       ddd«       y# 1 sw Y   yxY w)zÐTest that when no metadata is passed, having a meta-estimator which does
    not yet support metadata routing works.

    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/28246
    c                   ó   — e Zd Zdd„Zy)ú0test_no_metadata_always_works.<locals>.EstimatorNc                 ó   — | S r.   rP   )r0   r>   r?   rˆ   s       r1   r5   z4test_no_metadata_always_works.<locals>.Estimator.fit6  rú   r3   r.   r  rP   r3   r1   Ú	Estimatorr¡  5  ó   „ ô	r3   r£  rg   z3Estimator has not implemented metadata routing yet.r£   ©rˆ   N)
r!   r   r   r5   r>   r?   rk   rl   ÚNotImplementedErrorr¨   )r£  s    r1   Útest_no_metadata_always_worksr§  -  ss   € ôÔ-¬}ô ô
 ™I›KÔ(×,Ñ,¬Q´Ô2ä	�‰ÜÐ#Xô
ñ Kô 	¡	£Ô,×0Ñ0´´AÄ	Ð0ÔJ÷K÷ Kñ Kús   Á0BÂBc                  ó  — t        t        «       ¬«      } t        | g«      }t        j                  d«      }t        j                  t        |¬«      5  |j                  t        t        d¬«       ddd«       y# 1 sw Y   yxY w)z}Test that UnsetMetadataPassedError raises the correct error message when
    set_{method}_request is not set in nested cases.rg   a  [metadata] are passed but are not explicitly set as requested or not requested for ConsumingClassifier.fit, which is used within WeightedMetaClassifier.fit. Call `ConsumingClassifier.set_fit_request({metadata}=True/False)` for each metadata you want to request/ignore.r£   Úblahr¥  N)r   r	   r,   rÃ   rÄ   rk   rl   r   r5   r>   r?   )Úweighted_metaÚpipeÚmsgs      r1   Ú%test_unsetmetadatapassederror_correctr­  B  si   € ô +Ô5HÓ5JÔK€MÜ˜=˜/Ó*€DÜ
�)‰)ð	0ó€Cô 
�‰Ô/°sÔ	;ñ (Ø�‰””A ˆÔ'÷(÷ (ñ (ús   ÁA7Á7B c                  óö   — t        «       } t        d| fg«      }t        j                  d«      }t	        j
                  t        |¬«      5  |j                  t        t        d¬«       ddd«       y# 1 sw Y   yxY w)zŒTest that UnsetMetadataPassedError raises the correct error message when
    composite metadata request methods are not set in nested cases.Úconsuming_transformeraA  [metadata] are passed but are not explicitly set as requested or not requested for ConsumingTransformer.fit_transform, which is used within Pipeline.fit_transform. Call `ConsumingTransformer.set_fit_request({metadata}=True/False).set_transform_request({metadata}=True/False)` for each metadata you want to request/ignore.r£   r©  r¥  N)
r   r   rÃ   rÄ   rk   rl   r   rk  r>   r?   )r¯  r«  r¬  s      r1   Ú;test_unsetmetadatapassederror_correct_for_composite_methodsr°  S  so   € ô 1Ó2ÐÜÐ-Ð/DÐEÐFÓG€Dä
�)‰)ð	9ó€Cô 
�‰Ô/°sÔ	;ñ 2Ø×Ñœ1œa¨&ÐÔ1÷2÷ 2ñ 2ús   Á	A/Á/A8c                  ó´  —  G d„ dt         «      } t        j                  d«      }t        j                  t
        |¬«      5   | «       j                  d«       ddd«       | j                  | _         | «       j                  d¬«       t        j                  t
        |¬«      5   | «       j                  d«       ddd«       y# 1 sw Y   ŒlxY w# 1 sw Y   yxY w)a  Tests that if the set_{method}_request is unbound, it still works.

    Also test that passing positional arguments to the set_{method}_request fails
    with the right TypeError message.

    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/28632
    c                   ó   — e Zd Zdd„Zy)ú(test_unbound_set_methods_work.<locals>.ANc                 ó   — | S r.   rP   rƒ  s       r1   r5   z,test_unbound_set_methods_work.<locals>.A.fitq  rú   r3   r.   r  rP   r3   r1   ÚAr³  p  r¤  r3   rµ  z>set_fit_request() takes 0 positional argument but 1 were givenr£   TNr½   )r   rÃ   rÄ   rk   rl   r§   rÅ   )rµ  Úerror_messages     r1   Útest_unbound_set_methods_workr·  f  sµ   € ôŒMô ô —I‘IØHó€Mô
 
�‰”y¨Ô	6ñ "Ù	‹×Ñ˜DÔ!÷"ð ×)Ñ)€AÔñ ƒC×Ñ dÐÔ+ô 
�‰”y¨Ô	6ñ "Ù	‹×Ñ˜DÔ!÷"ð "÷"ð "ú÷"ð "ús   Á CÂ"CÃCÃC)hrX   rÃ   ÚnumpyÚnprk   Úsklearnr   Úsklearn.baser   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   Úsklearn.pipeliner   Ú%sklearn.tests.metadata_routing_commonr	   r
   r   r   r   r   r   r   r   r   r   r   Úsklearn.utilsr   Ú sklearn.utils._metadata_requestsr   r   r   r   r   r   r   r   Úsklearn.utils.metadata_routingr   r   r    r!   r"   r#   Úsklearn.utils.validationr$   ÚrandomÚRandomStateÚrngÚNÚMÚrandr>   Úrandintr?   r¨   rÁ   Úmy_other_weightsr,   rp   ÚmarkÚparametrizers   r|   r€   rŽ   r¡   r©   r¯   r»   rÉ   r×   rÙ   rÞ   rò   r  r  r  r'  r,  r2  r=  rC  rj   rS   rG  rÂ   r§   rN  rU  rZ  r^  rc  r’  r™  rœ  rž  r§  r­  r°  r·  rP   r3   r1   ú<module>rÎ     s¨  ðñó 
ã Û å "÷õ 8Ý 1Ý %÷÷ ÷ ó õ +÷	÷ 	ó 	÷÷ õ 5à‡i�i×Ñ˜BÓ€Ø�€€1Ø‡H�HˆQ�ƒN€Ø‡K�K��1˜1€KÓ€Ø�K‰K˜˜2 AˆKÓ&€	Ø�X‰X�a‹[€
Ø—8‘8˜A“;Ð ô7�]ô 7ñt ¨Ô-ñ ó .ð ðF ‡�×ÑØá¡Y£[Ô1Ù¡I£KÔ0Ù¡i£kÔ2ÙÑ)<Ó)>ÉËÔUÙÑ(:Ó(<ÁyÃ{ÔSðó	ñ ¨Ô-ñ+ó .ó	ð+ð ‡�×ÑØòóñ ¨Ô-ñ(ó .óð(ð
 ‡�×ÑØòóñ ¨Ô-ñ(ó .óð(ñ
 ¨Ô-ñ)ó .ð)ñ< ¨Ô-ñó .ðñ. ¨Ô-ñSó .ðSñ
 ¨Ô-ñBó .ðBð ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜ T¨9°bÐ$9Ó:Ù¨Ô-ñ:ó .ó ;ó ,ð:ñ ¨Ô-ñ5ó .ð5ñp ¨Ô-ñ-ó .ð-ñ` ¨Ô-ñSó .ðSñ: ¨Ô-ñ=ó .ð=ñ, ¨Ô-ñI?ó .ðI?ñX ¨Ô-ñ+ ó .ð+ ñ\ ¨Ô-ñ7ó .ð7ñ ¨Ô-ñ>ó .ð>ñ( ¨Ô-ñ-ó .ð-ñ$ ¨Ô-ñLó .ðLñ ¨Ô-ñYó .ðYñ6 ¨Ô-ñ	.ó .ð	.ñ ¨Ô-ñ	
ó .ð	
ñ ¨Ô-Ø‡�×ÑØñ "¨°uÔ=×IÑIØ 5ð Jó ð ð		
ñ  &Ô)Øð	
ñ
  Ô(×,Ñ,Ù,Ó.Ù,›×2Ñ2¸)ÈIÐ2ÓVð -ó ð
@ð	
ðóñ8 ¨Ô-ñó .ó9ó .ð<ð ‡�×ÑØ+ñ ‹OØØ¨	Ñ2ØØð	
ñ ‹OØØ ¨EÑ2ØØð	
ñ  Ô(ØØ‘N¨Ô0Ð1ØØNð	
ñ  Ó!ØØ˜ÐØØð	
ð-ó ñB ¨Ô-ñ'ó .óC ðD'ñ
 ¨Ô-ñBó .ðBñ* ¨Ô-ñCó .ðCñ: ¨Ô-ñó .ðñ< ¨Ô-ñ)ó .ð)ñX ¨Ô-ñZCó .ðZCñz ¨Ô-ñ1ó .ð1ñh ¨Ô-ñFó .ðFñ ¨Ô-ñPó .ðPñ
 ¨Ô-ñKó .ðKñ( ¨Ô-ñ(ó .ð(ñ  ¨Ô-ñ2ó .ð2ñ$ ¨Ô-ñ"ó .ñ"r3   