Ë
    êÿæivž  ã                   óæ	  — 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     úx/Volumes/fast/ai/experiments/voice-extract-mac/.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ð 2ð 	�‰×ÑØ%Œ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‰GˆAˆtØ*˜DŸN™N¨1ÑR°·
±
¸UÀ1À#¸;Ó0G×0QÑ0QÑR‰Mð 3ð 'ˆt�{‰{˜2‰×&Ñ& }ÑQ¸×8HÑ8H×8PÑ8PÑQÐQr3   c           
      óž  — t        | ¬«      }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   r9   r/   Úaddr    )r0   ÚrouterrC   rD   s       r1   Úget_metadata_routingz#SimplePipeline.get_metadata_routingh   sÄ   € Ü dÔ+ˆÜ  §¡¨C¨R Ö1‰GˆAˆtØˆF�J‰Jñ Ø˜1˜#�; Ð%ñä,›ß‘˜E¨%�Ó0ß‘˜E¨+�Ó6ß‘˜I¨k�Ó:ôð 2ð 	�
‰
Ø—j‘j ‘nÜ(›?ß‰S˜ eˆSÓ,ß‰S˜	¨)ˆSÓ4ð	 	ô 	
ð ˆr3   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   r5   rG   rS   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   ©rg   rL   )r   r   r5   Úadd_requestÚpytestÚraisesÚAssertionErrorre   r   Úadd_self_requestr   rQ   r
   r    )Úrequestss    r1   Útest_assert_request_is_emptyro   {   s  € ä VÔ,€HÜ˜HÔ%à‡L�L×Ñ 5°ÐÔ5ä˜HÔ%à‡L�L×Ñ 5°ÐÔ8Ü	�‰”~Õ	&ä Ô)÷ 
'ô
 ˜H¨eÕ4à‡N�N×Ñ X°TÐÔ:Ü	�‰”~Õ	&ä °%Õ8÷ 
'ô
 ˜H¨u°gÐ.>Õ?ô Ü˜VÔ$ß	Ñ	Ô/¸$Ô?Ó	@ß	‰Ü(Ó*Ü(›?×.Ñ.°eÀEÐ.ÓJð 
ó 

õ÷! 
'Ð	&ú÷ 
'Ð	&ús   Á6EÃEÅEÅE(rg   )Úregistry)rg   rp   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?   rp   rf   s    r1   Ú$test_estimator_puts_self_in_registryrr   Ÿ   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)rs   T)rt   Tru   )Ú	alias_argFc                 ó$   — t        | «      |k(  sJ ‚y r.   )r   rx   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dd„Zy)ú+test_default_requests.<locals>.OddEstimatorÚsample_weightTNc                 ó   — | S r.   rP   ©r0   r>   r?   s      r1   r5   z/test_default_requests.<locals>.OddEstimator.fitÜ   ó   € ØˆKr3   r.   )rT   rU   rV   Ú$_OddEstimator__metadata_request__fitr5   rP   r3   r1   ÚOddEstimatorr‚   Ö   s   „ ð ˜Tð#
Ðô
	r3   rˆ   rƒ   T©rƒ   Úmetadata©rŠ   rƒ   )r   r"   r5   rn   Úlenr   r   rS   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dd„Zy)ú+test_default_request_override.<locals>.BaseÚgroupsTNc                  ó   — y r.   rP   r…   s      r1   Úsplitz1test_default_request_override.<locals>.Base.split   ó   € Ør3   r.   )rT   rU   rV   Ú_Base__metadata_request__splitr–   rP   r3   r1   ÚBaser“   ý   s   „ Ø%-¨tÐ$4Ð!ô	r3   r™   c                   ó   — e Zd ZddiZdd„Zy)ú.test_default_request_override.<locals>.class_1r”   Úsample_domainNc                  ó   — y r.   rP   r…   s      r1   r–   z4test_default_request_override.<locals>.class_1.split  r—   r3   r.   )rT   rU   rV   Ú!_class_1__metadata_request__splitr–   rP   r3   r1   Úclass_1r›     ó   „ Ø%-¨Ð$?Ð!ô	r3   rŸ   c                   ó   — e Zd ZddiZdd„Zy)ú.test_default_request_override.<locals>.Class_1r”   rœ   Nc                  ó   — y r.   rP   r…   s      r1   r–   z4test_default_request_override.<locals>.Class_1.split  r—   r3   r.   )rT   rU   rV   Ú!_Class_1__metadata_request__splitr–   rP   r3   r1   ÚClass_1r¢   	  r    r3   r¥   r–   r”   rœ   N)r   r   Ú_get_metadata_request)r™   rŸ   r¥   s      r1   Útest_default_request_overrider§   ö   sn   € ôŒ}ô ô�$ô ô�$ô ô Ù‹	×'Ñ'Ó)¨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”   )rj   rk   Ú	TypeErrorr#   r	   Ú	my_groupsrP   r3   r1   Ú#test_process_routing_invalid_methodr¯     s/   € ä	�‰”yÐ(JÖ	KÜÔ+Ó-Ð/?Ì	ÕR÷ 
L×	KÑ	Kú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)rT   rU   rV   rP   r3   r1   ÚInvalidObjectr²     s   „ Ør3   r³   z#either implement the routing methodr©   r5   r¬   )rj   rk   ÚAttributeErrorr#   r®   )r³   s    r1   Ú#test_process_routing_invalid_objectrµ     s8   € ÷ñ ô 
�‰”~Ð-RÖ	SÜ™›¨´yÕA÷ 
T×	SÑ	Sú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)Nrf   ©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	   rj   rk   Ú
ValueErrorÚreÚescapeÚset_fit_requestr   Ú
estimator_)ÚclfÚerr_messages     r1   Útest_simple_metadata_routingrÏ   7  sr  € ô
 !Ô+AÓ+CÔ
