Ë
    êÿæi›  ã                   ó  — d dl Z d dlmZ d dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
mZmZ d„ Zd„ Zd„ Zd	„ Zej"                  j%                  d
g d¢«      d„ «       Zej"                  j)                  e	d¬«      d„ «       Zd„ Zy)é    N)ÚThreadPoolExecutor)Úconfig_contextÚ
get_configÚ
set_config)Ú_IS_WASM)ÚParallelÚdelayedc                  ó\  — t        «       dddddddddddœ
k(  sJ ‚t        d¬«       t        «       d	   du sJ ‚t        d¬«      5  t        «       dddddddddddœ
k(  sJ ‚	 d d d «       t        «       d	   du sJ ‚t        d¬«      5  t        d ¬«      5  t        «       d	   du sJ ‚	 d d d «       t        «       d	   du sJ ‚t        d¬«      5  t        «       d	   du sJ ‚t        d ¬«      5  t        «       d	   du sJ ‚t        d¬«       t        «       d	   du sJ ‚	 d d d «       t        «       d	   du sJ ‚	 d d d «       t        «       d	   du sJ ‚	 d d d «       t        «       dddddddddddœ
k(  sJ ‚t        j                  t
        «      5  t        d«       d d d «       t        j                  t
        «      5  t        d¬
«      j                  «        d d d «       y # 1 sw Y   �ŒzxY w# 1 sw Y   �ŒBxY w# 1 sw Y   ŒÛxY w# 1 sw Y   ŒÍxY w# 1 sw Y   Œ¿xY w# 1 sw Y   Œ„xY w# 1 sw Y   y xY w)NFi   TÚdiagramé   Údefault)
Úassume_finiteÚworking_memoryÚprint_changed_onlyÚdisplayÚarray_api_dispatchÚpairwise_dist_chunk_sizeÚenable_cython_pairwise_distÚtransform_outputÚenable_metadata_routingÚskip_parameter_validation©r   r   ©Údo_something_else)r   r   r   ÚpytestÚraisesÚ	TypeErrorÚ	__enter__© ó    ún/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/tests/test_config.pyÚtest_config_contextr"      sF  € Ü‹<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ñò ð ð ô  Õ&Ü‹<˜Ñ(¨EÑ1Ð1Ð1ä	 dÖ	+Ü‹|Ø!Ø"Ø"&Ø Ø"'Ø(+Ø+/Ø )Ø',Ø).ñ 
ò 
ð 	
ñ 
÷ 
,ô ‹<˜Ñ(¨EÑ1Ð1Ð1ä	 dÖ	+Ü¨$Ö/Ü“< Ñ0°DÑ8Ð8Ñ8÷ 0ô ‹|˜OÑ,°Ñ4Ð4Ð4ä¨%Ö0Ü“< Ñ0°EÑ9Ð9Ð9ä¨dÖ3Ü!“| OÑ4¸Ñ=Ð=Ð=ô ¨Õ.Ü!“| OÑ4¸Ñ<Ð<Ñ<÷ 4ô “< Ñ0°EÑ9Ð9Ñ9÷ 1ô ‹|˜OÑ,°Ñ4Ð4Ñ4÷' 
,ô* ‹<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ñò ð ð ô 
�‰”yÕ	!Ü�tÔ÷ 
"ô 
�‰”yÕ	!Ü¨Ô.×8Ñ8Ô:÷ 
"Ð	!÷m 
,Ñ	+ú÷  0Ñ/ú÷ 4Ð3ú÷ 1Ð0ú÷ 
,Ð	+ú÷F 
"Ð	!ú÷ 
"Ð	!úsx   ÁGÂH
ÂG%Â%%H
Ã
G>Ã(/G2ÄG>Ä2H
ÆHÆ4H"ÇG"Ç%G/	Ç*H
Ç2G;Ç7G>Ç>H	ÈH
È
HÈHÈ"H+c                  óÒ   — t        «       d   du sJ ‚	 t        d¬«      5  t        «       d   du sJ ‚t        «       ‚# 1 sw Y   nxY wn# t        $ r Y nw xY wt        «       d   du sJ ‚y )Nr   FTr   )r   r   Ú
ValueErrorr   r    r!   Útest_config_context_exceptionr%   X   sv   € Ü‹<˜Ñ(¨EÑ1Ð1Ð1ðÜ¨$Ö/Ü“< Ñ0°DÑ8Ð8Ð8Ü“,Ð÷ 0Ð/úÐ/øô ò Ùðúä‹<˜Ñ(¨EÑ1Ð1Ñ1s    “A Ÿ;»AÁ A Á	AÁAc                  ó‚  — t        «       d   du sJ ‚t        d ¬«       t        «       d   du sJ ‚t        d¬«       t        «       d   du sJ ‚t        d ¬«       t        «       d   du sJ ‚t        d¬«       t        «       d   du sJ ‚t        j                  t        «      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)Nr   Fr   Tr   )r   r   r   r   r   r   r    r!   Útest_set_configr'   c   s­   € Ü‹<˜Ñ(¨EÑ1Ð1Ð1Ü˜TÕ"Ü‹<˜Ñ(¨EÑ1Ð1Ð1Ü˜TÕ"Ü‹<˜Ñ(¨DÑ0Ð0Ð0Ü˜TÕ"Ü‹<˜Ñ(¨DÑ0Ð0Ð0Ü˜UÕ#Ü‹<˜Ñ(¨EÑ1Ð1Ð1ô 
�‰”yÕ	!Ü TÕ*÷ 
"×	!Ñ	!ús   ÂB5Â5B>c                 óŠ   — t        | ¬«      5  t        j                  |«       t        «       d   cddd«       S # 1 sw Y   yxY w)zAReturn the value of assume_finite after waiting `sleep_duration`.r   r   N)r   ÚtimeÚsleepr   )r   Úsleep_durations     r!   Úset_assume_finiter,   s   s,   € ä	 mÖ	4Ü�
‰
�>Ô"Ü‹|˜OÑ,÷ 
5×	4Ò	4ús	   �"9¹AÚbackend)ÚlokyÚmultiprocessingÚ	threadingc                 ón   — g d¢}g d¢} t        | d¬«      d„ t        ||«      D «       «      }|g d¢k(  sJ ‚y)ao  Test that the global config is threadsafe with all joblib backends.
    Two jobs are spawned and sets assume_finite to two different values.
    When the job with a duration 0.1s completes, the assume_finite value
    should be the same as the value passed to the function. In other words,
    it is not influenced by the other job setting assume_finite to True.
    ©FTFT©çš™™™™™¹?çš™™™™™É?r4   r5   é   )r-   Ún_jobsc              3   óN   K  — | ]  \  }} t        t        «      ||«      –— Œ y ­w)N)r	   r,   )Ú.0r   Ú	sleep_durs      r!   Ú	<genexpr>z0test_config_threadsafe_joblib.<locals>.<genexpr>…   s,   è ø€ ð 0á(LÑ$ˆM˜9ð 	#ŒÔ!Ó" =°)×<Ù(Lùs   ‚#%N)r   Úzip)r-   Úassume_finitesÚsleep_durationsÚitemss       r!   Útest_config_threadsafe_joblibr@   z   sF   € ò 0€NÚ*€Oà/ŒH˜W¨QÔ/ñ 0ä(+¨N¸OÔ(Ló0ó €Eð
 Ò.Ò.Ð.Ñ.r    zcannot start threads)Úreasonc                  óº   — g d¢} g d¢}t        d¬«      5 }|j                  t        | |«      D �cg c]  }|‘Œ }}ddd«       g d¢k(  sJ ‚yc c}w # 1 sw Y   ŒxY w)z©Uses threads directly to test that the global config does not change
    between threads. Same test as `test_config_threadsafe_joblib` but with
    `ThreadPoolExecutor`.r2   r3   r6   )Úmax_workersN)r   Úmapr,   )r=   r>   ÚeÚoutputr?   s        r!   Útest_config_threadsaferG   �   sl   € ò 0€NÚ*€Oä	¨Õ	*¨að Ÿ%™%Ô 1°>À?ÔSó
