§
    ¦˜ºh8  ã                   óÌ   — 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
mZ d„ Zd„ Zd„ Zd„ Zej                             d	g d
¢¦  «        d„ ¦   «         Zd„ Zd„ Zd„ ZdS )é    N)ÚThreadPoolExecutor)Úconfig_contextÚ
get_configÚ
set_config)ÚParallelÚdelayedc                  ór  — 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 ¦  «         n# 1 swxY w Y   t          ¦   «         d	         du sJ ‚t          d¬¦  «        5  t          d ¬¦  «        5  t          ¦   «         d	         du sJ ‚	 d d d ¦  «         n# 1 swxY w Y   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 ¦  «         n# 1 swxY w Y   t          ¦   «         d	         du sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          ¦   «         d	         du sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          ¦   «         dddddddddddœ
k    sJ ‚t          j        t
          ¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          d¬
¦  «                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )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__© ó    úa/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/tests/test_config.pyÚtest_config_contextr!      sü  € Ý‰<Œ<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ðð ò ð ð ð õ  Ð&Ñ&Ô&Ð&Ý‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1å	 dÐ	+Ñ	+Ô	+ð 
ð 
Ý‰|Œ|Ø!Ø"Ø"&Ø Ø"'Ø(+Ø+/Ø )Ø',Ø).ð 
ð  
ò 
ð 
ð 
ð 
ð 
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ ‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1å	 dÐ	+Ñ	+Ô	+ð 5ð 5Ý¨$Ð/Ñ/Ô/ð 	9ð 	9Ý‘<”< Ô0°DÐ8Ð8Ð8Ð8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9õ ‰|Œ|˜OÔ,°Ð4Ð4Ð4Ð4å¨%Ð0Ñ0Ô0ð 	:ð 	:Ý‘<”< Ô0°EÐ9Ð9Ð9Ð9å¨dÐ3Ñ3Ô3ð =ð =Ý!‘|”| OÔ4¸Ð=Ð=Ð=Ð=õ ¨Ð.Ñ.Ô.Ð.Ý!‘|”| OÔ4¸Ð<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ ‘<”< Ô0°EÐ9Ð9Ð9Ð9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ ‰|Œ|˜OÔ,°Ð4Ð4Ð4Ð4Ð4ð'5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ* ‰<Œ<ØØØ"ØØ#Ø$'Ø'+Ø%Ø#(Ø%*ðð ò ð ð ð õ 
Œ•yÑ	!Ô	!ð ð Ý�tÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•yÑ	!Ô	!ð ;ð ;Ý¨Ð.Ñ.Ô.×8Ò8Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;sµ   Á BÂB	ÂB	Â8G9Ã	C/Ã#G9Ã/C3	Ã3G9Ã6C3	Ã7+G9Ä")G	ÅAFÆG	ÆFÆG	Æ FÆ!G	Æ=G9Ç	G	ÇG9ÇG	ÇG9Ç9G=È G=È<IÉIÉIÉ<#J,Ê,J0Ê3J0c                  ó  — t          ¦   «         d         du sJ ‚	 t          d¬¦  «        5  t          ¦   «         d         du sJ ‚t          ¦   «         ‚# 1 swxY w Y   n# t          $ r Y nw xY wt          ¦   «         d         du sJ ‚d S )Nr   FTr   )r   r   Ú
ValueErrorr   r   r    Útest_config_context_exceptionr$   X   sÏ   € Ý‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1ðÝ¨$Ð/Ñ/Ô/ð 	ð 	Ý‘<”< Ô0°DÐ8Ð8Ð8Ð8Ý‘,”,Ðð	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	øõ ð ð ð Øˆðøøøå‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1Ð1Ð1s.   šA ª'AÁAÁ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 ¦  «         d S # 1 swxY w Y   d S )Nr   Fr   Tr   )r   r   r   r   r   r   r   r    Útest_set_configr&   c   sO  € Ý‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1Ý˜TÐ"Ñ"Ô"Ð"Ý‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1Ý˜TÐ"Ñ"Ô"Ð"Ý‰<Œ<˜Ô(¨DÐ0Ð0Ð0Ð0Ý˜TÐ"Ñ"Ô"Ð"Ý‰<Œ<˜Ô(¨DÐ0Ð0Ð0Ð0Ý˜UÐ#Ñ#Ô#Ð#Ý‰<Œ<˜Ô(¨EÐ1Ð1Ð1Ð1õ 
Œ•yÑ	!Ô	!ð +ð +Ý TÐ*Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   ÃC0Ã0C4Ã7C4c                 ó¦   — t          | ¬¦  «        5  t          j        |¦  «         t          ¦   «         d         cddd¦  «         S # 1 swxY w Y   dS )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Ñ	4Ô	4ð -ð -ÝŒ
�>Ñ"Ô"Ð"Ý‰|Œ|˜OÔ,ð-ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   ‘(AÁA
ÁA
Úbackend)ÚlokyÚmultiprocessingÚ	threadingc                 óŽ   — g d¢}g d¢} t          | d¬¦  «        d„ t          ||¦  «        D ¦   «         ¦  «        }|g d¢k    sJ ‚dS )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©çš™™™™™¹?çš™™™™™É?r3   r4   é   )r,   Ún_jobsc              3   óX   K  — | ]%\  }} t          t          ¦  «        ||¦  «        V — Œ&d S )N)r   r+   )Ú.0r   Ú	sleep_durs      r    ú	<genexpr>z0test_config_threadsafe_joblib.<locals>.<genexpr>…   sO   è è € ð 0ð 0á$ˆM˜9ð 	#�Õ!Ñ"Ô" =°)Ñ<Ô<ð0ð 0ð 0ð 0ð 0ð 0r   N)r   Úzip)r,   Úassume_finitesÚsleep_durationsÚitemss       r    Útest_config_threadsafe_joblibr?   z   s~   € ð 0Ð/Ð/€NØ*Ð*Ð*€Oà/�H˜W¨QÐ/Ñ/Ô/ð 0ð 0å(+¨N¸OÑ(LÔ(Lð0ñ 0ô 0ñ ô €Eð
 Ð.Ð.Ð.Ò.Ð.Ð.Ð.Ð.Ð.r   c                  óÆ   — g d¢} g d¢}t          d¬¦  «        5 }d„ |                     t          | |¦  «        D ¦   «         }ddd¦  «         n# 1 swxY w Y   |g d¢k    sJ ‚dS )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`.r1   r2   r5   )Úmax_workersc                 ó   — g | ]}|‘ŒS r   r   )r8   Úoutputs     r    ú
