§
    rŠtj¥  ã                   ón  — d dl Z d dlZd dlZd dl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 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d„ Z ej!         "                    dddg¦  «        ej!         "                    dg d¢¦  «        d„ ¦   «         ¦   «         Z#d„ Z$ej!         "                    dddg¦  «        d„ ¦   «         Z%d„ Z&d„ Z'ej!         "                    d e'¦   «         ¦  «        d„ ¦   «         Z(d„ Z)d„ Z*ej!         +                    ed¬¦  «        d„ ¦   «         Z,dS )é    N)Úassert_array_equal)Úconfig_contextÚ
get_config)Úmake_column_transformer)Ú	load_iris)ÚRandomForestClassifier)ÚConvergenceWarning)ÚGridSearchCV)Úmake_pipeline)ÚStandardScaler)Ú_IS_WASM)ÚParallelÚdelayedc                  ó*   — t          ¦   «         d         S )NÚworking_memory)r   © ó    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_parallel.pyÚget_working_memoryr      s   € Ý‰<Œ<Ð(Ô)Ð)r   Ún_jobsé   é   Úbackend©ÚlokyÚ	threadingÚmultiprocessingc                 óà   — t          d¬¦  «        5   t          | |¬¦  «        d„ t          d¦  «        D ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |dgdz  ¦  «         d S )Né{   )r   ©r   r   c              3   óN   K  — | ] } t          t          ¦  «        ¦   «         V — Œ!d S ©N)r   r   ©Ú.0Ú_s     r   ú	<genexpr>z>test_configuration_passes_through_to_joblib.<locals>.<genexpr>!   sE   è è € ð ;
ð ;
Ø./Ð'�GÕ&Ñ'Ô'Ñ)Ô)ð;
ð ;
ð ;
ð ;
ð ;
ð ;
r   r   )r   r   Úranger   )r   r   Úresultss      r   Ú+test_configuration_passes_through_to_joblibr)      sÈ   € õ
 
 sÐ	+Ñ	+Ô	+ð 
ð 
Ø:•( &°'Ð:Ñ:Ô:ð ;
ð ;
Ý38¸±8´8ð;
ñ ;
ô ;
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ
 �w  ¨¡	Ñ*Ô*Ð*Ð*Ð*s   ‘2AÁAÁAc                  óð  — d} t          j        t          | ¬¦  «        5 } t          ¦   «         d„ t	          d¦  «        D ¦   «         ¦  «         ddd¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚d} t          j        t          | ¬¦  «        5 } t          j        ¦   «         d„ t	          d¦  «        D ¦   «         ¦  «         ddd¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚dS )zHInformative warnings should be raised when mixing sklearn and joblib APIzA`sklearn.utils.parallel.Parallel` needs to be used in conjunction©Úmatchc              3   ód   K  — | ]+} t          j        t          j        ¦  «        d ¦  «        V — Œ,dS ©r   N)Újoblibr   ÚtimeÚsleepr#   s     r   r&   z1test_parallel_delayed_warnings.<locals>.<genexpr>.   s9   è è € ÐDÐD°QÐ-•6”>¥$¤*Ñ-Ô-¨aÑ0Ô0ÐDÐDÐDÐDÐDÐDr   é
   Nzw`sklearn.utils.parallel.delayed` should be used with `sklearn.utils.parallel.Parallel` to make it possible to propagatec              3   óZ   K  — | ]&} t          t          j        ¦  «        d ¦  «        V — Œ'dS r.   ©r   r0   r1   r#   s     r   r&   z1test_parallel_delayed_warnings.<locals>.<genexpr>8   s7   è è € ÐDÐD°QÐ-�'¥$¤*Ñ-Ô-¨aÑ0Ô0ÐDÐDÐDÐDÐDÐDr   )ÚpytestÚwarnsÚUserWarningr   r'   Úlenr/   )Úwarn_msgÚrecordss     r   Útest_parallel_delayed_warningsr;   (   s�  € ð S€HÝ	Œ•k¨Ð	2Ñ	2Ô	2ð E°gØ�‰
Œ
ÐDÐD½%À¹)¼)ÐDÑDÔDÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eåˆw‰<Œ<˜2ÒÐÐÐð
	Mð õ 