áS�ò ØSð 	ð 
÷ 
+ð Ò.Ò.Ð.Ñ.ùò
÷ 
+Ð	*ús   •A¯	A¸AÁAÁAc                 óŠ  — | j                  t        j                  j                  j                  dd«       t        j                  t        d¬«      5  t        d¬«      5  	 ddd«       ddd«       t        j                  t        d¬«      5  t        d¬«       ddd«       y# 1 sw Y   ŒBxY w# 1 sw Y   ŒFxY w# 1 sw Y   yxY w)z!Check error when SciPy is too oldÚ__version__z1.13.0zSciPy must be 1.14.0 or newer)ÚmatchT)r   N)
ÚsetattrÚsklearnÚutilsÚ
_array_apiÚscipyr   r   ÚImportErrorr   r   )Úmonkeypatchs    r!   Ú*test_config_array_api_dispatch_error_scipyrR   Ÿ   sˆ   € à×ÑœŸ™×0Ñ0×6Ñ6¸ÀxÔPä	�‰”{Ð*IÖ	JÜ¨tÖ4Ø÷ 5÷ 
Kô 
�‰”{Ð*IÖ	JÜ dÕ+÷ 
KÐ	J÷ 5Ð4ú÷ 
KÐ	Jú÷ 
KÐ	Jús0   ÁB-ÁB!Á B-ÂB9Â!B*	Â&B-Â-B6Â9C)r)   Úconcurrent.futuresr   r   rL   r   r   r   Úsklearn.utils.fixesr   Úsklearn.utils.parallelr   r	   r"   r%   r'   r,   ÚmarkÚparametrizer@   ÚxfailrG   rR   r   r    r!   Ú<module>rY      sˆ   ðÛ Ý 1ã ã ß :Ñ :Ý (ß 4òI;òX2ò+ò -ð ‡�×Ñ˜Ò$LÓMñ/ó Nð/ð$ ‡�×Ñ�8Ð$:ÐÓ;ñ/ó <ð/ó"	,r    