<listcomp>z*test_config_threadsafe.<locals>.<listcomp>–   s(   € ð 
ð 
ð 
àð ð
ð 
ð 
r   N)r   Úmapr+   )r<   r=   Úer>   s       r    Útest_config_threadsaferG   �   sÌ   € ð
 0Ð/Ð/€NØ*Ð*Ð*€Oå	¨Ð	*Ñ	*Ô	*ð 
¨að
ð 
àŸ%š%Õ 1°>À?ÑSÔSð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð Ð.Ð.Ð.Ò.Ð.Ð.Ð.Ð.Ð.s   ™'AÁAÁAc                 ó¢  ‡— t           j        Šˆfd„}|                      t           d|¦  «         t          j        t
          d¬¦  «        5  t          d¬¦  «        5  	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  t          d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z=Check error is raised when array_api_compat is not installed.c                 ó6   •— | dk    rt           ‚ ‰| g|¢R i |¤ŽS ©NÚarray_api_compat)ÚImportError©ÚnameÚargsÚkwargsÚorig_imports      €r    Úmocked_importz;test_config_array_api_dispatch_error.<locals>.mocked_import¤   s5   ø€ ØÐ%Ò%Ð%ÝÐØˆ{˜4Ð1 $Ð1Ð1Ð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ð 2ð 2ð 2ð 2ð
 ×Ò� ,°Ñ>Ô>Ð>å	Œ•{Ð*HÐ	IÑ	IÔ	Ið ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•{Ð*HÐ	IÑ	IÔ	Ið ,ð ,Ý dÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,sH   Á
B ÁA)ÁB Á)A-	Á-B Á0A-	Á1B Â BÂBÂ&CÃCÃCc                 óø  ‡— t           j        Šˆfd„}|                      t           d|¦  «         |                      t          j        j        j        dd¦  «         t          j        t          d¬¦  «        5  t          d¬¦  «        5  	 d	d	d	¦  «         n# 1 swxY w Y   d	d	d	¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          d¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z!Check error when NumPy is too oldc                 óD   •— | dk    rt          ¦   «         S  ‰| g|¢R i |¤ŽS rJ   )ÚobjectrM   s      €r    rR   zAtest_config_array_api_dispatch_error_numpy.<locals>.mocked_import¸   s8   ø€ ØÐ%Ò%Ð%Ý‘8”8ˆOØˆ{˜4Ð1 $Ð1Ð1Ð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ð 2ð 2ð 2ð 2ð
 ×Ò� ,°Ñ>Ô>Ð>Ø×Ò�œÔ0Ô6¸ÀvÑNÔNÐNå	Œ•{Ð*GÐ	HÑ	HÔ	Hð ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•{Ð*GÐ	HÑ	HÔ	Hð ,ð ,Ý dÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,sH   Á5B+ÂBÂB+ÂB	ÂB+ÂB	ÂB+Â+B/Â2B/ÃC/Ã/C3Ã6C3)rW   r(   Úconcurrent.futuresr   r   r`   r   r   r   Úsklearn.utils.parallelr   r   r!   r$   r&   r+   ÚmarkÚparametrizer?   rG   r[   rd   r   r   r    ú<module>ri      s  ðØ €€€Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€à €€€Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðI;ð I;ð I;ðX2ð 2ð 2ð+ð +ð +ð -ð -ð -ð „×Ò˜Ð$LÐ$LÐ$LÑMÔMð/ð /ñ NÔMð/ð$/ð /ð /ð",ð ,ð ,ð*,ð ,ð ,ð ,ð ,r   