Œ•k¨Ð	2Ñ	2Ô	2ð E°gØ�ŒÑÔÐDÐD½%À¹)¼)ÐDÑDÔDÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eåˆw‰<Œ<˜2ÒÐÐÐÐÐs#   ž/AÁAÁ AÂ4CÃCÃCc           
      óÀ  ‡— t          j        d¦  «        Št          d¬¦  «        } G ˆfd„dt          ¦  «        }t	          ddgfd| ¬	¦  «        }d
g d¢i}t          t          | |¦   «         t          d| ¬¦  «        ¦  «        |d| d¬¦  «        }t          j        t          d¬¦  «        5  | 
                    |j        |j        ¦  «         ddd¦  «         n# 1 swxY w Y   t          d¬¦  «        5  | 
                    |j        |j        ¦  «         ddd¦  «         n# 1 swxY w Y   t          j        |j        d         ¦  «                             ¦   «         rJ ‚dS )zªCheck that we properly dispatch the configuration in parallel processing.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/25239
    ÚpandasT)Úas_framec                   ó2   •‡ — e Zd Zdˆ ˆfd„	Zdˆ ˆfd„	Zˆ xZS )úCtest_dispatch_config_parallel.<locals>.TransformerRequiredDataFrameNc                 ó†   •— t          |‰j        ¦  «        s
J d¦   «         ‚t          ¦   «                              ||¦  «        S ©NúX should be a DataFrame)Ú
isinstanceÚ	DataFrameÚsuperÚfit©ÚselfÚXÚyÚ	__class__Úpds      €€r   rG   zGtest_dispatch_config_parallel.<locals>.TransformerRequiredDataFrame.fitG   s<   ø€ Ý˜a ¤Ñ.Ô.ÐIÐIÐ0IÑIÔIÐ.Ý‘7”7—;’;˜q !Ñ$Ô$Ð$r   c                 ó†   •— t          |‰j        ¦  «        s
J d¦   «         ‚t          ¦   «                              ||¦  «        S rB   )rD   rE   rF   Ú	transformrH   s      €€r   rO   zMtest_dispatch_config_parallel.<locals>.TransformerRequiredDataFrame.transformK   s>   ø€ Ý˜a ¤Ñ.Ô.ÐIÐIÐ0IÑIÔIÐ.Ý‘7”7×$Ò$ Q¨Ñ*Ô*Ð*r   r"   )Ú__name__Ú
__module__Ú__qualname__rG   rO   Ú__classcell__)rL   rM   s   @€r   ÚTransformerRequiredDataFramer@   F   sf   øø€ € € € € ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+r   rT   Údropr   Úpassthrough)Ú	remainderr   Ú!randomforestclassifier__max_depth)r   r   é   é   )Ún_estimatorsr   Úraise)Úcvr   Úerror_scorerC   r+   N)Útransform_outputÚmean_test_score)r5   Úimportorskipr   r   r   r
   r   r   ÚraisesÚAssertionErrorrG   ÚdataÚtargetr   ÚnpÚisnanÚcv_results_Úany)r   ÚirisrT   ÚdropperÚ
