§
    rŠtj¤¶  ã                   ób  — 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j1         2                    d¦  «        Z3d\  Z4Z5e3 6                    e4e5¦  «        Z7e3 8                    dde4¬¦  «        Z9e3 8                    dde4¬¦  «        Z:e3 6                    e4¦  «        Z;e3 6                    e4¦  «        Z< G d„ de¦  «        Z= ed¬¦  «        d„ ¦   «         Z>ej?         @                    d e e¦   «         ¬¦  «         e e¦   «         ¬¦  «         e e¦   «         ¬¦  «         e e¦   «          e¦   «         ¬¦  «         e e¦   «          e¦   «         ¬¦  «        g¦  «         ed¬¦  «        d„ ¦   «         ¦   «         ZAej?         @                    dg d¢¦  «         ed¬¦  «        d„ ¦   «         ¦   «         ZBe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?         @                    d$e!¦  «        e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-„ ¦   «         ZOd.„ ZP ed¬¦  «        d/„ ¦   «         ZQ ed¬¦  «        d0„ ¦   «         ZR ed¬¦  «        d1„ ¦   «         ZS ed¬¦  «        d2„ ¦   «         ZT ed¬¦  «        d3„ ¦   «         ZU ed¬¦  «        d4„ ¦   «         ZV ed¬¦  «        ej?         @                    d5 e#d6d7¬8¦  «         W                    d9d:¬;¦  «        d<f e)d6¬=¦  «        d>f e*d6¬=¦  «         X                     e¦   «          e+¦   «          X                    d?d?¬@¦  «        ¬A¦  «        dBfg¦  «         ed¬¦  «        dC„ ¦   «         ¦   «         ¦   «         ZYej?         @                    dD e+¦   «         dEd7dFd@œeZdGf e+¦   «         dEdFd7d@œeZdHf e*d6¬=¦  «        dIdJ e*d6¬=¦  «        ieZdKf e¦   «         dLdFdie[dMfg¦  «         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„ ¦   «         Zg ed¬¦  «        dZ„ ¦   «         Zh G d[„ d\¦  «        Zid]„ Zjd^„ Zkd_„ Zl ed¬¦  «        d`„ ¦   «         Zm ed¬¦  «        da„ ¦   «         Zn ed¬¦  «        db„ ¦   «         Zo ed¬¦  «        dc„ ¦   «         ZpdS )dz 
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dS )Ú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                 ó   — || _         d S ©N)Ústeps)Úselfr/   s     úa/var/www/html/CA-Chatbot/venv/lib/python3.11/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 |                     d|› �¦  «        j        ¤Ž}| j                              |¦  «          |j        |fi |                     d|› �¦  «        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¨C¤Ñ1Ô1ð 	ð 	‰GˆAˆtØ)�% ™+œ+œ/Ø˜qðð Ø$*§J¢J¨{°q¨{¨{Ñ$;Ô$;Ô$?ðð ˆKð ŒK×Ò˜{Ñ+Ô+Ð+Ø1˜KÔ1Øðð Ø!'§¢¨K°A¨K¨KÑ!8Ô!8Ô!Bðð ˆMˆMð 	Œ×ÒØ%�E�$”*˜R”.Ñ!Ô!Ô% m°QÐOÐO¸&Ô:JÔ:NÐOÐOñ	
ô 	
ð 	
ð ˆr3   c           	      ó  — t          | ¦  «         |}t          | dfi |¤Ž}t          | j        d d…         ¦  «        D ].\  }} |j        |fi |                     d|› �¦  «        j        ¤Ž}Œ/ | 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ÐC°NÐCÐCˆÝ  ¤¨S¨b¨SÔ!1Ñ2Ô2ð 	Sð 	S‰GˆAˆtØ*˜DœN¨1ÐRÐR°·
²
¸;À1¸;¸;Ñ0GÔ0GÔ0QÐRÐRˆMˆMà&ˆtŒ{˜2ŒÔ& }ÐQÐQ¸Ô8HÔ8PÐQÐQÐQr3   c           
      óÜ  — t          | ¬¦  «        }t          | j        d d…         ¦  «        D ]f\  }} |j        d
i d|› �|i¤dt	          ¦   «                              dd¬¦  «                             dd¬¦  «                             dd¬¦  «        i¤Ž Œg|                     | j        d         t	          ¦   «                              dd¬¦  «                             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¨C¤Ñ1Ô1ð 	ð 	‰GˆAˆtØˆFŒJð ð Ø˜1�;�; Ð%ðð å,™œß’˜E¨%�Ñ0Ô0ß’˜E¨+�Ñ6Ô6ß’˜I¨k�Ñ:Ô:ðð ð ð ð ð 	�
Š
Ø”j ”nÝ(™?œ?ßŠS˜ eˆSÑ,Ô,ßŠS˜	¨)ˆSÑ4Ô4ð	 	ñ 	
ô 	
ð 	
ð ˆr3   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   r5   rG   rS   rP   r3   r1   r,   r,   A   s]   € € € € € ðð ðð ð ðð ð ð$Rð Rð Rðð ð ð ð r3   r,   T©Úenable_metadata_routingc            	      óV  — t          d¬¦  «        } t          | ¦  «         | j                             dd ¬¦  «         t          | ¦  «         | j                             dd¬¦  «         t	          j        t          ¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          | d¬¦  «         | j                             d	d
¬¦  «         t	          j        t          ¦  «        5  t          | d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          | ddg¬¦  «         t          t          d¬¦  «         	                    t          d ¬¦  «        ¦  «                             t          ¦   «         t          ¦   «                              dd¬¦  «        ¬¦  «        ¦  «         d S )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×Ò 5°ÐÑ5Ô5Ð5å˜HÑ%Ô%Ð%à„L×Ò 5°ÐÑ8Ô8Ð8Ý	Œ•~Ñ	&Ô	&ð *ð *å Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ
 ˜H¨eÐ4Ñ4Ô4Ð4à„N×Ò X°TÐÑ:Ô:Ð:Ý	Œ•~Ñ	&Ô	&ð 9ð 9å °%Ð8Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ
 ˜H¨u°gÐ.>Ð?Ñ?Ô?Ð?õ Ý˜VÐ$Ñ$Ô$ß	Ò	Õ/¸$Ð?Ñ?Ô?Ñ	@Ô	@ß	ŠÝ(Ñ*Ô*Ý(™?œ?×.Ò.°eÀEÐ.ÑJÔJð 
ñ 

ô 

ñô ð ð ð s$   Â BÂB Â#B Ã-DÄDÄDrg   )Úregistry)rg   rp   c                 óv   — t          | ¦  «                             t          t          ¦  «        } | | j        v sJ ‚dS )z=Check that an estimator puts itself in the registry upon fit.N)r   r5   r>   r?   rp   rf   s    r1   Ú$test_estimator_puts_self_in_registryrr   Ÿ   s;   € õ �iÑ Ô ×$Ò$¥Q­Ñ*Ô*€IØ˜	Ô*Ð*Ð*Ð*Ð*Ð*Ð*r3   zval, res))FF)TF)NF)ú$UNUSED$F)ú$WARN$F©zinvalid-inputF)Ú	valid_argTc                 ó0   — t          | ¦  «        |k    sJ ‚d S r.   )r   ©ÚvalÚress     r1   Útest_request_type_is_aliasr{   °   ó#   € õ ˜CÑ Ô  CÒ'Ð'Ð'Ð'Ð'Ð'r3   ))FT)TT)NT)rs   T)rt   Tru   )Ú	alias_argFc                 ó0   — t          | ¦  «        |k    sJ ‚d S r.   )r   rx   s     r1   Útest_request_type_is_validr   Â   r|   r3   c                  ój  —  G d„ dt           ¦  «        } t           | ¦   «         ¦  «        }|j        j        ddik    sJ ‚t	          t          t          ¦   «         ¦  «        j        j        ¦  «        rJ ‚t          t          ¦   «                              ¦   «         ¦  «         t          t          ¦   «         ¦  «        }|j        j        d d dœk    sJ ‚|j	        j        d d dœk    sJ ‚t          |¦  «         t          t          ¦   «         ¦  «        }|j        j        d d dœk    sJ ‚t          |¦  «         d S )Nc                   ó   — e Zd ZddiZdd„ZdS )ú+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‚   Ö   s7   € € € € € ð ˜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�   Ô   so  € ðð ð ð ð •}ñ ô ð õ )¨¨©¬Ñ8Ô8€KØŒ?Ô#¨¸Ð'>Ò>Ð>Ð>Ð>õ Õ)Õ*@Ñ*BÔ*BÑCÔCÔGÔPÑQÔQÐQÐQÐQÝÕ2Ñ4Ô4×IÒIÑKÔKÑLÔLÐLå(Õ)=Ñ)?Ô)?Ñ@Ô@€KØŒ?Ô#ØØð(ð (ò ð ð ð ð Ô Ô)¸$ÐQUÐ-VÐ-VÒVÐVÐVÐVÝ˜KÑ(Ô(Ð(å(Õ)<Ñ)>Ô)>Ñ?Ô?€KØŒ?Ô#ØØð(ð (ò ð ð ð õ ˜KÑ(Ô(Ð(Ð(Ð(r3   c                  ó  —  G d„ dt           ¦  «        }  G d„ d| ¦  «        } G d„ d| ¦  «        }t           |¦   «                              ¦   «         ddd	ii¦  «         t           |¦   «                              ¦   «         ddd	ii¦  «         d
S )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dS )ú+test_default_request_override.<locals>.BaseÚgroupsTNc                 ó   — d S r.   rP   r…   s      r1   Úsplitz1test_default_request_override.<locals>.Base.split   ó   € ØˆDr3   r.   )rT   rU   rV   Ú_Base__metadata_request__splitr–   rP   r3   r1   ÚBaser“   ý   s3   € € € € € Ø%-¨tÐ$4Ð!ð	ð 	ð 	ð 	ð 	ð 	r3   r™   c                   ó   — e Zd ZddiZdd„ZdS )ú.test_default_request_override.<locals>.class_1r”   Úsample_domainNc                 ó   — d S 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›     ó3   € € € € € Ø%-¨Ð$?Ð!ð	ð 	ð 	ð 	ð 	ð 	r3   rŸ   c                   ó   — e Zd ZddiZdd„ZdS )ú.test_default_request_override.<locals>.Class_1r”   rœ   Nc                 ó   — d S 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§   ö   sô   € ðð ð ð ð �}ñ ô ð ðð ð ð ð �$ñ ô ð ðð ð ð ð �$ñ ô ð õ Øˆ‰	Œ	×'Ò'Ñ)Ô)¨G°hÀÐ5PÐ+Qñô ð õ Øˆ‰	Œ	×'Ò'Ñ)Ô)¨G°hÀÐ5PÐ+Qñô ð ð ð r3   c                  ó´   — t          j        t          d¬¦  «        5  t          t	          ¦   «         dt
          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz Can only route and process input©ÚmatchÚinvalid_method©r”   )rj   rk   Ú	TypeErrorr#   r	   Ú	my_groupsrP   r3   r1   Ú#test_process_routing_invalid_methodr¯     s­   € å	Œ•yÐ(JÐ	KÑ	KÔ	Kð Sð SÝÕ+Ñ-Ô-Ð/?Í	ÐRÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð Sð Ss   œ$AÁAÁAc                  óÆ   —  G d„ d¦  «        } t          j        t          d¬¦  «        5  t           | ¦   «         dt          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó   — e Zd ZdS )ú:test_process_routing_invalid_object.<locals>.InvalidObjectN)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µ     sÕ   € ðð ð ð ð ñ ô ð õ 
