
    0PhB                        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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S )    N)assert_array_equal)config_context
get_config)make_column_transformer)	load_iris)RandomForestClassifier)GridSearchCV)make_pipeline)StandardScaler)Paralleldelayedc                  *    t                      d         S )Nworking_memory)r        a/var/www/html/test/jupyter/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88;
 ;
 ;
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 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DQ-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   r,   r-   r   s     r   r"   z1test_parallel_delayed_warnings.<locals>.<genexpr>3   s7      DDQ-'$*--a00DDDDDDr   )pytestwarnsUserWarningr   r#   lenr+   )warn_msgrecordss     r   test_parallel_delayed_warningsr6   #   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 )zCheck 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   rB   zGtest_dispatch_config_parallel.<locals>.TransformerRequiredDataFrame.fitB   s<    a..II0IIII77;;q!$$$r   c                     t          |j                  s
J d            t                                          ||          S r=   )r?   r@   rA   	transformrC   s      r   rJ   zMtest_dispatch_config_parallel.<locals>.TransformerRequiredDataFrame.transformF   s>    a..II0IIII77$$Q***r   r   )__name__
__module____qualname__rB   rJ   __classcell__)rG   rH   s   @r   TransformerRequiredDataFramer;   A   sf        	% 	% 	% 	% 	% 	% 	%	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r   rO   dropr   passthrough)	remainderr   !randomforestclassifier__max_depth)r   r         )n_estimatorsr   raise)cvr   error_scorer>   r'   N)transform_outputmean_test_score)r0   importorskipr   r   r   r	   r
   r   raisesAssertionErrorrB   datatargetr   npisnancv_results_any)r   irisrO   dropper
param_grid	search_cvrH   s         @r   test_dispatch_config_parallelri   7   s    
	X	&	&Bd###D+ + + + + + +~ + + + &	!  G
 6yyyAJ((**"&AAA	
 	

 	
 
 
I 
~-F	G	G	G . .di---. . . . . . . . . . . . . . . 
	2	2	2 . .di---. . . . . . . . . . . . . . . x	-.?@AAEEGGGGGGGs$   +!CCC3!D  D$'D$)r,   r+   numpyra   r0   numpy.testingr   sklearnr   r   sklearn.composer   sklearn.datasetsr   sklearn.ensembler   sklearn.model_selectionr	   sklearn.pipeliner
   sklearn.preprocessingr   sklearn.utils.parallelr   r   r   markparametrizer%   r6   ri   r   r   r   <module>rv      s          , , , , , , . . . . . . . . 3 3 3 3 3 3 & & & & & & 3 3 3 3 3 3 0 0 0 0 0 0 * * * * * * 0 0 0 0 0 0 4 4 4 4 4 4 4 4* * * Aq6**$L$L$LMM+ + NM +*+  ( Aq6**,H ,H +*,H ,H ,Hr   