param_gridÚ	search_cvrM   s         @r   Útest_dispatch_config_parallelrn   <   s  ø€ õ 
Ô	˜XÑ	&Ô	&€BÝ˜dÐ#Ñ#Ô#€Dð+ð +ð +ð +ð +ð +ð +¥~ñ +ô +ð +õ &Ø	�!�ˆØØðñ ô €Gð
 6°y°y°yÐA€JÝÝØØ(Ð(Ñ*Ô*Ý"°¸&ÐAÑAÔAñ	
ô 	
ð
 	ØØØð
ñ 
ô 
€Iõ 
Œ•~Ð-FÐ	GÑ	GÔ	Gð .ð .Ø�Š�d”i ¤Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 
¨Ð	2Ñ	2Ô	2ð .ð .à�Š�d”i ¤Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ Œx˜	Ô-Ð.?Ô@ÑAÔA×EÒEÑGÔGÐGÐGÐGÐGÐGs$   Â+!CÃCÃCÃ3!D Ä D$Ä'D$c                  ó:   — t          j        dt          ¦  «         d S )NúConvergence warning)ÚwarningsÚwarnr	   r   r   r   Úraise_warningrs   l   s   € Ý„MÐ'Õ);Ñ<Ô<Ð<Ð<Ð<r   c               #   óÆ   K  — ddg} g d¢}t          j        | |¦  «        D ]@\  }}|dk    r/|dk    r)t          j        ||t          j        j        ¬¦  «        V — Œ:||fV — ŒAd S )Nr   r   r   r   )Úmarks)Ú	itertoolsÚproductr5   ÚparamÚmarkÚthread_unsafe)Ún_jobs_valuesÚbackend_valuesr   r   s       r   Ú"_yield_n_jobs_backend_combinationsr}   p   s‘   è è € Ø˜�F€MØ=Ð=Ð=€NÝ$Ô,¨]¸NÑKÔKð "ð "‰ˆ�Ø�QŠ;ˆ;˜7 fÒ,Ð,õ ”,˜v wµf´kÔ6OÐPÑPÔPÐPÐPÐPÐPà˜'�/Ð!Ð!Ð!Ð!ð"ð "r   zn_jobs, backendc                 óX  — t          j        ¦   «         5  t          j        dt          ¬¦  «         t	          j        t          ¦  «        5   t          | |¬¦  «        d„ t          d¦  «        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 )z$Check warning propagates to the job.Úerror©Úcategoryr    c              3   óN   K  — | ] } t          t          ¦  «        ¦   «         V — Œ!d S r"   )r   rs   r#   s     r   r&   z1test_filter_warning_propagates.<locals>.<genexpr>„   sD   è è € ð 5ð 5Ø-.Ð&•�Ñ&Ô&Ñ(Ô(ð5ð 5ð 5ð 5ð 5ð 5r   r   N)rq   Úcatch_warningsÚsimplefilterr	   r5   rb   r   r'   r    s     r   Útest_filter_warning_propagatesr…   }   s7  € õ 
Ô	 Ñ	"Ô	"ð ð ÝÔ˜gÕ0BÐCÑCÔCÐCåŒ]Õ-Ñ.Ô.ð 	ð 	Ø4�H˜F¨GÐ4Ñ4Ô4ð 5ð 5Ý27¸±(´(ð5ñ 5ô 5ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s5   ”5BÁ	2BÁ;BÂB	ÂBÂB	ÂBÂB#Â&B#c                  ó^   — t          t          dd ¦  «        } | �
 | ¦   «         nt          j        S )NÚ_get_filters)Úgetattrrq   Úfilters)Úfilters_funcs    r   Úget_warning_filtersr‹   ‰   s-   € õ �8 ^°TÑ:Ô:€LØ)Ð5ˆ<ˆ<‰>Œ>ˆ>½8Ô;KÐKr   c                  ó~  ‡— t          j        ¦   «         5  t          j        dt          ¬¦  «         t	          ¦   «         Šddt          ddf‰v sJ ‚ t          dd¬¦  «        d„ t          d¦  «        D ¦   «         ¦  «        } ˆfd	„}| D ]} ||¦  «         |‰¦  «        k    sJ ‚Œ	 ddd¦  «         dS # 1 swxY w Y   dS )