Œ•~Ð-RÐ	SÑ	SÔ	Sð Bð BÝ˜˜™œ¨µyÐAÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   © AÁAÁAÚmethodÚdefaultc                 ó,  — i }t          t          ¦   «         dfi |¤Ž}||          }t          |t          ¦  «        sJ ‚t	          |                     ¦   «         ¦  «        t	          t          ¦  «        k    sJ ‚|                     | |¬¦  «        }||k    sJ ‚d S )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Ô$9¸5ÐQÐQÀLÐQÐQ€Mð & fÔ-ÐÝÐ'­Ñ.Ô.Ð.Ð.Ð.ÝÐ ×%Ò%Ñ'Ô'Ñ(Ô(­Cµ©L¬LÒ8Ð8Ð8Ð8ð !.× 1Ò 1°&À'Ð 1Ñ JÔ JÐØ$Ð(9Ò9Ð9Ð9Ð9Ð9Ð9r3   c                  óÄ  — t          t          ¦   «         ¬¦  «        } |                      t          t          ¦  «         t          t          ¦   «         ¬¦  «        } |                      t          t          t
          ¬¦  «         t          t          ¦   «         ¬¦  «        } d}t          j        t          t          j        |¦  «        ¬¦  «        5  |                      t          t          t
          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ¦   «                              d¬¦  «        ¬¦  «        } |                      t          t          t
          ¬¦  «         t          | j        dd¬¦  «         t          t          ¦   «                              d¬¦  «        ¬¦  «        } |                      t          t          t
          ¬¦  «         t          | j        ddt
          ¬	¦  «         t          t          ¦   «                              d
¬¦  «        ¬¦  «        } |                      t          t          t
          ¬¦  «         t          | j        ddt
          ¬	¦  «         d S )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  sX  € õ
 !Õ+AÑ+CÔ+CÐ
DÑ
DÔ
D€CØ‡G‚G�A�q�M„M€Mõ !Õ+AÑ+CÔ+CÐ
DÑ
DÔ
D€CØ‡G‚G�A�q¥
€GÑ+Ô+Ð+õ !Õ+>Ñ+@Ô+@Ð
AÑ
AÔ
A€Cð	5ð õ 
Œ•z­¬°;Ñ)?Ô)?Ð	@Ñ	@Ô	@ð 0ð 0Ø�Š••1¥JˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ !Ý%Ñ'Ô'×7Ò7ÀeÐ7ÑLÔLðñ ô €Cð ‡G‚G�A�q¥
€GÑ+Ô+Ð+Ý˜CœN°5ÀÐGÑGÔGÐGõ !Ý%Ñ'Ô'×7Ò7ÀdÐ7ÑKÔKðñ ô €Cð ‡G‚G�A�q¥
€GÑ+Ô+Ð+ÝØŒ˜u¨UÅ*ðñ ô ð õ
 !Ý%Ñ'Ô'×7Ò7Ø.ð 8ñ 
ô 
ðñ ô €Cð
 ‡G‚G�A�q¥Z€GÑ0Ô0Ð0ÝØŒ˜u¨UÅ*ðñ ô ð ð ð s   Ã(C?Ã?DÄDc            	      óZ  — t          t          t          ¦   «                              dd¬¦  «                             dd¬¦  «        ¬¦  «        t          t          ¦   «                              dd¬¦  «                             d¬¦  «        ¬¦  «                             d	¬¦  «        g¦  «        } d
gdgdg}}}|                      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|¬¦  «         |                      t          |¬¦  «         t          | j        d         j        dd|¬¦  «         d S )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  së  € õ åÝ0Ñ2Ô2ß ’¨$¸e�ÑDÔDß&Ò&°TÀEÐ&ÑJÔJðñ ô õ
 "Ý,Ñ.Ô.ß ’¨È�ÑOÔOß$Ò$°5Ð$Ñ9Ô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          ¦   «                              dd¬¦  «                             d¬¦  «        ¬¦  «        t          t          ¦   «                              d¬¦  «        ¬¦  «                             d¬¦  «        g¦  «        } dgd	g}}t          j        t          t          j        d
¦  «        ¬¦  «        5  |                      t          t          t          ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTFr‹   rÃ   rÑ   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ß   ¡  se  € õ åÝ0Ñ2Ô2ß ’¨$¸e�ÑDÔDß&Ò&°TÐ&Ñ:Ô:ðñ ô õ
 "Ý,Ñ.Ô.×>Ò>ÈTÐ>ÑRÔRðñ ô çŠo¨OˆoÑ<Ô<ð		
ñô €Hð ˆS�1�#ˆ€BÝ	ŒÝåŒIð9ñô ð

ñ 