D€CØ‡G�GŒAŒq„Mô !Ô+AÓ+CÔ
D€CØ‡G�GŒAŒq¤
€GÔ+ô !Ô+>Ó+@Ô
A€Cð	5ð ô 
�‰”z¬¯©°;Ó)?Ö	@Ø�‰””1¤JˆÔ/÷ 
Aô !Ü%Ó'×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 
AÑ	@ú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Ã   rf   Ú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Ý   p  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Ñ   rf   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 estimators' requested metadata.r©   )rŠ   rƒ   rÓ   )r,   r   r   rË   rÖ   r   r
   rj   rk   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ð9óö

ð 	�‰”Qœ¤I¸RÈrˆÔR÷

÷ 

ñ 

ú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Ö   rj   rk   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         «      } 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 )Nc                   ó@   — e Zd ZdddœZddddœZddiZd	d„Zd	d„Zd„ Zy)
ú/test_get_metadata_routing.<locals>.TestDefaultsN)rƒ   Úmy_other_paramT)rƒ   Úmy_paramrè   ré   c                 ó   — | S r.   rP   r…   s      r1   r5   z3test_get_metadata_routing.<locals>.TestDefaults.fitä  r†   r3   c                  ó   — y r.   rP   r…   s      r1   re   z5test_get_metadata_routing.<locals>.TestDefaults.scoreç  r—   r3   c                  ó   — y r.   rP   ©r0   r>   s     r1   rG   z7test_get_metadata_routing.<locals>.TestDefaults.predictê  r—   r3   r.   )	rT   rU   rV   Ú$_TestDefaults__metadata_request__fitÚ&_TestDefaults__metadata_request__scoreÚ(_TestDefaults__metadata_request__predictr5   re   rG   rP   r3   r1   ÚTestDefaultsrç   Ø  s?   „ à!Ø"ñ#
Ðð
 "ØØ"ñ%
Ð!ð
 (2°4Ð&8Ð#ó	ó	ó	r3   rñ   T)ré   rè   rƒ   )rè   rƒ   ré   )re   r5   rG   râ   )ré   rÃ   )r   r   rS   Úset_score_requestrË   )rñ   ÚexpectedÚests      r1   Útest_get_metadata_routingrõ   Ö  s  € ôÔ)ô ð. Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ™›×<Ñ<Ó>ÀÔIá
‹.×
*Ñ
*°MÐ
*Ó
B€Cð &Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ˜×1Ñ1Ó3°XÔ>á
‹.×
(Ñ
(°tÐ
(Ó
<€Cð Ø"Ø!ñ
ð #Ø!ñ
ð  Ð%ñ€Hô ˜×1Ñ1Ó3°XÕ>r3   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#  r†   r3   )rT   rU   rV   Ú'_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.   )rT   rU   rV   Ú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.fit4  r†   r3   r.   ©rT   rU   rV   r5   rP   r3   r1   ÚImplicitRequestr  2  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.   )rT   rU   rV   r   ÚUNUSEDÚ._ImplicitRequestRemoval__metadata_request__fitr5   rP   r3   r1   ÚImplicitRequestRemovalr  9  s   „ ð $*Ð+;×+BÑ+BÐ"CÐô	r3   r  r5   rb   )rº   r   Úitemsr"   r5   rn   r   rS   )Ú
test_casesrþ   r  r	  r  ÚKlassrn   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.fitR  r†   r3   N)rT   rU   rV   r   r  Ú-_InvalidRequestRemoval__metadata_request__fitr5   rP   r3   r1   ÚInvalidRequestRemovalr  M  s   „ ð $*Ð+;×+BÑ+BÐ"CÐó	r3   r  zTrying to remove parameterr©   N)r   rj   rk   rÈ   rS   )r  s    r1   Ú'test_removing_non_existing_param_raisesr  I  s;   € ô¤ô ô 
�‰”zÐ)EÖ	FÙÓ×4Ñ4Ô6÷ 
G×	FÑ	Fú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]   FTr`   )Úreturn_alias)r   rj   rk   rÈ   ri   rn   Ú_get_param_names)Úmmrs    r1   Útest_method_metadata_requestr   Y  s9  € ä
 f°UÔ
;€Cä	�‰”zÐ)GÖ	HØ�‰˜e¨3ˆÔ/÷ 
Ið ‡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Ò=Ð=Ñ=÷ 
IÐ	Hú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dd„Zy)ú-test_get_routing_for_object.<locals>.Consumerrù   Nc                 ó   — | S r.   rP   r…   s      r1   r5   z1test_get_routing_for_object.<locals>.Consumer.fits  r†   r3   r.   )rT   rU   rV   Ú _Consumer__metadata_request__fitr5   rP   r3   r1   ÚConsumerr#  p  s   „ Ø#)¨4 .Ðô	r3   r&  r[   rJ   r\   r`   r]   r5   rb   rù   )r   r   r"   Úobjectr   r5   ri   rn   )r&  ÚmrÚ
mr_factorys      r1   Útest_get_routing_for_objectr*  n  s¯   € ô”=ô ô Ô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]   r`   N)r   Úconsumesr»   r5   ri   )Úrequests    r1   Ú%test_metadata_request_consumes_methodr/  „  s¸   € ô  FÔ+€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Ã   rf   rƒ   rÇ   r5   r,  N)r   r
   rË   rS   r-  )ÚcasesÚobjÚinputÚoutputs       r1   Ú$test_metadata_router_consumes_methodr5  “  s¬   € ô "Ü,Ó.×>Ñ>ÈTÐ>ÓRôð ÐØÐð	
ô "Ü,Ó.×>Ñ>Ø".ð ?ó ôð
 ˜?Ð+ØˆNð	
ð€Eó& $ÑˆˆU�FØ×'Ñ'Ó)×2Ñ2¸%ÈÐ2ÓNÐRXÓXÐXÐXñ $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)rT   rU   rV   r   ÚWARNÚ1_WeightedMetaRegressorWarn__metadata_request__fitrP   r3   r1   ÚWeightedMetaRegressorWarnr8  ±  ó   „ Ø#2Ð4D×4IÑ4IÐ"JÑr3   r;  ú2Support for .* has recently been added to .* classr©   FrÃ   rf   )
r   rj   ÚwarnsÚUserWarningr   rË   r5   r>   r?   rÇ   )r;  s    r1   Útest_metaestimator_warningsr@  ¯  sc   € ôKÔ$9ô Kô 
�‰ÜÐOö
ñ 	"Ü&Ó(×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)rT   rU   rV   r   r9  Ú._ConsumingRegressorWarn__metadata_request__fitrP   r3   r1   ÚConsumingRegressorWarnrC  ¾  r<  r3   rE  r=  r©   rf   rÃ   )	r
   rj   r>  r?  r   r5   r>   r?   rÇ   )rE  s    r1   Útest_estimator_warningsrF  ¼  sZ   € ôKÔ!3ô Kô 
�‰ÜÐOö
ô 	Ñ 6Ó 8Ô9×=Ñ=ÜŒq¤
ð 	>ô 	
÷
÷ 
ñ 
ús   «0A$Á$A-zobj, stringr[   r5   r  r\   r`   r]   z{'foo': 'bar'}rJ   z{}rG   rM   rh   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)r2  Ústrings     r1   Útest_string_representationsrJ  É  s   € ô> ˆs‹8�vÒÐÑr3   z%obj, method, inputs, err_cls, err_msgrQ   ÚinvalidzGiven calleezGiven callerrm   r2  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   )rj   rk   Úgetattr)r2  r¶   ÚinputsÚerr_clsÚerr_msgs        r1   Útest_validationsrQ  ë  s3   € ô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   re   z([{'caller': 'score', 'callee': 'score'}])r    rQ   Úlistr   r   Ú_routesrŒ   Úrepr)ÚmmÚmm_listr¶   s      r1   Útest_methodmappingrX    sÚ   € ô 	‹ß	‰�E +ˆÓ	.ß	‰�E %ˆÓ	(ð ô �2‹h€GØ�1‰:Ð-Ò-Ð-Ð-Ø�1‰:˜Ò'Ð'Ð'ä	‹€BßˆØ
�‰�f VˆÔ,Ü˜& &Ó)¨R¯Z©ZÒ7Ð7Ð7ð ô ˆ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Ã   )r2  Únested_weightsrf   )r   r5   ri   r   rm   rH  Ú_self_requestr
   rË   rS   r   r¦   )r.  rR   rô   s      r1   Ú$test_metadatarouter_add_self_requestr]  (  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}}}}re   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   rQ   r
   rË   r    rH  rò   ©rR   s    r1   Útest_metadata_routing_addra  F  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   rf   Ú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Š   rc  rd  >   rŠ   rƒ   rd  rŠ   )
