Ë
    ÷Q(h�  ã                   ó  — d dl Z 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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__© ó    úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_config.pyÚtest_config_contextr"      sy  € Ü‹<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ñò ð ð ô  Õ&Ü‹<˜Ñ(¨EÑ1Ð1Ð1ä	 dÔ	+ñ 
Ü‹|Ø!Ø"Ø"&Ø Ø"'Ø(+Ø+/Ø )Ø',Ø).ñ 
ò 
ð 	
ñ 
÷
ô ‹<˜Ñ(¨EÑ1Ð1Ð1ä	 dÔ	+ñ 5Ü¨$Ô/ñ 	9Ü“< Ñ0°DÑ8Ð8Ñ8÷	9ô ‹|˜OÑ,°Ñ4Ð4Ð4ä¨%Ô0ñ 	:Ü“< Ñ0°EÑ9Ð9Ð9ä¨dÔ3ñ =Ü!“| OÑ4¸Ñ=Ð=Ð=ô ¨Õ.Ü!“| OÑ4¸Ñ<Ð<Ñ<÷=ô “< Ñ0°EÑ9Ð9Ñ9÷	:ô ‹|˜OÑ,°Ñ4Ð4Ñ4÷'5ô* ‹<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ñò ð ð ô 
�‰”yÓ	!ñ Ü�tÔ÷ô 
�‰”yÓ	!ñ ;Ü¨Ô.×8Ñ8Ô:÷;ð ;÷m
ñ 
ú÷ 	9ñ 	9ú÷=ð =ú÷	:ð 	:ú÷5ð 5ú÷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%   Y   s   € Ü‹<˜Ñ(¨EÑ1Ð1Ð1ðÜ¨$Ô/ñ 	Ü“< Ñ0°DÑ8Ð8Ð8Ü“,Ð÷	ð 	úð 	øô ò Ùðúä‹<˜Ñ(¨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'   d   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,   t   s5   € ä	 mÔ	4ñ -Ü�
‰
�>Ô"Ü‹|˜OÑ,÷-÷ -ò -ú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á$ˆM˜9ð 	#ŒÔ!Ó" =°)×<ñ0ùs   ‚#%N)r   Úzip)r-   Úassume_finitesÚsleep_durationsÚitemss       r!   Útest_config_threadsafe_joblibr@   {   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   Ž   sp   € ò 0€NÚ*€Oä	¨Ô	*ð 
¨að Ÿ%™%Ô 1°>À?ÓSö
àò ð
ˆð 
÷
ð Ò.Ò.Ð.Ñ.ùò
÷
ð 
ús   •A¯	A¸AÁAÁAc                 óz  ‡— t         j                  Šˆfd„}| j                  t         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 is raised when array_api_compat is not installed.c                 ó2   •— | dk(  rt         ‚ ‰| g|¢­i |¤ŽS ©NÚarray_api_compat)ÚImportError©ÚnameÚargsÚkwargsÚorig_imports      €r!   Úmocked_importz;test_config_array_api_dispatch_error.<locals>.mocked_import¦   s'   ø€ ØÐ%Ò%ÜÐÙ˜4Ð1 $Ò1¨&Ñ1Ð1r    Ú
__import__zarray_api_compat is required©ÚmatchT©r   N)ÚbuiltinsrS   Úsetattrr   r   rL   r   r   ©ÚmonkeypatchrR   rQ   s     @r!   Ú$test_config_array_api_dispatch_errorr[       s    ø€ ô ×%Ñ%€Kô2ð
 ×Ñœ ,°Ô>ä	�‰”{Ð*HÔ	Iñ Ü¨tÔ4ñ 	Ø÷	÷ô 
�‰”{Ð*HÔ	Iñ ,Ü dÕ+÷,ð ,÷	ð 	ú÷ð ú÷,ð ,ús0   Á	B%ÁBÁB%ÂB1ÂB"	ÂB%Â%B.Â1B:c                 óä  ‡— t         j                  Šˆfd„}| j                  t         d|«       | 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 NumPy is too oldc                 ó:   •— | dk(  r
t        «       S  ‰| g|¢­i |¤ŽS rJ   )ÚobjectrM   s      €r!   rR   zAtest_config_array_api_dispatch_error_numpy.<locals>.mocked_importº   s(   ø€ ØÐ%Ò%Ü“8ˆOÙ˜4Ð1 $Ò1¨&Ñ1Ð1r    rS   Ú__version__z1.20zNumPy must be 1.21 or newerrT   TrV   N)rW   rS   rX   ÚsklearnÚutilsÚ
_array_apiÚnumpyr   r   rL   r   r   rY   s     @r!   Ú*test_config_array_api_dispatch_error_numpyrd   µ   sÂ   ø€ ô ×%Ñ%€Kô2ð
 ×Ñœ ,°Ô>Ø×ÑœŸ™×0Ñ0×6Ñ6¸ÀvÔNä	�‰”{Ð*GÔ	Hñ Ü¨tÔ4ñ 	Ø÷	÷ô 
�‰”{Ð*GÔ	Hñ ,Ü dÕ+÷,ð ,÷	ð 	ú÷ð ú÷,ð ,ús0   Á>CÂCÂCÂ8C&ÃC	ÃCÃC#Ã&C/)rW   r)   Úconcurrent.futuresr   r   r`   r   r   r   Úsklearn.utils.fixesr   Úsklearn.utils.parallelr   r	   r"   r%   r'   r,   ÚmarkÚparametrizer@   ÚxfailrG   r[   rd   r   r    r!   ú<module>rk      s�   ðÛ Û Ý 1ã ã ß :Ñ :Ý (ß 4òI;òX2ò+ò -ð ‡�×Ñ˜Ò$LÓMñ/ó Nð/ð$ ‡�×Ñ�8Ð$:ÐÓ;ñ/ó <ð/ò",ó*,r    