ô 

ð Sð Sð 	�Š•Q�¥I¸RÈrˆÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð Sð Ss   Ã
*DÄDÄDc                  óØ  — t          t          ¦   «                              d¬¦  «        ¬¦  «        } t          j        t
          t          j        d¦  «        ¬¦  «        5  |                      t          t          ¦  «                             t          t          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ¦   «                              d¬¦  «        ¬¦  «        } t          j        t
          t          j        d¦  «        ¬¦  «        5  |                      t          t          ¦  «                             t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTrÃ   rÑ   z4transform got unexpected argument(s) {'other_param'}r©   ©Úother_paramFz6transform got unexpected argument(s) {'sample_weight'})r   r   rÖ   rj   rk   r­   rÉ   rÊ   r5   r>   r?   r<   rÇ   )Útrss    r1   Útest_invalid_metadatarä   ¿  s½  € õ Ý(Ñ*Ô*×@Ò@ÈtÐ@ÑTÔTðñ ô €Cõ 
ŒÝÝŒyÐOÑPÔPð
ñ 
ô 
ð ;ð ;ð 	�Š••1‰Œ×Ò¥­zÐÑ:Ô:Ð:ð	;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ Ý(Ñ*Ô*×@Ò@ÈuÐ@ÑUÔUðñ ô €Cõ 
ŒÝÝŒyÐQÑRÔRð
ñ 
ô 
ð =ð =ð 	�Š••1‰Œ×Ò¥µÐÑ<Ô<Ð<ð	=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s&   ÁA B*Â*B.Â1B.ÄA EÅE#Å&E#c                  óÚ  —  G d„ dt           ¦  «        } dd d dœd d dœddidœ}t           | ¦   «                              ¦   «         |¦  «          | ¦   «                              d¬	¦  «        }dd d dœd d dœddidœ}t          |                     ¦   «         |¦  «          | ¦   «                              d¬
¦  «        }dd d dœd ddœddidœ}t          |                     ¦   «         |¦  «         d S )Nc                   óB   — 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dS )
ú/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                 ó   — d S r.   rP   r…   s      r1   re   z5test_get_metadata_routing.<locals>.TestDefaults.scoreç  r—   r3   c                 ó   — d S 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ÔIÐIà
ˆ,‰.Œ.×
*Ò
*°MÐ
*Ñ
BÔ
B€Cð &Ø"Ø!ð
ð 
ð #Ø!ð
ð 
ð  Ð%ðð €Hõ ˜×1Ò1Ñ3Ô3°XÑ>Ô>Ð>à
ˆ,‰.Œ.×
(Ò
(°tÐ
(Ñ
<Ô
<€Cð Ø"Ø!ð
ð 
ð #Ø!ð
ð 
ð  Ð%ðð €Hõ ˜×1Ò1Ñ3Ô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 | |<   |                      ¦   «         D ]u\  }}t           |¦   «         ¦  «        j        j        |k    sJ ‚t           |¦   «                              ¦   «         d¬¦  «          |¦   «                              d d ¦  «         Œvd S )Nc                   ó   — e Zd ZddiZd„ ZdS )ú6test_setting_default_requests.<locals>.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dS )ú?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   (  s4   € € € € € ð $*¨4 .Ðð	ð 	ð 	ð 	ð 	ð 	r3   r  Tc                   ó   — e Zd Zdd„ZdS )ú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                   ó(   — e Zd Zdej        iZdd„ZdS )ú=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  s9   € € € € € ð $*Ð+;Ô+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 e¡g¤gÑ.Ô.Ô2Ô;¸xÒGÐGÐGÐGÝ  ¡¤× <Ò <Ñ >Ô >ÈÐNÑNÔNÐNØˆ‰Œ�Š�D˜$ÑÔÐÐð ð  r3   c                  óÌ   —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5   | ¦   «                              ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zFTest that removing a metadata using UNUSED which doesn't exist raises.c                   ó&   — e Zd Zdej        iZd„ ZdS )úFtest_removing_non_existing_param_raises.<locals>.InvalidRequestRemovalrù   c                 ó   — | S r.   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  s4   € € € € € ð $*Ð+;Ô+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Ñ	FÔ	Fð 7ð 7ØÐÑÔ×4Ò4Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   ¯AÁAÁ Ac                  ó(  —  G d„ dt           ¦  «        } |                      d¦  «        dddœk    sJ ‚|                      ddh¬¦  «        ddik    sJ ‚dd	„}|                      d
|dh¬¦  «        ddik    sJ ‚|                      d¦  «        i k    sJ ‚dS )z¹Test `_get_class_level_metadata_request_values`, which infers metadata
    requests from callables; used for class methods in consumers and by scorers
    for custom `score_func`s.
    c                   ó   — e Zd Zdd„ZdS )ú;test_get_class_level_metadata_request_values.<locals>.DummyNc                 ó   — | S r.   rP   )r0   r>   r?   rƒ   Úextras        r1   r5   z?test_get_class_level_metadata_request_values.<locals>.Dummy.fit`  r†   r3   ©NNr  rP   r3   r1   ÚDummyr  _  ó(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	r3   r!  r5   N)rƒ   r  rƒ   )Úignore_paramsr  c                 ó   — dS )Nr   rP   )Úy_trueÚy_predrƒ   s      r1   Ú
score_funcz@test_get_class_level_metadata_request_values.<locals>.score_funco  s   € Øˆqr3   re   r&  )r¶   r#  rG   r.   )r   Ú(_get_class_level_metadata_request_values)r!  r'  s     r1   Ú,test_get_class_level_metadata_request_valuesr)  Y  s  € ðð ð ð ð •ñ ô ð ð
 ×9Ò9¸%Ñ@Ô@ØØðEð Eò ð ð ð ð ×9Ò9Ø˜oÐ.ð :ñ ô à
�4ˆòð ð ð ð
ð ð ð ð ×9Ò9Ø˜
°8°*ð :ñ ô à
˜4Ð	 ò!ð !ð !ð !ð
 ×9Ò9¸)ÑDÔDÈÒJÐJÐJÐJÐJÐJr3   c                  ó¬  — t          dd¬¦  «        } t          j        t          d¬¦  «        5  |                      dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dd ¬¦  «         | j        dd ik    sJ ‚|                      dd	¬¦  «         | j        dd	ik    sJ ‚|                      dd
¬¦  «         | j        dd
ik    sJ ‚|                      dd¬¦  «         | j        dd
ik    sJ ‚|                      dd¬¦  «         | j        ddik    sJ ‚|                      d	¬¦  «        dhk    sJ ‚|                      d
¬¦  «        dhk    sJ ‚d S )Nr[   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/  z  sÆ  € å
 f°UÐ
;Ñ
;Ô
;€Cå	Œ•zÐ)GÐ	HÑ	HÔ	Hð 0ð 0Ø�Š˜e¨3ˆÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ‡O‚O˜% t€OÑ,Ô,Ð,ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 5˜>Ò)Ð)Ð)Ð)Ø‡O‚O˜% t€OÑ,Ô,Ð,ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 4˜=Ò(Ð(Ð(Ð(Ø‡O‚O˜% u€OÑ-Ô-Ð-ØŒ<˜E 5˜>Ò)Ð)Ð)Ð)Ø×Ò¨UÐÑ3Ô3¸°wÒ>Ð>Ð>Ð>Ø×Ò¨TÐÑ2Ô2°u°gÒ=Ð=Ð=Ð=Ð=Ð=s   ­AÁAÁAc                  óì  —  G d„ dt           ¦  «        } t          t          d ¦  «        ¦  «         t          t          t          ¦   «         ¦  «        ¦  «         t	          d¬¦  «        }|j                             dd¬¦  «         t          |¦  «        }t          |d¬	¦  «         |j        j        ddik    sJ ‚t           | ¦   «         ¦  «        }t          |d¬	¦  «         |j        j        d
d ik    sJ ‚d S )Nc                   ó   — e Zd ZddiZdd„ZdS )ú-test_get_routing_for_object.<locals>.Consumerrù   Nc                 ó   — | S r.   rP   r…   s      r1   r5   z1test_get_routing_for_object.<locals>.Consumer.fit”  r†   r3   r.   )rT   rU   rV   Ú _Consumer__metadata_request__fitr5   rP   r3   r1   ÚConsumerr2  ‘  s2   € € € € € Ø#)¨4 .Ðð	ð 	ð 	ð 	ð 	ð 	r3   r5  r[   rJ   r\   r`   r]   r5   rb   rù   )r   r   r"   Úobjectr   r5   ri   rn   )r5  ÚmrÚ
mr_factorys      r1   Útest_get_routing_for_objectr9  �  s
  € ðð ð ð ð •=ñ ô ð õ Õ2°4Ñ8Ô8Ñ9Ô9Ð9ÝÕ2µ6±8´8Ñ<Ô<Ñ=Ô=Ð=å	˜vÐ	&Ñ	&Ô	&€BØ„F×Ò˜U¨%ÐÑ0Ô0Ð0Ý'¨Ñ+Ô+€JÝ˜J°Ð6Ñ6Ô6Ð6ØŒ>Ô" u¨e nÒ4Ð4Ð4Ð4å	  ¡