r   rm   r   r
   rË   rQ   r   r    rH  r  r`  s    r1   Ú%test_metadata_routing_get_param_namesrf  e  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   r…   s      r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fitš  r—   r3   c                  ó   — y r.   rP   r…   s      r1   Úfit_transformz=test_method_generation.<locals>.SimpleEstimator.fit_transform�  r—   r3   c                  ó   — y r.   rP   r…   s      r1   Úfit_predictz;test_method_generation.<locals>.SimpleEstimator.fit_predict   r—   r3   c                  ó   — y r.   rP   r…   s      r1   Úpartial_fitz;test_method_generation.<locals>.SimpleEstimator.partial_fit£  r—   r3   c                  ó   — y r.   rP   rí   s     r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predict¦  r—   r3   c                  ó   — y r.   rP   rí   s     r1   Úpredict_probaz=test_method_generation.<locals>.SimpleEstimator.predict_proba©  r—   r3   c                  ó   — y r.   rP   rí   s     r1   Úpredict_log_probazAtest_method_generation.<locals>.SimpleEstimator.predict_log_proba¬  r—   r3   c                  ó   — y r.   rP   rí   s     r1   Údecision_functionzAtest_method_generation.<locals>.SimpleEstimator.decision_function¯  r—   r3   c                  ó   — y r.   rP   r…   s      r1   re   z5test_method_generation.<locals>.SimpleEstimator.score²  r—   r3   Nc                  ó   — y r.   rP   r…   s      r1   r–   z5test_method_generation.<locals>.SimpleEstimator.splitµ  r—   r3   c                  ó   — y r.   rP   rí   s     r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transform¸  r—   r3   c                  ó   — y r.   rP   rí   s     r1   Úinverse_transformzAtest_method_generation.<locals>.SimpleEstimator.inverse_transform»  r—   r3   r.   ©rT   rU   rV   r5   rl  rn  rp  rG   rs  ru  rw  re   r–   r<   r|  rP   r3   r1   ÚSimpleEstimatorri  ˜  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)ri  Nc                  ó   — y r.   rP   ©r0   r>   r?   rƒ   s       r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fitÃ  r—   r3   c                  ó   — y r.   rP   rƒ  s       r1   rl  z=test_method_generation.<locals>.SimpleEstimator.fit_transformÆ  r—   r3   c                  ó   — y r.   rP   rƒ  s       r1   rn  z;test_method_generation.<locals>.SimpleEstimator.fit_predictÉ  r—   r3   c                  ó   — y r.   rP   rƒ  s       r1   rp  z;test_method_generation.<locals>.SimpleEstimator.partial_fitÌ  r—   r3   c                  ó   — y r.   rP   ©r0   r>   rƒ   s      r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predictÏ  r—   r3   c                  ó   — y r.   rP   rˆ  s      r1   rs  z=test_method_generation.<locals>.SimpleEstimator.predict_probaÒ  r—   r3   c                  ó   — y r.   rP   rˆ  s      r1   ru  zAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaÕ  r—   r3   c                  ó   — y r.   rP   rˆ  s      r1   rw  zAtest_method_generation.<locals>.SimpleEstimator.decision_functionØ  r—   r3   c                  ó   — y r.   rP   rƒ  s       r1   re   z5test_method_generation.<locals>.SimpleEstimator.scoreÛ  r—   r3   c                  ó   — y r.   rP   rƒ  s       r1   r–   z5test_method_generation.<locals>.SimpleEstimator.splitÞ  r—   r3   c                  ó   — y r.   rP   rˆ  s      r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transformá  r—   r3   c                  ó   — y r.   rP   rˆ  s      r1   r|  zAtest_method_generation.<locals>.SimpleEstimator.inverse_transformä  r—   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 ˆÜ™?Ó,°°V°H¸HÐ.EÕFÐFÐFð ô$œ-ô $÷N $ˆÜ™?Ó,°°V°H¸HÐ.EÕFÐFÐFð $÷ !ˆÜ‘Ó(¨D°°¸Ð*AÕBÐBÐBñ !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\   r`   s        r1   r5   z3test_composite_methods.<locals>.SimpleEstimator.fitø  r—   r3   c                  ó   — y r.   rP   )r0   r>   r\   r`   s       r1   rG   z7test_composite_methods.<locals>.SimpleEstimator.predictû  r—   r3   c                  ó   — y r.   rP   )r0   r>   râ   s      r1   r<   z9test_composite_methods.<locals>.SimpleEstimator.transformþ  r—   r3   r�  r.   )rT   rU   rV   r5   rG   r<   rP   r3   r1   r~  r•  ö  s   „ ó	ó	ô	r3   r~  )r`   r\   râ   )r`   r\   Tr[   )r\   r`   z!Conflicting metadata requests forr©   )r`   rá   )r   rS   rl  rn   rn  rË   rj   rk   rÈ   r×   rÖ   )r~  rô   s     r1   Útest_composite_methodsr™  ð  su  € ô	œ-ô 	ñ Ó
€Cð ×#Ñ#Ó%×3Ñ3×<Ñ<ØØØñAò ð ð ð
 ×#Ñ#Ó%×1Ñ1×:Ñ:ÀdÐSWÑ>XÒXÐXÐXð ×Ñ˜D fÐÔ-Ü	�‰”zÐ)LÖ	MØ× Ñ Ó"×.Ò.÷ 
Nð
 ×Ñ ÐÔ%Ü	�‰”zÐ)LÖ	MØ× Ñ Ó"×.Ò.÷ 
Nð
 ×Ñ ¨&ÐÔ1Ø×ÑÓ×*Ò*ð ×Ñ¨$ÐÔ/Ø×#Ñ#Ó%×3Ñ3×<Ñ<ØØØñAò ð ñ ÷# 
NÐ	Mú÷ 
NÐ	Mú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.FrX   zThis method is only availabler©   TrÃ   N)r   rj   rk   ÚRuntimeErrorr	   rË   rP   r3   r1   Ú!test_no_feature_flag_raises_errorrœ  %  sM   € ô 
°Ö	6Ü�]‰]œ<Ð/NÖOÜÓ!×1Ñ1ÀÐ1ÔE÷ P÷ 
7Ð	6ßOÐOú÷ 
7Ð	6ú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 raiserf   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.fit<  r†   r3   r.   r  rP   r3   r1   Ú	Estimatorr¡  ;  ó   „ ô	r3   r£  rf   z3Estimator has not implemented metadata routing yet.r©   ©rŠ   N)
r!   r   r   r5   r>   r?   rj   rk   ÚNotImplementedErrorr®   )r£  s    r1   Útest_no_metadata_always_worksr§  3  sj   € ôÔ-¬}ô ô
 ™I›KÔ(×,Ñ,¬Q´Ô2ä	�‰ÜÐ#Xö
ô 	¡	£Ô,×0Ñ0´´AÄ	Ð0ÔJ÷
÷ 
ñ 
ú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.rf   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Ê   rj   rk   r   r5   r>   r?   )Úweighted_metaÚpipeÚmsgs      r1   Ú%test_unsetmetadatapassederror_correctr­  H  s`   € ô +Ô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Ê   rj   rk   r   rl  r>   r?   )r¯  r«  r¬  s      r1   Ú;test_unsetmetadatapassederror_correct_for_composite_methodsr°  Y  sf   € ô 1Ó2ÐÜÐ-Ð/DÐEÐFÓG€Dä
�)‰)ð	9ó€Cô 
�‰Ô/°sÖ	;Ø×Ñœ1œa¨&ÐÔ1÷ 
<×	;Ñ	;ú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.fitw  r†   r3   r.   r  rP   r3   r1   ÚAr³  v  r¤  r3   rµ  z>set_fit_request() takes 0 positional argument but 1 were givenr©   TNrÃ   )r   rÉ   rÊ   rj   rk   r­   rË   )rµ  Úerror_messages     r1   Útest_unbound_set_methods_workr·  l  s¥   € ôŒMô ô —I‘IØHó€Mô
 
