Ë
    Ï�Dj¤  ã            
       ó  — d dl Z d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d d	l	mZ d d
l	mZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ  edeeg«      d„ «       Z edeeg«      d„ «       Zeed„ «       «       Zeed„ «       «       Z edddg«      d„ «       Zd„ Zd„ Zee eddd e«        e«       g«       edeeg«      d„ «       «       «       «       Z edeeg«      d„ «       Z edeeg«      d„ «       Zy) é    N)Úparallel_config)Úparallel_backend)ÚParallelÚdelayed)ÚBACKENDS)ÚDEFAULT_BACKEND)ÚEXTERNAL_BACKENDS)ÚLokyBackend)ÚThreadingBackend)ÚMultiprocessingBackend)ÚparametrizeÚraises)ÚnpÚ
with_numpy)Úwith_multiprocessing)Úcheck_memmapÚcontextc                 ó&  — t        «       j                  } | d«      }	 t        t        «       j                  t        «      sJ ‚	 |j	                  «        t        t        «       j                  «      t        |«      u sJ ‚y # |j	                  «        w xY w)NÚ	threading)r   Ú_backendÚ
isinstancer   Ú
unregisterÚtype)r   ÚdefaultÚpbs      ú[C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\joblib/test/test_config.pyÚtest_global_parallel_backendr      sl   € ä‹j×!Ñ!€Gá	�Ó	€BðÜœ(›*×-Ñ-Ô/?Ô@Ñ@Ð@à
�‰ŒÜ”“
×#Ñ#Ó$¬¨W«Ñ5Ñ5Ð5øð 	�‰�ús   ž$A> Á>Bc                 óÈ   — d„ }|t         d<   	  | d«      5  t        t        «       j                  t        «      sJ ‚	 d d d «       t         d= y # 1 sw Y   ŒxY w# t         d= w xY w)Nc                  ó   — t         t        d<   y )NÚfoo)r   r   © ó    r   Úregister_fooz,test_external_backends.<locals>.register_foo#   s   € Ü*Œ�Šr"   r    )r	   r   r   r   r   )r   r#   s     r   Útest_external_backendsr$   !   sg   € ò+ð  ,Ô�eÑð%Ù�U‹^ñ 	EÜœh›j×1Ñ1Ô3CÔDÑDÐD÷	Eô ˜eÑ$÷	Eð 	Eûô ˜eÑ$ús!   ŽA –%A¼A ÁAÁA Á	A!c                 óŽ  — t        dd| ¬«      5  t        d¬«      5 }t        |j                  t        «      sJ ‚|j
                  dk(  sJ ‚ |d„ t        j                  j                  d«      gdz  D «       «       t        t        j                  | «      «      dkD  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)	Né   é   ©Ún_jobsÚ
max_nbytesÚtemp_folderÚ	processes)Úpreferc              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­w©N©r   r   ©Ú.0Úas     r   ú	<genexpr>z2test_parallel_config_no_backend.<locals>.<genexpr>9   s   è ø€ ÒK¨1Ð#Œg”lÓ# A×&ÑKùó   ‚!é
   r   )r   r   r   r   r
   r)   r   ÚrandomÚlenÚosÚlistdir©ÚtmpdirÚps     r   Útest_parallel_config_no_backendr>   .   s«   € ô
 
 ¨a¸VÔ	Dñ /Ü˜[Ô)ð 	/¨QÜ˜aŸj™j¬+Ô6Ñ6Ø—8‘8˜q’=Ñ ñ ÑK´·±×1AÑ1AÀ"Ó1EÐ0FÈÑ0JÔKÔKÜ”r—z‘z &Ó)Ó*¨QÒ.Ñ.Ð.÷	/÷/ð /÷	/ð 	/ú÷/ð /ús#   �B;œBB/ÂB;Â/B8	Â4B;Â;Cc           	      ó–  — t        dd| ¬«      5  t        ddd¬«      5 }t        |j                  t        «      sJ ‚|j
                  dk(  sJ ‚t        t        d¬	«      5   |d
„ t        j                  j                  d«      gdz  D «       «       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Né   r'   r(   r&   r,   Ú1M)r)   r-   r*   zExpected np.memmap instance©Úmatchc              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr/   r0   r1   s     r   r4   z;test_parallel_config_params_explicit_set.<locals>.<genexpr>G   s   è ø€ ÒO¨qÐ'”'œ,Ó'¨×*ÑOùr5   r6   )
r   r   r   r   r
   r)   r   Ú	TypeErrorr   r7   r;   s     r   Ú(test_parallel_config_params_explicit_setrF   =   sÀ   € ô 
 ¨a¸VÔ	Dñ PÜ˜Q {¸tÔDð 	PÈÜ˜aŸj™j¬+Ô6Ñ6Ø—8‘8˜q’=Ñ ô œ	Ð)FÔGñ PÙÑO´R·Y±Y×5EÑ5EÀbÓ5IÐ4JÈQÑ4NÔOÔO÷P÷	P÷Pð P÷Pð Pú÷	Pð 	Pú÷Pð Pús:   �B?ž?B3Á1B'ÂB3ÂB?Â'B0Â,B3Â3B<	Â8B?Â?CÚparamr-   Úrequirec                 ó®   — t        t        | › d�¬«      5  t        di | di¤Ž5  t        «        d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz=wrong is not a validrB   Úwrongr!   )r   Ú