¤
Ñ	+Ô	+€BÝ˜B¨Ð.Ñ.Ô.Ð.ØŒ6Œ?˜v t˜nÒ,Ð,Ð,Ð,Ð,Ð,r3   c                  ó¨  — t          d¬¦  «        } |                      ddh¬¦  «        t          ¦   «         k    sJ ‚t          d¬¦  «        } | j                             dd¬¦  «         |                      ddh¬¦  «        dhk    sJ ‚t          d¬¦  «        } | j                             dd¬¦  «         |                      dddh¬¦  «        dhk    sJ ‚d	S )
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Ô9½S¹U¼UÒBÐBÐBÐBå FÐ+Ñ+Ô+€GØ„K×Ò %¨tÐÑ4Ô4Ð4Ø×Ò 5°%°ÐÑ9Ô9¸e¸WÒDÐDÐDÐDå FÐ+Ñ+Ô+€GØ„K×Ò %¨uÐÑ5Ô5Ð5Ø×Ò 5°%¸°ÐÑ@Ô@ÀUÀGÒKÐKÐKÐKÐKÐKr3   c                  óL  — t          t          ¦   «                              d¬¦  «        ¬¦  «        dhdhft          t          ¦   «                              d¬¦  «        ¬¦  «        ddhdhfg} | D ]5\  }}}|                     ¦   «                              d|¬¦  «        |k    sJ ‚Œ6dS )	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_methodrD  ´  sí   € õ "Ý,Ñ.Ô.×>Ò>ÈTÐ>ÑRÔRðñ ô ð ÐØÐð	
õ "Ý,Ñ.Ô.×>Ò>Ø".ð ?ñ ô ðñ ô ð
 ˜?Ð+ØˆNð	
ð€Eð& $ð Yð YÑˆˆU�FØ×'Ò'Ñ)Ô)×2Ò2¸%ÈÐ2ÑNÔNÐRXÒXÐXÐXÐXÐXðYð Yr3   c                  ó6  —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5   | t	          ¦   «                              d¬¦  «        ¬¦  «                             t          t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó    — e Zd Zdej        iZdS )ú>test_metaestimator_warnings.<locals>.WeightedMetaRegressorWarnrƒ   N)rT   rU   rV   r   ÚWARNÚ1_WeightedMetaRegressorWarn__metadata_request__fitrP   r3   r1   ÚWeightedMetaRegressorWarnrG  Ò  ó   € € € € € Ø#2Ð4DÔ4IÐ"JÐÐÐr3   rJ  ú2Support for .* has recently been added to .* classr©   FrÃ   rf   )
r   rj   ÚwarnsÚUserWarningr   rË   r5   r>   r?   rÇ   )rJ  s    r1   Útest_metaestimator_warningsrO  Ð  sÿ   € ðKð Kð Kð Kð KÕ$9ñ Kô Kð Kõ 
ŒÝÐOð
ñ 
ô 
ð .ð .ð 	"Ð!Ý&Ñ(Ô(×8Ò8ÀuÐ8ÑMÔMð	
ñ 	
ô 	
ç
Š#�a•¥*ˆ#Ñ
-Ô
-Ð
-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   ¯ABÂBÂBc                  ó  —  G d„ dt           ¦  «        } t          j        t          d¬¦  «        5  t	           | ¦   «         ¬¦  «                             t          t          t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó    — e Zd Zdej        iZdS )ú7test_estimator_warnings.<locals>.ConsumingRegressorWarnrƒ   N)rT   rU   rV   r   rH  Ú._ConsumingRegressorWarn__metadata_request__fitrP   r3   r1   ÚConsumingRegressorWarnrR  ß  rK  r3   rT  rL  r©   rf   rÃ   )	r
   rj   rM  rN  r   r5   r>   r?   rÇ   )rT  s    r1   Útest_estimator_warningsrU  Ý  só   € ðKð Kð Kð Kð KÕ!3ñ Kô Kð Kõ 