zGCheck that warnings filters are set correctly in the threading backend.r   r€   Nr   r   r   r    c              3   óN   K  — | ] } t          t          ¦  «        ¦   «         V — Œ!d S r"   )r   r‹   r#   s     r   r&   z0test_check_warnings_threading.<locals>.<genexpr>œ   sM   è è € ð M
ð M
Ø/0Ð(�GÕ'Ñ(Ô(Ñ*Ô*ðM
ð M
ð M
ð M
ð M
ð M
r   c                 ó   •— d„ ‰D ¦   «         S )Nc           	      óŒ   — g | ]A\  }}}}}|||d t          |¦  «        vst          |t          j        ¦  «        s|n|j        |f‘ŒBS )Ú__main__)ÚstrrD   ÚreÚPatternÚpattern)r$   ÚactionÚmessageÚtype_ÚmoduleÚlinenos         r   ú
<listcomp>zPtest_check_warnings_threading.<locals>.normalize_main_module.<locals>.<listcomp>¤   su   € ð ð ð ñ ;�F˜G U¨F°Fð ØØà!­¨V©¬Ð4Ð4Ý% f­b¬jÑ9Ô9ð 5ð �Fð  œØð	ðð ð r   r   )r‰   Úmain_warning_filterss    €r   Únormalize_main_modulez<test_check_warnings_threading.<locals>.normalize_main_module    s'   ø€ ðð ð ?Sðñ ô ð r   )rq   rƒ   r„   r	   r‹   r   r'   )Úall_worker_warning_filtersrœ   Úworker_warning_filterr›   s      @r   Útest_check_warnings_threadingrŸ   “   si  ø€ å	Ô	 Ñ	"Ô	"ð  =ð  =ÝÔ˜gÕ0BÐCÑCÔCÐCå2Ñ4Ô4Ðà˜Õ1°4¸Ð;Ð?SÐSÐSÐSÐSà%L¥X°QÀÐ%LÑ%LÔ%Lð M
ð M
Ý49¸!±H´HðM
ñ M
ô M
ñ &
ô &
Ð"ð	ð 	ð 	ð 	ð 	ð$ &@ð 	=ð 	=Ð!Ø(Ð(Ø%ñô à&Ð&Ð';Ñ<Ô<ò=ð =ð =ð =ð =ð	=ð; =ð  =ð  =ñ  =ô  =ð  =ð  =ð  =ð  =ð  =ð  =ð  =øøøð  =ð  =ð  =ð  =ð  =ð  =s   •BB2Â2B6Â9B6z)Pyodide always use the sequential backend)Úreasonc                  ób  — t          j        ¦   «         5  t          j        dt          ¬¦  «          t	          dd¬¦  «        d„ t          d¦  «        D ¦   «         ¦  «          t          j        dd¬¦  «        d„ t          d¦  «        D ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   r€   r   r   r    c              3   óZ   K  — | ]&} t          t          j        ¦  «        d ¦  «        V — Œ'dS r.   r4   r#   s     r   r&   zRtest_filter_warning_propagates_no_side_effect_with_loky_backend.<locals>.<genexpr>½   s7   è è € Ð*UÐ*UÀaÐ+>­7µ4´:Ñ+>Ô+>¸qÑ+AÔ+AÐ*UÐ*UÐ*UÐ*UÐ*UÐ*Ur   r2   c              3   óp   K  — | ]1} t          j        t          j        ¦  «        d t          ¦  «        V — Œ2dS )rp   N)r/   r   rq   rr   r	   r#   s     r   r&   zRtest_filter_warning_propagates_no_side_effect_with_loky_backend.<locals>.<genexpr>Â   sP   è è € ð 2
ð 2
àð *�FŒN�8œ=Ñ)Ô)Ð*?ÕASÑTÔTð2
ð 2
ð 2
ð 2
ð 2
ð 2
r   )rq   rƒ   r„   r	   r   r'   r/   r   r   r   Ú?test_filter_warning_propagates_no_side_effect_with_loky_backendr¤   ¸   s  € å	Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÕ0BÐCÑCÔCÐCà*�˜ 6Ð*Ñ*Ô*Ð*UÐ*UÍ5ÐQSÉ9Ì9Ð*UÑ*UÔ*UÑUÔUÐUð
 	2�Œ˜q¨&Ð1Ñ1Ô1ð 2
ð 2
å˜2‘Y”Yð2
ñ 2
ô 2
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ”BB$Â$B(Â+B()-rv   r’   r0   rq   r/   Únumpyrf   r5   Únumpy.testingr   Úsklearnr   r   Úsklearn.composer   Úsklearn.datasetsr   Úsklearn.ensembler   Úsklearn.exceptionsr	   Úsklearn.model_selectionr
   Úsklearn.pipeliner   Úsklearn.preprocessingr   Úsklearn.utils.fixesr   Úsklearn.utils.parallelr   r   r   ry   Úparametrizer)   r;   rn   rs   r}   r…   r‹   rŸ   Úxfailr¤   r   r   r   ú<module>r³      s~  ðØ Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€à €€€Ø Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ð*ð *ð *ð „×Ò˜ A q 6Ñ*Ô*Ø„×Ò˜Ð$LÐ$LÐ$LÑMÔMð+ð +ñ NÔMñ +Ô*ð+ðð ð ð( „×Ò˜ A q 6Ñ*Ô*ð,Hð ,Hñ +Ô*ð,Hð^=ð =ð =ð
"ð 
"ð 
"ð „×ÒÐ*Ð,NÐ,NÑ,PÔ,PÑQÔQðð ñ RÔQððLð Lð Lð"=ð "=ð "=ðJ „×Ò�8Ð$OÐÑPÔPð
ð 
ñ QÔPð
ð 
ð 
r   