ValueErrorr   r   )rG   s    r   Útest_parallel_config_bad_paramsrL   J   sZ   € ô 
”
 U GÐ+@Ð"AÔ	Bñ ÜÑ0  wÐ/Ñ0ñ 	ÜŒJ÷	÷ð ÷	ð 	ú÷ð ús   •A£?®A¿A	ÁAÁAc                  ó$  — t        t        d¬«      5  t        d¬«      5  	 d d d «       d d d «       t        t        d¬«      5  t        d¬«      5  	 d d d «       d d d «       y # 1 sw Y   ŒBxY w# 1 sw Y   ŒFxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nz'only supported when backend is not NonerB   r'   ©Úinner_max_num_threads)Úbackend_param)r   rK   r   r!   r"   r   Ú'test_parallel_config_constructor_paramsrQ   S   s‹   € ô 
”
Ð"KÔ	Lñ Ü°1Ô5ñ 	Ø÷	÷ô 
”
Ð"KÔ	Lñ Ü¨1Ô-ñ 	Ø÷	÷ð ÷	ð 	ú÷ð ú÷
	ð 	ú÷ð úsE   ’A.ŸA"¡A.ÁBÁA:ÁBÁ"A+	Á'A.Á.A7Á:B	Á?BÂBc                  ó–  — t        d¬«      5  t        «       } t        | j                  t        t
           «      sJ ‚| j                  dk(  sJ ‚	 d d d «       t        d¬«      5  t        d¬«      5  t        «       } t        | j                  t        «      sJ ‚| j                  dk(  sJ ‚	 d d d «       d d d «       t        d¬«      5  t        d¬«      5  t        «       } | j                  dk(  sJ ‚| j                  dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒÃxY w# 1 sw Y   ŒuxY w# 1 sw Y   ŒyxY w# 1 sw Y   Œ6xY w# 1 sw Y   y xY w)Nr&   ©r)   r   ©Úbackendéd   )Úverbose)	r   r   r   r   r   r   r)   r   rW   )r=   s    r   Útest_parallel_config_nestedrX   _   s  € ô 
 Ô	"ñ Ü‹JˆÜ˜!Ÿ*™*¤h¬Ñ&?Ô@Ñ@Ø�x‰x˜1Š}Ñˆ}÷ô
 
 Ô	-ñ !Ü AÔ&ñ 	!Ü“
ˆAÜ˜aŸj™jÔ*:Ô;Ñ;Ø—8‘8˜q’=Ñ �=÷	!÷!ô 
 Ô	%ñ !Ü AÔ&ñ 	!Ü“
ˆAØ—9‘9 Ò#Ñ#Ø—8‘8˜q’=Ñ �=÷	!÷!ð !÷ð ú÷	!ð 	!ú÷!ð !ú÷	!ð 	!ú÷!ð !úsS   �?DÁ!D'Á.8DÂ'D'ÃD?Ã-D3Ã>D?ÄDÄD$	Ä D'Ä'D0Ä3D<	Ä8D?Ä?ErU   Úmultiprocessingr   c                 ód   — t        t        d¬«      5   | |d¬«       d d d «       y # 1 sw Y   y xY w)Nz#does not acc.*inner_max_num_threadsrB   r'   rN   )r   ÚAssertionError)r   rU   s     r   Ú1test_threadpool_limitation_in_child_context_errorr\   u   s.   € ô 
”Ð&LÔ	Mñ 2Ù�¨qÕ1÷2÷ 2ñ 2ús   ’&¦/c                 ór  —  | dd¬«      5  t        d ¬«      5 }|j                  dk(  sJ ‚	 d d d «       d d d «        | d¬«      5  t        «       j                  }t        d ¬«      5 }|j                  |k(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   Œ_xY w# 1 sw Y   ŒcxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nr   r&   ©rU   r)   rS   rT   ©r   r)   )r   r=   Údefault_n_jobss      r   Útest_parallel_n_jobs_nonera   €   s´   € ñ 
˜¨QÔ	/ñ !Ü˜TÔ"ð 	! aØ—8‘8˜q’=Ñ �=÷	!÷!ñ 
˜Ô	%ñ .Ü!›×*Ñ*ˆÜ˜TÔ"ð 	. aØ—8‘8˜~Ò-Ñ-Ð-÷	.÷.ð .÷	!ð 	!ú÷!ð !ú÷	.ð 	.ú÷.ð .úsE   ‹B˜B	«BÁ!B-Á%B!Á8B-Â	B	ÂBÂBÂ!B*	Â&B-Â-B6c                 óâ   —  | dd¬«      5   | dd ¬«      5  t        «       5 }|j                  dk(  sJ ‚	 d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   r&   r^   r'   r_   )r   r=   s     r   Ú test_parallel_config_n_jobs_nonerc   Ž   ss   € ñ
 
˜¨QÔ	/ñ %Ù˜[°Ô6ñ 	%ä“ð %˜qØ—x‘x 1’}Ñ$�}÷%÷	%÷%ð %÷%ð %ú÷	%ð 	%ú÷%ð %ús7   ‹A%–A¡A´A¼A%ÁAÁAÁA"	ÁA%Á%A.) r9   Újoblib.parallelr   r   r   r   r   r   r	   Újoblib._parallel_backendsr
   r   r   Újoblib.testingr   r   Újoblib.test.commonr   r   r   Újoblib.test.test_parallelr   r   r$   r>   rF   rL   rQ   rX   r\   ra   rc   r!   r"   r   ú<module>ri      sp  ðÛ 	å +Ý ,ß -å $Ý +Ý -å 1Ý 6Ý <ç .ß -Ý 3Ý 2ñ ˆY˜Ð*:Ð;Ó<ñ6ó =ð6ñ ˆY˜Ð*:Ð;Ó<ñ	%ó =ð	%ð Øñ
/ó ó ð
/ð ØñPó ó ðPñ ˆW�x Ð+Ó,ñó -ðò	ò!ð, ØÙˆYÐ*¨KÙ/Ó1Ñ3CÓ3EðGó HáˆY˜Ð*:Ð;Ó<ñ2ó =óHó ó ð
2ñ ˆY˜Ð*:Ð;Ó<ñ
.ó =ð
.ñ ˆY˜Ð*:Ð;Ó<ñ%ó =ñ%r"   