ŒÝÐOð
ñ 
ô 
ð 
ð 
õ 	Ð 6Ð 6Ñ 8Ô 8Ð9Ñ9Ô9×=Ò=Ý�q¥
ð 	>ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ¯>A:Á:A>Â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                 ó0   — t          | ¦  «        |k    sJ ‚d S r.   )Ústr)rA  Ústrings     r1   Útest_string_representationsrY  ê  s!   € õ> ˆs‰8Œ8�vÒÐÐÐÐÐr3   z%obj, method, inputs, err_cls, err_msgrQ   ÚinvalidzGiven calleezGiven callerrm   rA  z@Given `obj` is neither a `MetadataRequest` nor does it implementrË   zUnexpected argsc                 ó�   — t          j        ||¬¦  «        5   t          | |¦  «        di |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Nr©   rP   )rj   rk   Úgetattr)rA  r¶   ÚinputsÚerr_clsÚerr_msgs        r1   Útest_validationsr`    sž   € õF 
Œ�w gÐ	.Ñ	.Ô	.ð 'ð 'Ø���VÑÔÐ&Ð&˜vÐ&Ð&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   —;»?Á?c                  ó$  — t          ¦   «                              dd¬¦  «                             dd¬¦  «        } t          | ¦  «        }|d         dk    sJ ‚|d         dk    sJ ‚t          ¦   «         } t          D ]2}|                      ||¬¦  «         t	          ||¦  «        | j        v sJ ‚Œ3t          | j        ¦  «        t          t          ¦  «        k    sJ ‚t          ¦   «                              dd¬¦  «        } t          | ¦  «        d	k    sJ ‚d S )
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_methodmappingrg  3  s  € õ 	‰Œß	Š�E +ˆÑ	.Ô	.ß	Š�E %ˆÑ	(Ô	(ð õ �2‰hŒh€GØ�1Œ:Ð-Ò-Ð-Ð-Ð-Ø�1Œ:˜Ò'Ð'Ð'Ð'å	‰Œ€BÝð 8ð 8ˆØ
�Š�f VˆÑ,Ô,Ð,Ý˜& &Ñ)Ô)¨R¬ZÐ7Ð7Ð7Ð7Ð7ÝˆrŒz‰?Œ?�c¥'™lœlÒ*Ð*Ð*Ð*å	‰Œ×	Ò	 G°GÐ	Ñ	<Ô	<€BÝ�‰8Œ8ÐAÒAÐAÐAÐAÐAÐAr3   c                  ó  — t          d¬¦  «        } | j                             dd¬¦  «         t          d¬¦  «                             | ¦  «        }t          |j        ¦  «        t          | ¦  «        k    sJ ‚|j        | usJ ‚t          ¦   «                              d¬¦  «        }t          d¬¦  «                             |¬	¦  «        }t          |j        ¦  «        t          | 	                    ¦   «         ¦  «        k    sJ ‚|j        | 	                    ¦   «         usJ ‚t          t          ¦   «                              d
¬¦  «        ¬¦  «        }t          d¬¦  «                             |¬	¦  «        }t          |j        ¦  «        t          |                     ¦   «         ¦  «        k    sJ ‚t          |j        ¦  «        t          | 	                    ¦   «         ¦  «        k    sJ ‚|j        |                     ¦   «         usJ ‚d S )NÚnestedrJ   r^   Tr]   r[   rÇ   rÃ   )rA  Únested_weightsrf   )r   r5   ri   r   rm   rW  Ú_self_requestr
   rË   rS   r   r¦   )r=  rR   rô   s      r1   Ú$test_metadatarouter_add_self_requestrl  I  sî  € õ  HÐ-Ñ-Ô-€GØ„K×Ò '°ÐÑ6Ô6Ð6Ý &Ð)Ñ)Ô)×:Ò:¸7ÑCÔC€FÝˆvÔ#Ñ$Ô$­¨G©¬Ò4Ð4Ð4Ð4àÔ wÐ.Ð.Ð.Ð.õ Ñ
Ô
×
.Ò
.¸\Ð
.Ñ
JÔ
J€CÝ &Ð)Ñ)Ô)×:Ò:¸sÐ:ÑCÔC€FÝˆvÔ#Ñ$Ô$­¨C×,DÒ,DÑ,FÔ,FÑ(GÔ(GÒGÐGÐGÐGØÔ s×'?Ò'?Ñ'AÔ'AÐAÐAÐAÐAõ  Ý$Ñ&Ô&×6Ò6ÐEUÐ6ÑVÔVðñ ô €Cõ  &Ð)Ñ)Ô)×:Ò:¸sÐ:ÑCÔC€FåˆvÔ#Ñ$Ô$­¨C×,EÒ,EÑ,GÔ,GÑ(HÔ(HÒHÐHÐHÐHõ ˆvÔ#Ñ$Ô$­¨C×,DÒ,DÑ,FÔ,FÑ(GÔ(GÒGÐGÐGÐGàÔ s×'@Ò'@Ñ'BÔ'BÐBÐBÐBÐBÐBÐBr3   c                  óò  — t          d¬¦  «                             t          ¦   «                              d¬¦  «        t	          ¦   «                              dd¬¦  «        ¬¦  «        } t          | ¦  «        dk    sJ ‚t          d¬¦  «                             t	          ¦   «                              dd	¬¦  «        t          ¦   «                              d
¬¦  «        ¬¦  «        } t          | ¦  «        dk    sJ ‚d S )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    rW  rò   ©rR   s    r1   Útest_metadata_routing_addrq  g  s
  € õ  &Ð)Ñ)Ô)×-Ò-ÝÑ Ô ×0Ò0¸yÐ0ÑIÔIÝ$‘”×*Ò*°%ÀÐ*ÑFÔFð .ñ ô €Fõ
 	ˆF‰Œðò	ð 	ð 	ð 	õ  &Ð)Ñ)Ô)×-Ò-Ý$‘”×*Ò*°%ÀÐ*ÑHÔHÝÑ Ô ×2Ò2ÀÐ2ÑFÔFð .ñ ô €Fõ
 	ˆF‰Œðò	ð 	ð 	ð 	ð 	ð 	r3   c                  ó¦  — t          d¬¦  «                             t          t          ¦   «         ¬¦  «                             d¬¦  «        ¦  «                             t          ¦   «                              d¬¦  «        t          ¦   «                              dd¬¦  «        ¬	¦  «        } t          | ¦  «        d
k    sJ ‚|  	                    ddd¬¦  «        h d£k    sJ ‚|  	                    ddd¬¦  «        h d£k    sJ ‚|  	                    ddd¬¦  «        ddhk    sJ ‚|  	                    ddd¬¦  «        |  	                    ddd¬¦  «        k    sJ ‚d S )Nr[   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Š   rs  rt  >   rŠ   rƒ   rt  rŠ   )
r   rm   r   r
   rË   rQ   r   r    rW  r-  rp  s    r1   Ú%test_metadata_routing_get_param_namesrv  †  sé  € õ 	˜VÐ$Ñ$Ô$ß	Ò	Ý!Õ,>Ñ,@Ô,@ÐAÑAÔA×QÒQØ,ð Rñ ô ñ

ô 

÷
 
ŠÝ$Ñ&Ô&×6Ò6Ø1ð 7ñ ô õ )™?œ?×.Ò.°eÀEÐ.ÑJÔJð	 
ñ 

ô 

ð õ  	ˆF‰ŒðMò	Mð 	Mð 	Mð 	Mð ×"Ò"Ø 4¸Uð #ñ ô à	:Ð	:Ð	:ò;ð ;ð ;ð ;ð ×"Ò"Ø 5¸eð #ñ ô à	;Ð	;Ð	;ò<ð <ð <ð <ð ×"Ò"Ø 5¸dð #ñ ô à
Ð)Ð	*ò+ð +ð +ð +ð ×"Ò"Ø 4¸Tð #ñ ô à	×	 Ò	 Ø 5¸dð 
!ñ 
ô 
òð ð ð ð ð r3   c                  óB  —  G d„ dt           ¦  «        } t          D ] }t           | ¦   «         d|› d�¦  «        rJ ‚Œ! G d„ dt           ¦  «        } t          D ] }t           | ¦   «         d|› d�¦  «        rJ ‚Œ!t          D ] }t           | ¦   «         d|› d�¦  «        sJ ‚Œ!d S )Nc                   óX   — 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d
S )ú/test_method_generation.<locals>.SimpleEstimatorc                 ó   — d S r.   rP   r…   s      r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fit»  r—   r3   c                 ó   — d S r.   rP   r…   s      r1   Úfit_transformz=test_method_generation.<locals>.SimpleEstimator.fit_transform¾  r—   r3   c                 ó   — d S r.   rP   r…   s      r1   Úfit_predictz;test_method_generation.<locals>.SimpleEstimator.fit_predictÁ  r—   r3   c                 ó   — d S r.   rP   r…   s      r1   Úpartial_fitz;test_method_generation.<locals>.SimpleEstimator.partial_fitÄ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predictÇ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   Úpredict_probaz=test_method_generation.<locals>.SimpleEstimator.predict_probaÊ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   Úpredict_log_probazAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaÍ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   Údecision_functionzAtest_method_generation.<locals>.SimpleEstimator.decision_functionÐ  r—   r3   c                 ó   — d S r.   rP   r…   s      r1   re   z5test_method_generation.<locals>.SimpleEstimator.scoreÓ  r—   r3   Nc                 ó   — d S r.   rP   r…   s      r1   r–   z5test_method_generation.<locals>.SimpleEstimator.splitÖ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transformÙ  r—   r3   c                 ó   — d S r.   rP   rí   s     r1   Úinverse_transformzAtest_method_generation.<locals>.SimpleEstimator.inverse_transformÜ  r—   r3   r.   ©rT   rU   rV   r5   r|  r~  r€  rG   rƒ  r…  r‡  re   r–   r<   rŒ  rP   r3   r1   ÚSimpleEstimatorry  ¹  sÍ   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r3   rŽ  Úset_Ú_requestc                   ón   — 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dS )ry  Nc                 ó   — d S r.   rP   ©r0   r>   r?   rƒ   s       r1   r5   z3test_method_generation.<locals>.SimpleEstimator.fitä  r—   r3   c                 ó   — d S r.   rP   r“  s       r1   r|  z=test_method_generation.<locals>.SimpleEstimator.fit_transformç  r—   r3   c                 ó   — d S r.   rP   r“  s       r1   r~  z;test_method_generation.<locals>.SimpleEstimator.fit_predictê  r—   r3   c                 ó   — d S r.   rP   r“  s       r1   r€  z;test_method_generation.<locals>.SimpleEstimator.partial_fití  r—   r3   c                 ó   — d S r.   rP   ©r0   r>   rƒ   s      r1   rG   z7test_method_generation.<locals>.SimpleEstimator.predictð  r—   r3   c                 ó   — d S r.   rP   r˜  s      r1   rƒ  z=test_method_generation.<locals>.SimpleEstimator.predict_probaó  r—   r3   c                 ó   — d S r.   rP   r˜  s      r1   r…  zAtest_method_generation.<locals>.SimpleEstimator.predict_log_probaö  r—   r3   c                 ó   — d S r.   rP   r˜  s      r1   r‡  zAtest_method_generation.<locals>.SimpleEstimator.decision_functionù  r—   r3   c                 ó   — d S r.   rP   r“  s       r1   re   z5test_method_generation.<locals>.SimpleEstimator.scoreü  r—   r3   c                 ó   — d S r.   rP   r“  s       r1   r–   z5test_method_generation.<locals>.SimpleEstimator.splitÿ  r—   r3   c                 ó   — d S r.   rP   r˜  s      r1   r<   z9test_method_generation.<locals>.SimpleEstimator.transform  r—   r3   c                 ó   — d S r.   rP   r˜  s      r1   rŒ  zAtest_method_generation.<locals>.SimpleEstimator.inverse_transform  r—   r3   r.   r   r�  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ð GˆÝ˜?˜?Ñ,Ô,Ð.E°VÐ.EÐ.EÐ.EÑFÔFÐFÐFÐFÐFð$ð $ð $ð $ð $�-ñ $ô $ð $õN $ð Gð GˆÝ˜?˜?Ñ,Ô,Ð.E°VÐ.EÐ.EÐ.EÑFÔFÐFÐFÐFÐFõ !ð Cð CˆÝ��Ñ(Ô(Ð*A°Ð*AÐ*AÐ*AÑBÔBÐBÐBÐBÐBðCð Cr3   c                  óD  —  G d„ dt           ¦  «        }  | ¦   «         }|                     ¦   «         j        j        d d d dœk    sJ ‚|                     ¦   «         j        j        d d dœk    sJ ‚|                     dd¬¦  «         t          j        t          d¬	¦  «        5  |                     ¦   «         j         d d d ¦  «         n# 1 swxY w Y   | 	                    d¬
¦  «         t          j        t          d¬	¦  «        5  |                     ¦   «         j         d d d ¦  «         n# 1 swxY w Y   | 	                    dd¬¦  «         |                     ¦   «         j         | 
                    d¬¦  «         |                     ¦   «         j        j        ddddœk    sJ ‚d S )Nc                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ú/test_composite_methods.<locals>.SimpleEstimatorNc                 ó   — d S r.   rP   )r0   r>   r?   r\   r`   s        r1   r5   z3test_composite_methods.<locals>.SimpleEstimator.fit  r—   r3   c                 ó   — d S r.   rP   )r0   r>   r\   r`   s       r1   rG   z7test_composite_methods.<locals>.SimpleEstimator.predict  r—   r3   c                 ó   — d S 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¤    sP   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r3   rŽ  )r`   r\   râ   )r`   r\   Tr[   )r\   r`   z!Conflicting metadata requests forr©   )r`   rá   )r   rS   r|  rn   r~  rË   rj   rk   rÈ   r×   rÖ   )rŽ  rô   s     r1   Útest_composite_methodsr¨    sn  € ð	ð 	ð 	ð 	ð 	�-ñ 	ô 	ð 	ð ˆ/Ñ
Ô
€Cð ×#Ò#Ñ%Ô%Ô3Ô<ØØØðAð Aò ð ð ð ð
 ×#Ò#Ñ%Ô%Ô1Ô:ÀdÐSWÐ>XÐ>XÒXÐXÐXÐXð ×Ò˜D fÐÑ-Ô-Ð-Ý	Œ•zÐ)LÐ	MÑ	MÔ	Mð /ð /Ø× Ò Ñ"Ô"Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð
 ×Ò ÐÑ%Ô%Ð%Ý	Œ•zÐ)LÐ	MÑ	MÔ	Mð /ð /Ø× Ò Ñ"Ô"Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð
 ×Ò ¨&ÐÑ1Ô1Ð1Ø×ÒÑÔÔ*Ð*ð ×Ò¨$ÐÑ/Ô/Ð/Ø×#Ò#Ñ%Ô%Ô3Ô<ØØØðAð Aò ð ð ð ð ð s$   ÂCÃC	ÃC	ÄD'Ä'D+Ä.D+c                  ó  — t          d¬¦  «        5  t          j        t          d¬¦  «        5  t	          ¦   «                              d¬¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zCTest that when feature flag disabled, set_{method}_requests raises.FrX   zThis method is only availabler©   TrÃ   N)r   rj   rk   ÚRuntimeErrorr	   rË   rP   r3   r1   Ú!test_no_feature_flag_raises_errorr«  F  s&  € õ 
°Ð	6Ñ	6Ô	6ð Fð FÝŒ]�<Ð/NÐOÑOÔOð 	Fð 	FÝÑ!Ô!×1Ò1ÀÐ1ÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	FðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs4   ‘A4­#AÁA4ÁA 	Á A4Á#A 	Á$A4Á4A8Á;A8c                  ó~   — t          t          ¦   «         ¬¦  «                             t          t          d¬¦  «         dS )zCTest that passing None as metadata when not requested doesn't raiserf   NrÃ   )r   r
   r5   r>   r?   rP   r3   r1   Útest_none_metadata_passedr­  N  s7   € õ Õ.Ñ0Ô0Ð1Ñ1Ô1×5Ò5µa½È$Ð5ÑOÔOÐOÐOÐOr3   c                  ó†  —  G d„ dt           t          ¦  «        } t           | ¦   «         ¬¦  «                             t          t
          ¦  «         t          j        t          d¬¦  «        5  t           | ¦   «         ¬¦  «                             t          t
          t          ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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dS )ú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°  \  r"  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µ  T  s  € ðð ð ð ð Õ-­}ñ ô ð õ
 ˜I˜I™KœKÐ(Ñ(Ô(×,Ò,­QµÑ2Ô2Ð2å	ŒÝÐ#Xð
ñ 
ô 
ð Kð Kõ 	 	 	¡¤Ð,Ñ,Ô,×0Ò0µµAÅ	Ð0ÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð Kð Ks   Á+>B6Â6B:Â=B:c                  ó2  — t          t          ¦   «         ¬¦  «        } t          | g¦  «        }t          j        d¦  «        }t          j        t          |¬¦  «        5  |                     t          t          d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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»  i  sÔ   € õ +Õ5HÑ5JÔ5JÐKÑKÔK€MÝ˜=˜/Ñ*Ô*€DÝ
Œ)ð	0ñô €Cõ 
ŒÕ/°sÐ	;Ñ	;Ô	;ð (ð (Ø�Š••A ˆÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   Á#BÂBÂBc                  ó  — t          ¦   «         } t          d| fg¦  «        }t          j        d¦  «        }t	          j        t          |¬¦  «        5  |                     t          t          d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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   r|  r>   r?   )r½  r¹  rº  s      r1   Ú;test_unsetmetadatapassederror_correct_for_composite_methodsr¾  z  sÔ   € õ 1Ñ2Ô2ÐÝÐ-Ð/DÐEÐFÑGÔG€Då
Œ)ð	9ñô €Cõ 
ŒÕ/°sÐ	;Ñ	;Ô	;ð 2ð 2Ø×Ò�1�a¨&ÐÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   Á#B Â BÂBc                  óê  —  G d„ dt           ¦  «        } t          j        d¦  «        }t          j        t
          |¬¦  «        5   | ¦   «                              d¦  «         ddd¦  «         n# 1 swxY w Y   | j        | _         | ¦   «                              d¬¦  «         t          j        t
          |¬¦  «        5   | ¦   «                              d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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dS )ú(test_unbound_set_methods_work.<locals>.ANc                 ó   — | S r.   rP   r“  s       r1   r5   z,test_unbound_set_methods_work.<locals>.A.fit˜  r†   r3   r.   r  rP   r3   r1   ÚArÁ  —  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Å  �  s‰  € ðð ð ð ð �Mñ ô ð õ ”IØHñô €Mõ
 
Œ•y¨Ð	6Ñ	6Ô	6ð "ð "Ø	ˆ‰Œ×Ò˜DÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð Ô)€AÔð €A�C„C×Ò dÐÑ+Ô+Ð+õ 
Œ•y¨Ð	6Ñ	6Ô	6ð "ð "Ø	ˆ‰Œ×Ò˜DÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s$   ÁA-Á-A1Á4A1Â=C(Ã(C,Ã/C,c                   ó   — e Zd ZdZd„ ZdS )Ú_UncopyableOwnera0  An owner-like object that fails on deepcopy.

    Used to verify that cloning routing objects does not walk into the
    estimator state. This mirrors the real-world skorch case where the
    estimator holds attributes (e.g. locally-defined torch modules) that are
    not picklable / deep-copyable.
    c                 ó    — t          d¦  «        ‚)Nzowner must not be deep-copied©rl   ©r0   Úmemos     r1   Ú__deepcopy__z_UncopyableOwner.__deepcopy__¹  s   € ÝÐ<Ñ=Ô=Ð=r3   N)rT   rU   rV   rW   rÌ  rP   r3   r1   rÇ  rÇ  °  s-   € € € € € ðð ð>ð >ð >ð >ð >r3   rÇ  c                  ó(  — t          ¦   «         } t          | d¬¦  «        }|                     dd¬¦  «         t          |¦  «        }|j        | u sJ ‚|j        ddik    sJ ‚|j        |j        usJ ‚|                     dd¬¦  «         d|j        vsJ ‚d S )Nr5   r+  rƒ   Tr]   r”   )rÇ  r   ri   r   rK   rn   Ú	_requests)rK   ÚreqÚnews      r1   Ú6test_method_metadata_request_clone_does_not_copy_ownerrÑ  ½  s±   € ÝÑÔ€EÝ
 e°EÐ
:Ñ
:Ô
:€CØ‡O‚O˜/°€OÑ6Ô6Ð6å
�‰*Œ*€Cð Œ9˜ÐÐÐÐàŒ<˜O¨TÐ2Ò2Ð2Ð2Ð2ØŒ= ¤Ð-Ð-Ð-Ð-à‡O‚O˜(¨$€OÑ/Ô/Ð/Ø˜3œ<Ð'Ð'Ð'Ð'Ð'Ð'r3   c                  ó”  — t          ¦   «         } t          | ¬¦  «        }|j                             dd¬¦  «         t	          |¦  «        }|j        | u sJ ‚t          D ]}t          ||¦  «        j        | u sJ ‚Œ|j        j        ddik    sJ ‚|j        |j        usJ ‚|j                             dd¬¦  «         d|j        j        vsJ ‚d S )NrJ   rƒ   Tr]   r”   )	rÇ  r   r5   ri   r   rK   r   r\  rn   )rK   rÏ  rÐ  r¶   s       r1   Ú/test_metadata_request_clone_does_not_copy_ownerrÓ  Î  sí   € ÝÑÔ€EÝ
 Ð
&Ñ
&Ô
&€CØ„G×Ò˜o°TÐÑ:Ô:Ð:å
�‰*Œ*€CàŒ9˜ÐÐÐÐÝ ð 3ð 3ˆÝ�s˜FÑ#Ô#Ô)¨UÐ2Ð2Ð2Ð2Ð2ØŒ7Ô °Ð6Ò6Ð6Ð6Ð6ØŒ7˜#œ'Ð!Ð!Ð!Ð!Ø„G×Ò˜h¨dÐÑ3Ô3Ð3Ø˜3œ7Ô+Ð+Ð+Ð+Ð+Ð+Ð+r3   c                  óô  — t          ¦   «         } t          ¦   «         }t          |¬¦  «        }|j                             dd¬¦  «         t	          | ¬¦  «                             |t          ¦   «                              dd¬¦  «        ¬¦  «        }t          |¦  «        }|j        | u sJ ‚|j	        d         j
        j        |u sJ ‚|j	        |j	        usJ ‚|j	        d         j
        j        j        ddik    sJ ‚d S )	NrJ   rƒ   Tr]   r5   rM   ro  rô   )rÇ  r   r5   ri   r   rQ   r    r   rK   Ú_route_mappingsrR   rn   )rK   Ú	sub_ownerÚsub_reqrR   rÐ  s        r1   Ú.test_metadata_router_clone_does_not_copy_ownerrØ  Þ  s  € ÝÑÔ€EÝ Ñ"Ô"€IÝ IÐ.Ñ.Ô.€GØ„K×Ò /¸ÐÑ>Ô>Ð>å %Ð(Ñ(Ô(×,Ò,ØÝ$‘”×*Ò*°%ÀÐ*ÑFÔFð -ñ ô €Fõ
 �‰-Œ-€CàŒ9˜ÐÐÐÐØÔ˜uÔ%Ô,Ô2°iÐ?Ð?Ð?Ð?àÔ fÔ&<Ð<Ð<Ð<Ð<ØÔ˜uÔ%Ô,Ô0Ô9¸oÈtÐ=TÒTÐTÐTÐTÐTÐTr3   c                  óœ   —  G d„ dt           ¦  «        }  | ¦   «                              d¬¦  «        }t          |¦  «        }|j        |u sJ ‚d S )Nc                   ó   — e Zd Zdd„Zd„ ZdS )úDtest_get_routing_for_object_does_not_deepcopy_estimator.<locals>.EstNc                 ó   — | S r.   rP   r“  s       r1   r5   zHtest_get_routing_for_object_does_not_deepcopy_estimator.<locals>.Est.fit÷  r†   r3   c                 ó    — t          d¦  «        ‚©Nz!estimator must not be deep-copiedrÉ  rÊ  s     r1   rÌ  zQtest_get_routing_for_object_does_not_deepcopy_estimator.<locals>.Est.__deepcopy__ú  ó   € Ý Ø3ñô ð r3   r.   ©rT   rU   rV   r5   rÌ  rP   r3   r1   ÚEstrÛ  ö  ó7   € € € € € ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	r3   rá  TrÃ   )r   rË   r"   rK   )rá  rô   Úroutings      r1   Ú7test_get_routing_for_object_does_not_deepcopy_estimatorrä  ò  sp   € ðð ð ð ð �mñ ô ð ð ˆ#‰%Œ%×
Ò
¨dÐ
Ñ
3Ô
3€CÝ$ SÑ)Ô)€GØŒ=˜CÐÐÐÐÐÐr3   c                  óÎ   —  G d„ dt           ¦  «        }  | ¦   «                              d¬¦  «        }t          |¬¦  «                             |¦  «        }|j        j        |u sJ ‚d S )Nc                   ó   — e Zd Zdd„Zd„ ZdS )ú>test_add_self_request_does_not_deepcopy_estimator.<locals>.EstNc                 ó   — | S r.   rP   r“  s       r1   r5   zBtest_add_self_request_does_not_deepcopy_estimator.<locals>.Est.fit  r†   r3   c                 ó    — t          d¦  «        ‚rÞ  rÉ  rÊ  s     r1   rÌ  zKtest_add_self_request_does_not_deepcopy_estimator.<locals>.Est.__deepcopy__
  rß  r3   r.   rà  rP   r3   r1   rá  rç    râ  r3   rá  TrÃ   rJ   )r   rË   r   rm   rk  rK   )rá  rô   rR   s      r1   Ú1test_add_self_request_does_not_deepcopy_estimatorrê    s‡   € ðð ð ð ð �mñ ô ð ð ˆ#‰%Œ%×
Ò
¨dÐ
Ñ
3Ô
3€Cõ  #Ð&Ñ&Ô&×7Ò7¸Ñ<Ô<€FØÔÔ%¨Ð,Ð,Ð,Ð,Ð,Ð,r3   c                  ó0  —  G d„ dt           ¦  «        } t          t          ¦   «         d¦  «        sJ ‚t          j        t          t          j        d¦  «        ¬¦  «        5   | ¦   «                              d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	zHTest that removing a metadata with UNUSED marker affects child's method.c                   ó,   — e Zd Zej        ej        dœZdS )ú=test_removing_metadata_in_subclass_correctly_works.<locals>.Ar‰   N)rT   rU   rV   r   r  Ú_A__metadata_request__scorerP   r3   r1   rÃ  rí    s)   € € € € € à-Ô4Ø(Ô/ð%
ð %
Ð!Ð!Ð!r3   rÃ  rò   zJUnexpected args: {'sample_weight'} in score. Accepted arguments are: set()r©   TrÃ   N)r	   r   rj   rk   r­   rÉ   rÊ   rò   )rÃ  s    r1   Ú2test_removing_metadata_in_subclass_correctly_worksrï    sþ   € ð
ð 
ð 
ð 
ð 
Õñ 
ô 
ð 
õ Õ&Ñ(Ô(Ð*=Ñ>Ô>Ð>Ð>Ð>õ 
ŒÝÝŒiØXñ
ô 
ð
ñ 
ô 
ð 2ð 2ð 	
ˆ‰Œ×Ò¨DÐÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   ÁBÂBÂBc                  ó„   —  G d„ dt           ¦  «        }  G d„ d| ¦  «        } |¦   «                              d¬¦  «         dS )zDTest that explicitly defined set_{method}_request is not overridden.c                   ó   — e Zd Zdd„ZdS )úFtest_explicitly_defined_set_method_request_is_not_overriden.<locals>.ANc                 ó   — | S r.   rP   )r0   rƒ   rŠ   s      r1   rò   zXtest_explicitly_defined_set_method_request_is_not_overriden.<locals>.A.set_score_request2  r†   r3   r   )rT   rU   rV   rò   rP   r3   r1   rÃ  rò  1  r"  r3   rÃ  c                   ó   — e Zd Zdd„ZdS )úFtest_explicitly_defined_set_method_request_is_not_overriden.<locals>.BNc                 ó   — d S r.   rP   r…   s      r1   re   zLtest_explicitly_defined_set_method_request_is_not_overriden.<locals>.B.score6  r—   r3   r.   )rT   rU   rV   re   rP   r3   r1   ÚBrõ  5  s(   € € € € € ð	ð 	ð 	ð 	ð 	ð 	r3   r÷  TrÃ   N)r   rò   )rÃ  r÷  s     r1   Ú;test_explicitly_defined_set_method_request_is_not_overridenrø  -  s{   € ðð ð ð ð �Mñ ô ð ðð ð ð ð ˆAñ ô ð ð
 €A�C„C×Ò¨ÐÑ-Ô-Ð-Ð-Ð-r3   )qrW   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/  r9  r>  rD  rO  rU  ri   rQ   rY  rÈ   r­   r`  rg  rl  rq  rv  r¡  r¨  r«  r­  rµ  r»  r¾  rÅ  rÇ  rÑ  rÓ  rØ  rä  rê  rï  rø  rP   r3   r1   ú<module>r     sÖ  ððð ð 