�‰”y¨Ö	6Ù	‹×Ñ˜DÔ!÷ 
7ð ×)Ñ)€AÔñ ƒC×Ñ dÐÔ+ô 
�‰”y¨Ö	6Ù	‹×Ñ˜DÔ!÷ 
7Ð	6÷ 
7Ð	6ú÷ 
7Ð	6ús   Á CÂ"CÃCÃC)hrW   rÉ   ÚnumpyÚnprj   Ú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,   ro   ÚmarkÚparametrizerr   r{   r   r�   r§   r¯   rµ   rÁ   rÏ   rÝ   rß   rä   rõ   r  r  r   r*  r/  r5  r@  rF  ri   rQ   rJ  rÈ   r­   rQ  rX  r]  ra  rf  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ðó	ñ ¨Ô-ñ+ó .ó	ð+ð ‡�×ÑØòóñ ¨Ô-ñ(ó .óð(ð
 ‡�×ÑØòóñ ¨Ô-ñ(ó .óð(ñ
 ¨Ô-ñ)ó .ð)ñB ¨Ô-ñó .ðñ@ ¨Ô-ñSó .ðSñ
 ¨Ô-ñBó .ðBð ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜ T¨9°bÐ$9Ó:Ù¨Ô-ñ:ó .ó ;ó ,ð:ñ ¨Ô-ñ5ó .ð5ñp ¨Ô-ñ-ó .ð-ñ` ¨Ô-ñSó .ðSñ: ¨Ô-ñ=ó .ð=ñ, ¨Ô-ñ@?ó .ð@?ñF ¨Ô-ñ+ ó .ð+ ñ\ ¨Ô-ñ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   