ó
    ¦ñ:i�  ã                   ó  • S SK r S SKrS SKJr  S SKrS SKrS SKJrJrJr  S SK	J
r
  S SKJrJr  S rS rS rS	 r\R$                  R'                  S
/ SQ5      S 5       r\R$                  R+                  \
SS9S 5       rS rS rg)é    N)ÚThreadPoolExecutor)Úconfig_contextÚ
get_configÚ
set_config)Ú_IS_WASM)ÚParallelÚdelayedc                  óŽ  • [        5       SSSSSSSSSSS.
:X  d   e[        SS9  [        5       S	   SL d   e[        SS9   [        5       SSSSSSSSSSS.
:X  d   e S S S 5        [        5       S	   SL d   e[        SS9   [        S S9   [        5       S	   SL d   e S S S 5        [        5       S	   SL d   e[        SS9   [        5       S	   SL d   e[        S S9   [        5       S	   SL d   e[        SS9  [        5       S	   SL d   e S S S 5        [        5       S	   SL d   e S S S 5        [        5       S	   SL d   e S S S 5        [        5       SSSSSSSSSSS.
:X  d   e[        R                  " [
        5         [        S5        S S S 5        [        R                  " [
        5         [        SS
9R                  5         S S S 5        g ! , (       d  f       GNx= f! , (       d  f       GNI= f! , (       d  f       Nì= f! , (       d  f       Nâ= f! , (       d  f       NØ= f! , (       d  f       N = f! , (       d  f       g = f)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__© ó    Ú\/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/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ÃHÃ.G2ÄHÄ'HÅ?H%Æ-H6Ç
GÇ 
G/	Ç*HÇ2
H Ç<HÈ
H	ÈHÈ
H"È%
H3È6
Ic                  óÜ   • [        5       S   SL d   e [        SS9   [        5       S   SL d   e[        5       e! , (       d  f       O= f! [         a     Of = f[        5       S   SL d   eg )Nr   FTr   )r   r   Ú
ValueErrorr   r    r!   Útest_config_context_exceptionr%   Y   sr   € Ü‹<˜Ñ(¨EÒ1Ð1Ð1ðÜ¨$Ó/Ü“< Ñ0°DÒ8Ð8Ð8Ü“,Ð÷ 0Õ/ûô ó Ùðúä‹<˜Ñ(¨EÒ1Ð1Ñ1s&   ”	A �:º
AÁA ÁA Á
AÁAc                  óz  • [        5       S   SL d   e[        S S9  [        5       S   SL d   e[        SS9  [        5       S   SL d   e[        S S9  [        5       S   SL d   e[        SS9  [        5       S   SL d   e[        R                  " [        5         [        SS9  S S S 5        g ! , (       d  f       g = f)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   Â
B,Â,
B:c                 ó�   • [        U S9   [        R                  " U5        [        5       S   sSSS5        $ ! , (       d  f       g= f)zAReturn the value of assume_finite after waiting `sleep_duration`.r   r   N)r   ÚtimeÚsleepr   )r   Úsleep_durations     r!   Úset_assume_finiter,   t   s,   € ä	 mÓ	4Ü�
Š
�>Ô"Ü‹|˜OÑ,÷ 
5×	4×	4ús	   Š#7·
AÚbackend)ÚlokyÚmultiprocessingÚ	threadingc                 óh   • / SQn/ SQn[        U SS9" S [        X5       5       5      nU/ SQ:X  d   eg)a[  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   óP   #   • U  H  u  p[        [        5      " X5      v •  M     g 7f)N)r	   r,   )Ú.0r   Ú	sleep_durs      r!   Ú	<genexpr>Ú0test_config_threadsafe_joblib.<locals>.<genexpr>†   s(   é € ð 0â(LÑ$ˆMô 	Ô!Ô" =×<Ð<Ú(Lùs   ‚$&N)r   Úzip)r-   Úassume_finitesÚsleep_durationsÚitemss       r!   Útest_config_threadsafe_joblibrA   {   sB   € ò 0€NÚ*€Oä˜W¨QÒ/ñ 0ä(+¨NÔ(Ló0ó €Eð
 Ò.Ó.Ð.Ñ.r    zcannot start threads)Úreasonc                  óÄ   • / SQn / SQn[        SS9 nUR                  [        X5       Vs/ s H  nUPM     nnSSS5        W/ SQ:X  d   egs  snf ! , (       d  f       N= f)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_threadsaferH   Ž   sj   € ò 0€NÚ*€Oä	¨Ò	*¨að Ÿ%™%Ô 1°>ÔSó
âS�ó ÙSð 	ð 
÷ 
+ð Ò.Ó.Ð.Ñ.ùò
÷ 
+Õ	*ús   ’A«A·AÁAÁ
Ac                 ó†  ^• [         R                  mU4S jnU R                  [         SU5        [        R                  " [
        SS9   [        SS9    SSS5        SSS5        [        R                  " [
        SS9   [        SS9  SSS5        g! , (       d  f       NB= f! , (       d  f       NK= f! , (       d  f       g= f)z=Check error is raised when array_api_compat is not installed.c                 ó4   >• U S:X  a  [         eT" U /UQ70 UD6$ ©NÚarray_api_compat)ÚImportError©ÚnameÚargsÚkwargsÚorig_imports      €r!   Úmocked_importÚ;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)ÚbuiltinsrU   Úsetattrr   r   rM   r   r   ©ÚmonkeypatchrS   rR   s     @r!   Ú$test_config_array_api_dispatch_errorr]       s�   ø€ ô ×%Ñ%€Kõ2ð
 ×Ñœ ,°Ô>ä	�Š”{Ð*HÓ	IÜ¨tÓ4Ø÷ 5÷ 
Jô 
�Š”{Ð*HÓ	IÜ dÒ+÷ 
JÐ	I÷ 5Õ4ú÷ 
JÕ	Iú÷ 
JÕ	Iús0   Á
B!ÁBÁB!Á=
B2Â
B	ÂB!Â!
B/Â2
C c                 óð  ^• [         R                  mU4S jnU R                  [         SU5        U R                  [        R                  R
                  R                  SS5        [        R                  " [        SS9   [        SS9    S	S	S	5        S	S	S	5        [        R                  " [        SS9   [        SS9  S	S	S	5        g	! , (       d  f       NB= f! , (       d  f       NK= f! , (       d  f       g	= f)
z!Check error when NumPy is too oldc                 ó<   >• U S:X  a
  [        5       $ T" U /UQ70 UD6$ rK   )ÚobjectrN   s      €r!   rS   ÚAtest_config_array_api_dispatch_error_numpy.<locals>.mocked_importº   s(   ø€ ØÐ%Ó%Ü“8ˆOÙ˜4Ð1 $Ò1¨&Ñ1Ð1r    rU   Ú__version__z1.20zNumPy must be 1.21 or newerrV   TrX   N)rY   rU   rZ   ÚsklearnÚutilsÚ
_array_apiÚnumpyr   r   rM   r   r   r[   s     @r!   Ú*test_config_array_api_dispatch_error_numpyrg   µ   s¯   ø€ ô ×%Ñ%€Kõ2ð
 ×Ñœ ,°Ô>Ø×ÑœŸ™×0Ñ0×6Ñ6¸ÀvÔNä	�Š”{Ð*GÓ	HÜ¨tÓ4Ø÷ 5÷ 
Iô 
�Š”{Ð*GÓ	HÜ dÒ+÷ 
IÐ	H÷ 5Õ4ú÷ 
IÕ	Hú÷ 
IÕ	Hús0   Á=
CÂCÂ	CÂ2
C'Ã
C	ÃCÃ
C$Ã'
C5)rY   r)   Úconcurrent.futuresr   r   rc   r   r   r   Úsklearn.utils.fixesr   Úsklearn.utils.parallelr   r	   r"   r%   r'   r,   ÚmarkÚparametrizerA   ÚxfailrH   r]   rg   r   r    r!   Ú<module>rn      s�   ðÛ Û Ý 1ã ã ß :Ñ :Ý (ß 4òI;òX2ò+ò -ð ‡�×Ñ˜Ò$LÓMñ/ó Nð/ð$ ‡�×Ñ�8Ð$:ÐÐ;ñ/ó <ð/ò",ó*,r    