€	€	€	à Ð Ð Ð Ø €€€à "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4à„i×Ò˜BÑÔ€Ø�€€1Ø‡H‚HˆQ��N„N€Ø‡K‚K��1˜1€KÑÔ€Ø�KŠK˜˜2 AˆKÑ&Ô&€	Ø�XŠX�a‰[Œ[€
Ø—8’8˜A‘;”;Ð ð7ð 7ð 7ð 7ð 7�]ñ 7ô 7ð 7ðt €¨Ð-Ñ-Ô-ð ð  ñ .Ô-ð ðF „×ÒØàÐ Y Y¡[¤[Ð1Ñ1Ô1ØÐ I I¡K¤KÐ0Ñ0Ô0ØÐ i i¡k¤kÐ2Ñ2Ô2ØÐÐ)<Ð)<Ñ)>Ô)>ÈÈÉÌÐUÑUÔUØÐÐ(:Ð(:Ñ(<Ô(<ÀyÀyÁ{Ä{ÐSÑSÔSðñ	ô 	ð €¨Ð-Ñ-Ô-ð+ð +ñ .Ô-ñ	ô 	ð+ð „×ÒØðð ð ñô ð €¨Ð-Ñ-Ô-ð(ð (ñ .Ô-ñô ð(ð
 „×ÒØðð ð ñô ð €¨Ð-Ñ-Ô-ð(ð (ñ .Ô-ñô ð(ð
 €¨Ð-Ñ-Ô-ð)ð )ñ .Ô-ð)ðB €¨Ð-Ñ-Ô-ðð ñ .Ô-ðð@ €¨Ð-Ñ-Ô-ðSð Sñ .Ô-ðSð
 €¨Ð-Ñ-Ô-ðBð Bñ .Ô-ðBð „×Ò˜ 7Ñ+Ô+Ø„×Ò˜ T¨9°bÐ$9Ñ:Ô:Ø€¨Ð-Ñ-Ô-ð:ð :ñ .Ô-ñ ;Ô:ñ ,Ô+ð:ð €¨Ð-Ñ-Ô-ð5ð 5ñ .Ô-ð5ðp €¨Ð-Ñ-Ô-ð-ð -ñ .Ô-ð-ð` €¨Ð-Ñ-Ô-ðSð Sñ .Ô-ðSð: €¨Ð-Ñ-Ô-ð=ð =ñ .Ô-ð=ð, €¨Ð-Ñ-Ô-ð@?ð @?ñ .Ô-ð@?ðF €¨Ð-Ñ-Ô-ð+ ð + ñ .Ô-ð+ ð\ €¨Ð-Ñ-Ô-ð7ð 7ñ .Ô-ð7ðKð Kð KðB €¨Ð-Ñ-Ô-ð>ð >ñ .Ô-ð>ð( €¨Ð-Ñ-Ô-ð-ð -ñ .Ô-ð-ð* €¨Ð-Ñ-Ô-ðLð Lñ .Ô-ðLð €¨Ð-Ñ-Ô-ðYð Yñ .Ô-ðYð6 €¨Ð-Ñ-Ô-ð	.ð 	.ñ .Ô-ð	.ð €¨Ð-Ñ-Ô-ð	
ð 	
ñ .Ô-ð	
ð €¨Ð-Ñ-Ô-Ø„×ÒØð "Ð!¨°uÐ=Ñ=Ô=×IÒIØ 5ð Jñ ô ð ð		
ð ˆO &Ð)Ñ)Ô)Øð	
ð
 ˆN Ð(Ñ(Ô(×,Ò,Ø,Ð,Ñ.Ô.Ø,˜}™œ×2Ò2¸)ÈIÐ2ÑVÔVð -ñ ô ð
@ð	
ðñô ð8 €¨Ð-Ñ-Ô-ðð ñ .Ô-ñ9ô ñ .Ô-ð<ð „×ÒØ+ð ˆM‰OŒOØØ¨	Ð2Ð2ØØð	
ð ˆM‰OŒOØØ ¨EÐ2Ð2ØØð	
ð ˆN Ð(Ñ(Ô(ØØ�N�N¨Ð0Ñ0Ô0Ð1ØØNð	
ð  ÐÑ!Ô!ØØ˜ÐØØð	
ð-ñ ô  ðB €¨Ð-Ñ-Ô-ð'ð 'ñ .Ô-ñC ô  ðD'ð
 €¨Ð-Ñ-Ô-ðBð Bñ .Ô-ðBð* €¨Ð-Ñ-Ô-ðCð Cñ .Ô-ðCð: €¨Ð-Ñ-Ô-ðð ñ .Ô-ðð< €¨Ð-Ñ-Ô-ð)ð )ñ .Ô-ð)ðX €¨Ð-Ñ-Ô-ðZCð ZCñ .Ô-ðZCðz €¨Ð-Ñ-Ô-ð1ð 1ñ .Ô-ð1ðh €¨Ð-Ñ-Ô-ðFð Fñ .Ô-ðFð €¨Ð-Ñ-Ô-ðPð Pñ .Ô-ðPð
 €¨Ð-Ñ-Ô-ðKð Kñ .Ô-ðKð( €¨Ð-Ñ-Ô-ð(ð (ñ .Ô-ð(ð  €¨Ð-Ñ-Ô-ð2ð 2ñ .Ô-ð2ð$ €¨Ð-Ñ-Ô-ð"ð "ñ .Ô-ð"ðD
>ð 
>ð 
>ð 
>ð 
>ñ 
>ô 
>ð 
>ð(ð (ð (ð",ð ,ð ,ð Uð Uð Uð( €¨Ð-Ñ-Ô-ð ð  ñ .Ô-ð ð" €¨Ð-Ñ-Ô-ð-ð -ñ .Ô-ð-ð" €¨Ð-Ñ-Ô-ð2ð 2ñ .Ô-ð2ð, €¨Ð-Ñ-Ô-ð.ð .ñ .Ô-ð.ð .ð .r3   