`L i!xddlZddlZddlZddlZddlZddlmZddlm Z m Z ddl m Z ddl mZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZmZd Zej>jAdddgej>jAdgddZ!dZ"ej>jAdddgdZ#dZ$ej>jAdddgej>jAdgddZ%dZ&dZ'ej>jQeddZ)y)N)assert_array_equal)config_context get_config)make_column_transformer) load_iris)RandomForestClassifier)ConvergenceWarning) GridSearchCV) make_pipeline)StandardScaler)_IS_WASM)ParalleldelayedctdS)Nworking_memory)rg/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_parallel.pyget_working_memoryrs <( ))rn_jobsbackend)loky threadingmultiprocessingctd5t||dtdD}dddtdgdzy#1swYxYw)N{)rrrc3DK|]}ttywN)rr.0_s r z>test_configuration_passes_through_to_joblib..s!; ./ 'G& ' );  r)rrranger)rrresultss r+test_configuration_passes_through_to_joblibr)sW s + :(&':; 388;   w *   s $A  Acd}tjt|5}tdt dDdddt dk(sJd}tjt|5}t jdt dDdddt |dk(sJy#1swYzxYw#1swY&xYw)zHInformative warnings should be raised when mixing sklearn and joblib APIzA`sklearn.utils.parallel.Parallel` needs to be used in conjunctionmatchc3nK|]-}tjtjd/ywrN)joblibrtimesleepr"s rr%z1test_parallel_delayed_warnings..,s%DQ-6>>$**-a0Ds35 Nzw`sklearn.utils.parallel.delayed` should be used with `sklearn.utils.parallel.Parallel` to make it possible to propagatec3ZK|]#}ttjd%ywr.rr0r1r"s rr%z1test_parallel_delayed_warnings..6s!DQ-'$**-a0D)+)pytestwarns UserWarningrr'lenr/)warn_msgrecordss rtest_parallel_delayed_warningsr<&sSH k 2Eg D%)DDE w<2    M  k 2EgD%)DDE w<2  EEEEs!B84+C8CC c tjdtd}Gfddt}t ddgfd| }d gd i}t t ||td | |d |d}tjtd5|j|j|jdddtd5|j|j|jdddtj|j dj#rJy#1swYwxYw#1swYHxYw)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_framec2eZdZdfd Zdfd ZxZS)Ctest_dispatch_config_parallel..TransformerRequiredDataFramec^t|jsJdt| ||SNX should be a DataFrame) isinstance DataFramesuperfitselfXy __class__pds rrHzGtest_dispatch_config_parallel..TransformerRequiredDataFrame.fitEs.a. I0I I.7;q!$ $rc^t|jsJdt| ||SrC)rErFrG transformrIs rrPzMtest_dispatch_config_parallel..TransformerRequiredDataFrame.transformIs/a. I0I I.7$Q* *rr!)__name__ __module__ __qualname__rHrP __classcell__)rMrNs@rTransformerRequiredDataFramerADs % + +rrUdropr passthrough) remainderr!randomforestclassifier__max_depth)rr) n_estimatorsrraise)cvr error_scorerDr+N)transform_outputmean_test_score)r6 importorskiprr rr r rraisesAssertionErrorrHdatatargetrnpisnan cv_results_any)ririsrUdropper param_grid search_cvrNs @rtest_dispatch_config_parallelro:s"   X &B d #D+~+& ! G 6yAJ  ( * "& A   I ~-F G. dii-.  2. dii-.xx --.?@AEEGG GG....s'D. 'D:.D7:Ec8tjdty)NConvergence warning)warningswarnr rrr raise_warningrtjs MM');.vs 5-.& &(5r&rN)rrcatch_warnings simplefilterr r6rcrr'rs rtest_filter_warning_propagatesr|ns  "g0BC ]]- .  4HFG 4527(5    s#5B  $A?.B ?B B  Bc"tjSr!)rrfiltersrrr get_warningsr{s   rc@tj5tjdttjddtddfvsJt dddt dD}tfd |DsJ dddy#1swYyxYw) zGCheck that warnings filters are set correctly in the threading backend.rvrwNrrrrc3DK|]}ttywr!)rrr"s rr%z0test_check_warnings_threading..s ? () !GL ! #? r&c3(K|] }|k( ywr!r)r#wr~s rr%z0test_check_warnings_threading..s6A1<6s)rrrzr{r r~rr'all) all_warningsr~s @rtest_check_warnings_threadingrs  " 7g0BC""14;wFFF>xq+>? -21X?  66666 7 7 7s A4BBz)Pyodide always use the sequential backend)reasonc,tj5tjdtt dddt dDt jdddt dDdddy#1swYyxYw) Nrvrwrrrc3ZK|]#}ttjd%ywr.r4r"s rr%zRtest_filter_warning_propagates_no_side_effect_with_loky_backend..s!*Ua+>74::+>q+A*Ur5r2c3xK|]2}tjtjdt4yw)rqN)r/rrrrsr r"s rr%zRtest_filter_warning_propagates_no_side_effect_with_loky_backend..s02  *FNN8== )*?AS T2 s8:)rrrzr{r rr'r/rrr?test_filter_warning_propagates_no_side_effect_with_loky_backendrsx  "  g0BC*6**U5QS9*UU 2q&12 2Y2      s A,B  B)*r0rrr/numpyrgr6 numpy.testingrsklearnrrsklearn.composersklearn.datasetsrsklearn.ensemblersklearn.exceptionsr sklearn.model_selectionr sklearn.pipeliner sklearn.preprocessingr sklearn.utils.fixesr sklearn.utils.parallelrrrmark parametrizer)r<rortr|rrxfailrrrrrs,   ,.3&310*0(4*Aq6*$LM+N++(Aq6*,H+,H^=Aq6*$LMN+ 78$OP  Q  r