§
    rŠtj  ã                   ó  — 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                             d
g d¢¦  «        d„ ¦   «         Zej                             e	d¬¦  «        d„ ¦   «         Zd„ ZdS )é    N)ÚThreadPoolExecutor)Úconfig_contextÚ
get_configÚ
set_config)Ú_IS_WASM)ÚParallelÚdelayedc                  óx  — t          ¦   «         d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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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Úspmatrix)Ú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Úsparse_interface©r   r   ©Údo_something_else)r   r   r   ÚpytestÚraisesÚ	TypeErrorÚ	__enter__© ó    úW/var/www/html/CA-Chatbot/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Â:G;ÃC1Ã%G;Ã1C5	Ã5G;Ã8C5	Ã9+G;Ä$)GÅAFÆGÆFÆGÆ"FÆ#GÆ?G;ÇG	ÇG;ÇG	ÇG;Ç;G?ÈG?È?IÉIÉ"IÉ?#J/Ê/J3Ê6J3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'   [   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)   f   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.   v   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©çš™™™™™¹?çš™™™™™É?r6   r7   é   )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_joblibrB   }   s~   € ð 0Ð/Ð/€NØ*Ð*Ð*€Oà/�H˜W¨QÐ/Ñ/Ô/ð 0ð 0å(+¨N¸OÑ(LÔ(Lð0ñ 0ô 0ñ ô €Eð
 Ð.Ð.Ð.Ò.Ð.Ð.Ð.Ð.Ð.r"   zcannot start threads)Úreasonc                  óÆ   — 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`.r4   r5   r8   )Úmax_workersc                 ó   — g | ]}|‘ŒS r!   r!   )r;   Úoutputs     r#   ú
<listcomp>z*test_config_threadsafe.<locals>.<listcomp>š   s(   € ð 
ð 
ð 
àð ð
ð 
ð 
r"   N)r   Úmapr.   )r?   r@   ÚerA   s       r#   Útest_config_threadsaferK   �   sÌ   € ð 0Ð/Ð/€NØ*Ð*Ð*€Oå	¨Ð	*Ñ	*Ô	*ð 
¨að
ð 
àŸ%š%Õ 1°>À?ÑSÔSð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð Ð.Ð.Ð.Ò.Ð.Ð.Ð.Ð.Ð.s   ™'AÁAÁAc                 óœ  — |                       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 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_scipyrV   ¢   sƒ  € à×Ò�œÔ0Ô6¸ÀxÑPÔPÐPå	Œ•{Ð*IÐ	JÑ	JÔ	Jð ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•{Ð*IÐ	JÑ	JÔ	Jð ,ð ,Ý dÐ+Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,sH   ÁA=ÁA&ÁA=Á&A*	Á*A=Á-A*	Á.A=Á=BÂBÂ#CÃCÃC)r+   Úconcurrent.futuresr   r   rP   r   r   r   Úsklearn.utils.fixesr   Úsklearn.utils.parallelr   r	   r$   r'   r)   r.   ÚmarkÚparametrizerB   ÚxfailrK   rV   r!   r"   r#   ú<module>r]      s;  ðØ €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€à €€€Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø (Ð (Ð (Ð (Ð (Ð (Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðL;ð L;ð L;ð^2ð 2ð 2ð+ð +ð +ð -ð -ð -ð „×Ò˜Ð$LÐ$LÐ$LÑMÔMð/ð /ñ NÔMð/ð$ „×Ò�8Ð$:ÐÑ;Ô;ð/ð /ñ <Ô;ð/ð"	,ð 	,ð 	,ð 	,ð 	,r"   