+
    €",i1 ã            
       ó(  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RIHtHtHt ^ R	IHt ^ R
IHtHtHtHt ^ RI H!t!H"t"H#t#H$t$H%t% ]e   ^ RI&H't' ^ RI(H)t)  ^ RI*t* ^RI,H-t-  ^ RI.t.^ RI/H0t0H1t1H2t2H3t3H4t4 ^ RI5H6t6H7t7H8t8H9t9H:t:HtH;t;H<t<H=t= ]6P|                  ! 4       t?]?P�                  RR4       R.]A! ]6P„                  ! 4       4      ,           tC]C]6 U u. uF  p ]6V ,          ! 4       NK  	  up ,          tC]f   . tDMRR.tD]DR.,           tE]F! ]R4      '       d"   ]CP�                  ]P�                  ! R4      4       R tIR tJR tKR tL ! R R]M4      tNRÁR ltOR tPRÂR ltQR  tRR! tSR" tTR# tU]"! R$]<];.4      ]P¬                  PE                  R%RÃRÄ]:! RÄR&7      3RÅ.. RÆOR'7      ]R( 4       4       4       tW]"! R)]C4      ]"! R*. RÇO4      ]"! R+. RÈO4      R, 4       4       4       tX]"! R)]C4      ]"! R*^^.4      R- 4       4       tY]"! R)]C4      R. 4       tZR/ t[]]"! R0. RÉO4      R2 4       4       t\]]"! R). RÊO4      R3 4       4       t]R4 t^]"! R5]64      ]"! R6]64      R7 4       4       t_R8 t`]R9 4       taR: tb]"! R*. RËO4      R; 4       tc]"! R)]E4      R< 4       td]R= 4       te]]]"! R>. RÌO4      ]"! R?^R@.4      RA 4       4       4       4       tf]"! R)]E4      RB 4       tg]]"! R)]E4      RC 4       4       th]]"! R)]i! ]?4      RD0,
          4      ]"! RERFRG.4      RH 4       4       4       tj]]"! R)]D4      RI 4       4       tk]]"! R)]64      RJ 4       4       tlRK tm]"! R)]64      ]"! RL^. RÍO3^. RÎO3.4      RM 4       4       tn]]"! R)]E4      RN 4       4       toRO tp]]"! R)]D4      RP 4       4       tqRQ trRR tsRS tt]]"! R)]E4      ]P¬                  Pë                  RTRU7      RV 4       4       4       tv ! RW RX]34      twRY tx]"! R)]C4      RZ 4       ty]]"! R)]E4      ]"! R*. RÏO4      R[ 4       4       4       tzR\ t{R] t|]$! ]RJR^RU7      R_ 4       t}R` t~]ERa,          t]EP                  ]�! ^4       Uu. uF  pRbV,          NK  	  up4       ]]"! R)]4      ]"! R$];]<.4      Rc 4       4       4       t‚ ! Rd Re]34      tƒ]"! R$]<];.4      Rf 4       t„]"! R$]<];.4      Rg 4       t…Rh t†Ri t‡ ! Rj Rk]EP                  P`                  4      t‰]=! Rl]‰4       ]]"! R). RÐO4      ]"! R$]<];.4      Rm 4       4       4       tŠ]]"! R*. RÑO4      ]"! R)]E4      ]"! R$]<];.4      Rn 4       4       4       4       t‹Ro tŒ]]"! Rp]E4      ]"! Rq]E4      ]"! R$]<];.4      Rr 4       4       4       4       t�]]"! R$]<];.4      ]"! RsR1R.4      Rt 4       4       4       tŽ]"! Ru. RÒO4      Rv 4       t�]"! Rw. RÓO4      Rx 4       t�]Ry 4       t‘]]]"! R)]D4      Rz 4       4       4       t’R{t“]]"! R)]D4      R| 4       4       t”R}t•R~t–Rt—R€t˜]]"! R)]D]f   . MR.,           4      ]"! R�]–]—]˜.4      ]"! R‚. RÔO4      Rƒ 4       4       4       4       t™R„EP5                  ]EP6                  EP9                  ]EP6                  EP9                  ]EP:                  4      4      R…7      tž]R† 4       tŸR‡EP5                  ]EP6                  EP9                  ]EP6                  EP9                  ]EP:                  4      4      R…7      t ]Rˆ 4       t¡R‰ t¢RŠ t£]]]"! R)]D4      R‹ 4       4       4       t¤RŒ t¥]]R� 4       4       t¦RŽ t§R� t¨]P¬                  PE                  R*. RÕO4      R� 4       t©R‘ tªR’ t«]P¬                  PE                  R*^^.4      ]]"! R)]i! ]?4      RD0,
          4      R“ 4       4       4       t¬]"! R)]C4      ]"! R*. RÖO4      R” 4       4       t­R• t®R– t¯]]"! R)]?4      ]"! RERFRG.4      ]"! R*. RÖO4      R— 4       4       4       4       t°]"! R)]?4      ]"! RERFRG.4      ]"! R*. RÖO4      R˜ 4       4       4       t±]"! R)]?4      ]"! RERFRG.4      ]"! R*. RÖO4      R™ 4       4       4       t²]"! R)]?4      ]"! RšRFRG.4      ]"! R›RFRG.4      ]"! R*. RÖO4      Rœ 4       4       4       4       t³]"! R�. R×O4      ]"! RšRFRG.4      ]"! R›RFRG.4      Rž 4       4       4       t´]]]"! R)]D4      RŸ 4       4       4       tµ]"! R)]f   RR.M. RØO4      R  4       t¶]]"! R)]D4      R¡ 4       4       t·]]"! R$]<];.4      R¢ 4       4       t¸]"! R*^^.4      ]"! R£. RÙO4      R¤ 4       4       t¹]"! R$]<];.4      R¥ 4       tºR¦ t»RÚR§ lt¼]]"! R)RR.4      ]"! R$]<];.4      R¨ 4       4       4       t½RÛR© lt¾]P¬                  EP~                  ]"! R$]<];.4      ]"! R)]f   R.MRR.4      Rª 4       4       4       tÀR« tÁ]"! R)]e   RR.MR.4      ]$! ]-RJ R¬RU7      R­ 4       4       tÂ]"! R$]<];.4      ]$! ].RJR®RU7      R¯ 4       4       tÃ]"! R$]<];.4      R° 4       tÄR± tÅR² tÆR³ tÇR´ tÈ]]]"! R*. RÜO4      Rµ 4       4       4       tÉ]]]"! R¶. RÝO4      ]"! R*^RÄ.4      ]"! R$]<];.4      R· 4       4       4       4       4       tÊ]]"! R*^RÄ.4      ]"! R¸. RÞO4      ]"! R$]<];.4      R¹ 4       4       4       4       tË]]"! R*. RßO4      Rº 4       4       tÌR» tÍRÁR¼ ltÎ]]"! R*^^.4      ]"! R)]D4      ]"! R$]<];.4      R½ 4       4       4       4       tÏ]]"! R*^^.4      ]"! R)]D4      R¾ 4       4       4       tÐ]]P¬                  PE                  R*^^.4      R¿ 4       4       tÑ]]P¬                  PE                  R*^^.4      RÀ 4       4       tÒR#   ]+ d    Rt* E
LØi ; i  ]+ d    Rt- E
Lái ; i  ]+ d    Rt. E
Lìi ; iu up i u upi )àz
Test the parallel module.
N)Únullcontext)Úsqrt©ÚTimeoutError)ÚPicklingError)Úsleep)Úformat_exception)ÚdumpÚloadÚparallel)Úmp)ÚIS_GIL_DISABLEDÚnpÚwith_multiprocessingÚ
with_numpy)Úcheck_subprocess_callÚparametrizeÚraisesÚskipifÚwarns)Úget_reusable_executor)ÚQueue)Úparallel_sum)ÚLokyBackendÚMultiprocessingBackendÚParallelBackendBaseÚSequentialBackendÚThreadingBackend)	ÚBACKENDSÚParallelÚ	cpu_countÚdelayedÚeffective_n_jobsr   Úparallel_backendÚparallel_configÚregister_parallel_backendÚmultiprocessingÚlokyÚ	threadingÚget_contextÚspawnc                  ó8   € \         \        P                  ,          # ©N)r   r   ÚDEFAULT_BACKEND© ó    Ú;/usr/lib/python3/dist-packages/joblib/test/test_parallel.pyÚget_default_backend_instancer1   ^   s   € ô
 ”H×,Ñ,Õ-Ð-r/   c           	      ó2   € \        V R \        V RR4      4      # )Ú_poolÚ_workersN)Úgetattr©Úbackends   &r0   Úget_workersr8   f   s   € Ü�7˜G¤W¨W°jÀ$Ó%GÓHÐHr/   c                 ó   € W,          # r,   r.   )ÚxÚys   &&r0   Údivisionr<   j   s	   € Ø�5€Lr/   c                 ó   € V ^,          # ©é   r.   ©r:   s   &r0   ÚsquarerA   n   s   € Øˆa�4€Kr/   c                   ó*   a € ] tR t^rt o RtR tRtV tR# )ÚMyExceptionWithFinickyInitz,An exception class with non trivial __init__c                ó   € R # r,   r.   )ÚselfÚaÚbÚcÚds   &&&&&r0   Ú__init__Ú#MyExceptionWithFinickyInit.__init__u   s   € Ùr/   r.   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rJ   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r0   rC   rC   r   s   ø‡ € Ù6÷ð r/   rC   Fc                 óL   € V ^8X  d   V'       d   \        RRRR4      h\        hV # )é   rF   rG   rH   rI   )rC   Ú
ValueError)r:   Úcustom_exceptions   &&r0   Úexception_raiserrZ   y   s4   € ØˆA„v÷  ô ' s¨C°°cÓ:ð	
ô ð	
ð
 €Hr/   c                 ó:   € \         P                  ! R 4       \        h)gš™™™™™©?)Útimer   ÚKeyboardInterruptr@   s   &r0   Úinterrupt_raiserr^   ƒ   s   € Ü‡J‚JˆtÔÜ
Ðr/   c                ó0   € V ^,          V,           V,           # )zFA module-level function so that it can be spawn with
multiprocessing.
r.   )r:   r;   Úzs   &&&r0   Úfra   ˆ   s   € ð ˆa�4�!�8�a�<Ðr/   c                  óL   € \        \        P                  ! 4       ^ ,          4      # ©é    )Útyper   Úget_active_backendr.   r/   r0   Ú_active_backend_typerg   �   s   € Ü”×+Ò+Ó-¨aÕ0Ó1Ð1r/   c                 óF   € \        WR 7      ! R \        ^4       4       4      # )©Ún_jobsr7   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   ©r!   rA   ©Ú.0Úis   & r0   Ú	<genexpr>Ú parallel_func.<locals>.<genexpr>”   s   é € ð :Ù$,˜qŒ”Œ˜×Ð£Hùó   ‚"$©r   Úrange)Úinner_n_jobsr7   s   &&r0   Úparallel_funcrv   “   s%   € Ü˜<Õ9ñ :Ü$)¨!¤Hó:ó ð r/   c                  ó(   € \        4       ^ 8”  g   Q hR# ©rd   N)r    r.   r/   r0   Útest_cpu_country   š   s   € Ü‹;˜Œ?ÐŠ?r/   c                  ó(   € \        4       ^ 8”  g   Q hR# rx   ©r"   r.   r/   r0   Útest_effective_n_jobsr|   ž   s   € ÜÓ Ô!Ð!Ò!r/   Úcontextzbackend_n_jobs, expected_n_jobs©rj   )Úidsc                 ó°   € V ! R VR7      ;_uu_ 4        \        RR7      V8X  g   Q h RRR4       \        RR7      ^8X  g   Q hR#   + '       g   i     L%; i)r(   r~   Nr{   )r}   Úbackend_n_jobsÚexpected_n_jobss   &&&r0   Útest_effective_n_jobs_Nonerƒ   ¢   sI   € ñ 
� ^×	4Ö	4ô   tÔ,°Ô?Ð?Ñ?÷ 
5ô
  4Ô(¨AÔ-Ð-Ò-÷ 
5×	4ús   “AÁA	r7   rj   Úverbosec                 ó¨   € \        ^4       Uu. uF  p\        V4      NK  	  up\        WVR7      ! R \        ^4       4       4      8X  g   Q hR# u upi )é   ©rj   r7   r„   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   ©rn   r:   s   & r0   rp   Ú'test_simple_parallel.<locals>.<genexpr>¾   s   é € Ð+¡(˜Q„gŒf„o�a×Ð£(ùrr   N©rt   rA   r   )r7   rj   r„   r:   s   &&& r0   Útest_simple_parallelrŒ   ¸   sM   € ô  % QœxÓ(™x˜!ŒF�1ŽI™xÑ(¬HØ°õ-á+¤%¨¤(Ó+ó-,ô ,ð ,ò ,ùÒ(s   ŽAc                 óÀ  € ^dp\         P                  ! R4      p ! R R\        4      pV! WRR7      pT! \        V4       Uu. uF  p\	        \
        4      ! V4      NK  	  up4       \        4       pVP                   FG  pVP                  V4      ;p	'       g   K  V	P                  4       w  r«VP                  Wº,
          4       KI  	  \        V4      ^8X  g   Q hR# u upi )éd   z(Done\s+\d+ out of \d+ \|)c                   ó*   a € ] tR t^Çt o . tR tRtV tR# )Ú/test_parallel_pretty_print.<locals>.ParallelLogc                ó<   € V P                   P                  V4       R # r,   )ÚmessagesÚappend)rE   Úmsgs   &&r0   Ú_printÚ6test_parallel_pretty_print.<locals>.ParallelLog._printÊ   s   € Ø�M‰M× Ñ  Ö%r/   r.   N)rM   rN   rO   rP   r’   r•   rR   rS   rT   s   @r0   ÚParallelLogr�   Ç   s   ø‡ € Øˆ÷	&ð 	&r/   r—   i'  r‡   N)ÚreÚcompiler   rt   r!   ra   Úsetr’   ÚsearchÚspanÚaddÚlen)r7   rj   Ún_tasksÚpatternr—   Úexecutorro   ÚlensÚmessageÚsrF   rG   s   &&          r0   Útest_parallel_pretty_printr¥   Á   s´   € ð €GÜ�jŠjÐ6Ó7€Gô&”hô &ñ  &À5ÔI€HÙ¤U¨7¤^Ó4¡^ Œg”aŒj˜Žm¡^Ñ4Ô5Ü‹5€DØ×$Ô$ˆØ—‘˜wÓ'Ð'ˆ1×'Ð'Ø—6‘6“8‰DˆAØ�H‰H�Q•UŽOñ %ô ˆt‹9˜Œ>ÐŠ>ùò 5s   ÁCc                 ó”  € VP                  \        P                  ! 4       R RR7       \        P                  ! RR7      ;_uu_ 4       p\        ^V R7      ! R \        ^4       4       4      pV. R
O8X  g   Q h RRR4       X Uu. uFC  pR\        VP                  4      9  g   K  \        VP                  \        4      '       d   KA  VNKE  	  ppV R9   g   \        V \        4      '       d/   R	pV Uu. uF   qE\        VP                  4      9  g   K  VNK"  	  pp\        V4      ^ 8X  g   Q hR#   + '       g   i     L¾; iu upi u upi )ÚnameÚ!some_new_name_for_the_main_thread)Útargetr§   ÚvalueT©Úrecordri   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   r‰   s   & r0   rp   Ú6test_main_thread_renamed_no_warning.<locals>.<genexpr>ä   s   é € ð 6
Ù(0 1ŒG”FŒO˜A×Ð«ùrr   Nzworker timeoutz3multi-threaded, use of fork() may lead to deadlocks)rd   é   é   )Nr&   )Úsetattrr(   Úcurrent_threadÚwarningsÚcatch_warningsr   rt   Ústrr£   Ú
isinstanceÚDeprecationWarningr   rž   )r7   ÚmonkeypatchÚwarninfoÚresultsÚwÚmessage_parts   &&    r0   Ú#test_main_thread_renamed_no_warningr½   ×   s.  € ð ×ÑÜ×'Ò'Ó)ØØ1ð ô ô 
×	 Ò	 ¨×	-Õ	-°Ü !¨WÕ5ñ 6
Ü(-¨a¬ó6
ó 
ˆð š)Ô#Ð#Ñ#÷	 
.ñ óáˆAØ¤3 q§y¡y£>Ñ1ô 	
ô ˜1Ÿ9™9Ô&8×9÷ 	
ˆÙð ð ð Ð+Ô+¬zØÔ'÷0ò 0ð MˆÙ'ÓN™x˜!¼sÀ1Ç9Á9»~Ñ+M—A�A™xˆÐNô
 ˆx‹=˜AÔÐÒ÷9 
.×	-üòùò Os*   Á/D-ÂE Â$E ÃE Ã1EÄEÄ-D=	c                 ó  € \         P                  ! R R7      ;_uu_ 4       p\         P                  ! R4       \        WR7       RRR4       X Uu. uF  qDP                  NK  	  ppV'       ds   V'       di   \
        ;QJ d    R V 4       F  '       d   K   RM	  R M! R V 4       4      p\        '       d   \        V4      ^8¬  M\        V4      ^8H  pT;'       d    T# R# V'       d   Q hR #   + '       g   i     L°; iu upi )Tr«   Úalways)r7   ru   Nc              3   óN   "  € T F  pR VP                   ^ ,          9   x € K  	  R# 5i)zbacked parallel loops cannotN)Úargs)rn   Úeachs   & r0   rp   Ú)_assert_warning_nested.<locals>.<genexpr>
  s!   é € ð 'ÙKSÀ4Ð.°$·)±)¸Aµ,Ö>Ë8ùs   ‚#%F)r³   r´   Úsimplefilterrv   r£   Úallr   rž   )r7   ru   Úexpectedr¹   r»   Úwarnings_are_correctÚwarnings_have_the_right_lengths   &&&    r0   Ú_assert_warning_nestedrÉ     sÉ   € Ü	×	 Ò	 ¨×	-Õ	-°Ü×Ò˜hÔ'Ü˜gÕA÷ 
.ñ $,Ó,¡8˜a—	”	¡8€HÐ,ßßß#&£3ñ 'ÙKSó'§3§3¢3ñ 'ÙKSó'ó $Ð ÷ '6£o”�H“ Ò"¼3¸x»=ÈAÑ;Mð +ð (×JÐJÐ,JÐJáçÐˆ|Ù÷) 
.×	-üò -s    #C+ÁC>Ã+C;	z%parent_backend,child_backend,expectedTc                 ó  aa€ \        ^V R7      ! V3R l\        ^4       4       4       \        ^V R7      ! VV3R l\        ^4       4       4      pV R8X  d   \        V4      '       g   Q hR# \        V4      '       g   Q hR# )r?   ri   c              3   óT   <"  € T F  p\        \        4      ! S^RR7      x € K  	  R# 5i)r¯   F©r7   ru   rÆ   N©r!   rÉ   ©rn   Ú_Úchild_backends   & €r0   rp   Ú0test_nested_parallel_warnings.<locals>.<genexpr>(  s3   øé € ð /ñ ˆAô 	Ô&Ô'Ø!°¸E÷	
ñ 	
ó ùó   ƒ%(c              3   óT   <"  € T F  p\        \        4      ! S^SR7      x € K  	  R# 5i)r?   rÌ   NrÍ   )rn   rÏ   rÐ   rÆ   s   & €€r0   rp   rÑ   0  s3   øé € ð 5ñ ˆAô 	Ô&Ô'Ø!°¸H÷	
ñ 	
ó ùrÒ   r(   N)r   rt   ÚanyrÅ   )Úparent_backendrÐ   rÆ   Úress   &ff r0   Útest_nested_parallel_warningsr×     sq   ù€ ô �A˜~Õ.ô /ô �q”ó	/ô ô ˜! ^Õ
4õ 5ô �q”ó	5ó €Cð ˜Ô$Ü�3�xŠxˆŠxä�3�xŠxˆŠxr/   c                 ó¤   € R .pR p\         P                  ! W!3R7      pVP                  4        VP                  4        V^ ,          '       g   Q hR# )Fc                 ó
  € \         P                  ! R R7      ;_uu_ 4       p\        ^R7      ! R \        ^4       4       4       RRR4       \	        \        X4      4       \        V4      ^ 8H  V ^ &   R#   + '       g   i     L7; i)Tr«   r~   c              3   óL   "  € T F  p\        \        4      ! R 4      x € K  	  R# 5i)çš™™™™™¹?N©r!   r   ©rn   rÏ   s   & r0   rp   ÚPtest_background_thread_parallelism.<locals>.background_thread.<locals>.<genexpr>F  s   é € ÐE¹H°qœw¤uœ~¨c×2Ð2»Hùrr   N)r³   r´   r   rt   Úprintrž   )Úis_run_parallelr¹   s   & r0   Úbackground_threadÚ=test_background_thread_parallelism.<locals>.background_threadD  sY   € Ü×$Ò$¨D×1Õ1°XÜ˜AÕÑE¼EÀ!¼HÓEÔE÷ 2äŒc�(‹mÔÜ  ›]¨aÑ/ˆ˜Ó÷ 2×1ús    #A2Á2B	)r©   rÁ   N)r(   ÚThreadÚstartÚjoin)r7   rà   rá   Úts   &   r0   Ú"test_background_thread_parallelismrç   ?  sI   € ð �g€Oò0ô 	×ÒÐ 1Ð8JÔK€AØ‡G�G„IØ‡F�F„HØ˜1×ÔÐÒr/   c                 óL   € \        ^V R7      ! R \        ^4       4       4       R# )r?   ri   c              3   óL   "  € T F  p\        \        4      ! R 4      x € K  	  R# 5i©ç{®Gáz„?Nrl   rÝ   s   & r0   rp   Únested_loop.<locals>.<genexpr>Q  s   é € Ð'PÁxÀ!¬´¬¸×(=Ð(=Ãxùrr   Nrs   r6   s   &r0   Únested_looprí   P  s   € Ü�A˜wÕ'Ñ'PÄuÈQÄxÓ'PÖPr/   rÐ   rÕ   c                 óT   a€ \        ^V R7      ! V3R l\        ^4       4       4       R# )r?   ri   c              3   óN   <"  € T F  p\        \        4      ! S4      x € K  	  R # 5ir,   )r!   rí   rÎ   s   & €r0   rp   Ú#test_nested_loop.<locals>.<genexpr>W  s!   øé € ð /Ù5=°Œ”Ô˜]×+Ð+³Xùó   ƒ"%Nrs   )rÕ   rÐ   s   &fr0   Útest_nested_looprò   T  s%   ø€ ô �A˜~Õ.ô /Ü5:¸1´Xó/ö r/   c                 ó   € \         hr,   )rX   r6   s   &r0   Úraise_exceptionrô   \  s   € Ü
Ðr/   c            
      ó0  € \        \        4      ;_uu_ 4        \        ^RR7      ;_uu_ 4       p V ! \        \        4      ! R4      \        \
        4      ! R4      .4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r?   r'   ri   N)r   rX   r   r!   rí   rô   )r   s    r0   Ú)test_nested_loop_with_exception_with_lokyrö   `  s]   € ä	”
×	Õ	Ü˜Q¨×/Õ/°8Ù”gœkÔ*¨6Ó2´G¼OÔ4LÈVÓ4TÐUÔV÷ 0÷ 
Ñ	ß/×/ú÷ 
×	Ð	ús"   ˜B®1A1	ÁBÁ1BÁ<BÂB	c                 óœ   a € \        ^R7      o \        ^RR7      ! V 3R l\        ^4       4       4       S P                  4       '       g   Q hR# )z1Input is mutable when using the threading backend)Úmaxsizer(   ri   c              3   óZ   <"  € T F   p\        SP                  4      ! ^4      x € K"  	  R# 5i©r¯   N)r!   Úput)rn   rÏ   Úqs   & €r0   rp   Ú1test_mutate_input_with_threads.<locals>.<genexpr>j  s!   øé € Ð+PÁxÀ!¬G°A·E±E¬N¸1×,=Ð,=Ãxùs   ƒ(+N)r   r   rt   Úfull)rü   s   @r0   Útest_mutate_input_with_threadsrÿ   g  s5   ø€ ä�aÔ€AÜ�A˜{Õ+Ô+PÄuÈQÄxÓ+PÔPØ�6‰6�8Š8€OŠ8r/   c                óœ   € \        ^
4      pV Uu. uF  p\        V^R7      NK  	  up\        V R7      ! R V 4       4      8X  g   Q hR# u upi )z.Check the keyword argument processing of pmap.©r;   r~   c              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5i©r¯   r  N©r!   ra   r‰   s   & r0   rp   Ú'test_parallel_kwargs.<locals>.<genexpr>r  s!   é € ð ?Ù$'˜qŒ”Œ
�1˜×Ñ£Cùó   ‚$&N)rt   ra   r   )rj   Úlstr:   s   &  r0   Útest_parallel_kwargsr  n  sP   € ô �‹)€CÙ"Ó#™s˜!ŒAˆa�1�I™sÑ#¤x°vÕ'>ñ ?Ù$'ó?ó (ô ð ò ùÒ#s   �A	c                 ó8  € \        ^
4      pV Uu. uF  p\        V^R7      NK  	  pp\        ^V R7      ;_uu_ 4       pVP                  pW4! R V 4       4      8X  g   Q hW4! R V 4       4      8X  g   Q h\        e%   \        V4      \        VP                  4      J g   Q hRRR4       \        e   \        XP                  4      e   Q hVX! R V 4       4      8X  g   Q h\        e   \        VP                  4      e   Q hR# R# u upi   + '       g   i     Lq; i)é
   r  ri   c              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5ir  r  r‰   s   & r0   rp   Ú3test_parallel_as_context_manager.<locals>.<genexpr>ƒ  ó   é € Ð=¹°AœW¤QœZ¨¨Q×/Ñ/»ùr  c              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5ir  r  r‰   s   & r0   rp   r  „  r  r  Nc              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5ir  r  r‰   s   & r0   rp   r  �  s   é € Ð9±S°œ¤œ A¨×+Ñ+³Sùr  )rt   ra   r   Ú_backendr   r8   )r7   r  r:   rÆ   ÚpÚmanaged_backends   &     r0   Ú test_parallel_as_context_managerr  w  sý   € ä
�‹)€CÙ#&Ó'¡3˜a”�!�q—	¡3€HÐ'ä	˜ G×	,Õ	,°ð Ÿ*™*ˆð ˜1Ñ=¹Ó=Ó=Ô=Ð=Ð=Ø˜1Ñ=¹Ó=Ó=Ô=Ð=Ð=ô Š>Ü˜Ó/´;¸q¿z¹zÓ3JÓJÐJÐJ÷ 
-ô  
‚~Ü˜1Ÿ:™:Ó&Ò.Ð.Ð.ð ‘qÑ9±SÓ9Ó9Ô9Ð9Ð9Ü	‚~Ü˜1Ÿ:™:Ó&Ò.Ð.Ò.ñ ùò/ (ç	,×	,ús   �D½A#D	Ä	D	c                 óÞ   a €  ! R R\         4      o \        \        RR7      ;_uu_ 4        \        ^RR7      ! V 3R l\	        ^
4       4       4       RRR4       R#   + '       g   i     R# ; i)	zXCheck that pmap captures the errors when it is passed an object
that cannot be pickled.
c                   ó&   a € ] tR tRt o R tRtV tR# )Ú1test_parallel_pickling.<locals>.UnpicklableObjecti›  c                ó   € \        R 4      h)Ú123)ÚRuntimeError©rE   s   &r0   Ú
__reduce__Ú<test_parallel_pickling.<locals>.UnpicklableObject.__reduce__œ  s   € Ü˜uÓ%Ð%r/   r.   N)rM   rN   rO   rP   r  rR   rS   rT   s   @r0   ÚUnpicklableObjectr  ›  s   ø‡ € ÷	&ð 	&r/   r  zthe task to send©Úmatchr'   ri   c              3   óX   <"  € T F  p\        \        4      ! S! 4       4      x € K!  	  R # 5ir,   ©r!   Úid)rn   rÏ   r  s   & €r0   rp   Ú)test_parallel_pickling.<locals>.<genexpr>   s$   øé € ð +
Ù6?°ŒG”BŒKÑ)Ó+×,Ð,³iùs   ƒ'*N)Úobjectr   r   r   rt   )r  s   @r0   Útest_parallel_picklingr%  •  sN   ø€ ô&œFô &ô 
”Ð%8×	9Ö	9Ü˜ 6Õ*ô +
Ü6;¸B´ió+
ô 	
÷ 
:×	9×	9Ò	9ús   ª'AÁA,	Ú	byteorderÚ
max_nbytesÚ1Mc                 ó˜  aa€ R  o\         P                  ! ^4      P                  R4      P                  V  R24      oSP                  P
                  p\        ^RVR7      ! VV3R l\        ^4       4       4      pV FI  w  rEWR8X  g   Q hWTP                  P
                  8X  g   Q h\         P                  P                  SV4       KK  	  R# )c                 ó0   € W P                   P                  3# r,   )Údtyper&  r@   s   &r0   Úinspect_byteorderÚ=test_parallel_byteorder_corruption.<locals>.inspect_byteorderª  s   € Ø—'‘'×#Ñ#Ð#Ð#r/   Úi4r'   )rj   r7   r'  c              3   óF   <"  € T F  p\        S4      ! S4      x € K  	  R # 5ir,   ©r!   )rn   rÏ   r,  r:   s   & €€r0   rp   Ú5test_parallel_byteorder_corruption.<locals>.<genexpr>±  s#   øé € ð GÙ/7¨!ŒÐ!Ô" 1×%Ð%«xùó   ƒ!N)r?   é   )
r   ÚarangeÚreshapeÚviewr+  r&  r   rt   ÚtestingÚassert_array_equal)r&  r'  Úinitial_np_byteorderÚresultÚ
x_returnedÚbyteorder_in_workerr,  r:   s   &&    @@r0   Ú"test_parallel_byteorder_corruptionr=  ¥  s±   ù€ ò
$ô 	�	Š	�!‹×Ñ˜VÓ$×)Ñ)¨Y¨K°rÐ*:Ó;€AàŸ7™7×,Ñ,Ðä˜Q¨¸:ÕFõ GÜ/4°Q¬xóGó €Fó ,2Ñ'ˆ
Ø"Ô:Ð:Ð:Ø"×&6Ñ&6×&@Ñ&@Ô@Ð@Ð@Ü
�
‰
×%Ñ% a¨Ö4ó ,2r/   c                 ón   € \        \        ^V ^R7      ! R \        ^
4       4       4      4      ^
8X  g   Q hR# )r?   ©rj   r7   Útimeoutc              3   óL   "  € T F  p\        \        4      ! R 4      x € K  	  R# 5i)gü©ñÒMbP?NrÜ   r‰   s   & r0   rp   Ú0test_parallel_timeout_success.<locals>.<genexpr>À  s   é € ð <Ù/8¨!”œ”˜u×%Ð%«yùrr   N)rž   r   rt   r6   s   &r0   Útest_parallel_timeout_successrC  »  sB   € ô 	Ü˜A w¸Õ;ñ <Ü/4°R¬yó<ó ó	
ð
 ô	ðò	r/   c                 ó¶   € \        \        4      ;_uu_ 4        \        ^V RR7      ! R \        ^
4       4       4       RRR4       R#   + '       g   i     R# ; i)r?   rë   r?  c              3   óL   "  € T F  p\        \        4      ! ^
4      x € K  	  R# 5i©r
  NrÜ   r‰   s   & r0   rp   Ú-test_parallel_timeout_fail.<locals>.<genexpr>Í  s   é € ð :
Ù(1 1ŒG”EŒN˜2×Ð«	ùrr   N)r   r   r   rt   r6   s   &r0   Útest_parallel_timeout_failrH  È  s@   € ô 
”×	Õ	Ü˜ 7°DÕ9ñ :
Ü(-¨b¬	ó:
ô 	
÷ 
×	×	Ò	úó   ˜%AÁA	Ú
sequentialÚ	return_asÚ	generatorÚgenerator_unorderedc                 ó   € \        \        4      ;_uu_ 4        \        \        ^WRR7      ! R \	        ^
4       4       4      4       RRR4       \        \        ^W^
R7      ! R \	        ^
4       4       4      4       R#   + '       g   i     L?; i)r?   rÛ   )rj   r7   rK  r@  c              3   óL   "  € T F  p\        \        4      ! ^
4      x € K  	  R# 5irF  rÜ   r‰   s   & r0   rp   Ú<test_parallel_timeout_fail_with_generator.<locals>.<genexpr>Ú  s    é € ð RÙ,5 q”œ”˜r×"Ð"«Iùrr   Nc              3   óL   "  € T F  p\        \        4      ! R 4      x € K  	  R# 5irê   rÜ   r‰   s   & r0   rp   rP  á  s    é € ð M
Ù*3 QŒG”EŒN˜4× Ð «)ùrr   )r   r   Úlistr   rt   ©r7   rK  s   &&r0   Ú)test_parallel_timeout_fail_with_generatorrT  Ò  sw   € ô 
”×	Õ	ÜÜ˜A wÈSÕQñ RÜ,1°"¬IóRó ô	
÷ 
ô 	Ü˜ 7ÈÕLñ M
Ü*/°¬)óM
ó 	
ö÷ 
×	ús   ˜.A=Á=B	c                 ó”	  € \         Eeú   \        \        4      ;_uu_ 4        \        ^V R7      ! \	        RR	4       UUu. uF  w  r\        \        4      ! W4      NK  	  upp4       R R R 4       \        \        4      ;_uu_ 4        \        ^V R7      ! R	 Uu. uF  p\        \        4      ! V4      NK  	  up4       R R R 4       \        ^V R7      ;_uu_ 4       p\        VP                  4      f   Q h\        VP                  4      p\        \        4      ;_uu_ 4        T! \	        RR	4       UUu. uF  w  r\        \        4      ! W4      NK  	  upp4       R R R 4       \        VP                  4      f   Q h\        VP                  4      VJg   Q h\        ^
4       Uu. uF  p\        V^R7      NK  	  upV! R \        ^
4       4       4      8X  g   Q h\        VP                  4      p\        \        4      ;_uu_ 4        T! R	 Uu. uF  p\        \        4      ! V4      NK  	  up4       R R R 4       \        VP                  4      f   Q h\        VP                  4      VJg   Q h\        ^
4       Uu. uF  p\        V^R7      NK  	  upV! R \        ^
4       4       4      8X  g4   Q VP                  VP                  VP                  VP                   34       h R R R 4       \        XP                  4      e   Q hMU\        \        4      ;_uu_ 4        \        ^R7      ! R	 Uu. uF  p\        \        4      ! V4      NK  	  up4       R R R 4       \        \        4      ;_uu_ 4        \        ^R7      ! \	        RR	4       UUu. uF  w  r\        \        4      ! W4      NK  	  upp4       R R R 4       \        \"        4      ;_uu_ 4        \        ^^ R7      ! R \        ^4       4       4       R R R 4       R # u uppi   + '       g   i     EL©; iu upi   + '       g   i     ELl; iu uppi   + '       g   i     ELé; iu upi u upi   + '       g   i     EL0; iu upi   + '       g   i     EL˜; iu upi   + '       g   i     ELB; iu uppi   + '       g   i     Lø; i  + '       g   i     R # ; i)
Nri   r  c              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5ir  r  r‰   s   & r0   rp   Ú%test_error_capture.<locals>.<genexpr>  ó!   é € ð >Ù,5 q”œ”
˜1 ×"Ñ"«Iùr  c              3   óP   "  € T F  p\        \        4      ! V^R7      x € K  	  R# 5ir  r  r‰   s   & r0   rp   rW    rX  r  r~   )rj   r„   c              3   óP   "  € T F  p\        \        4      ! VR R7      x € K  	  R# 5i)T)rY   N©r!   rZ   rm   s   & r0   rp   rW  +  s    é € ÐTÉ)ÀQŒWÔ%Ô& q¸4×@Ñ@Ë)ùr  )rd   r¯   )r¯   rd   )r   r   ÚZeroDivisionErrorr   Úzipr!   r<   r]   r^   r8   r  rt   ra   Ú
_iteratingÚn_completed_tasksÚn_dispatched_tasksÚ	_abortingrC   )r7   r:   r;   r   Úoriginal_workerss   &    r0   Útest_error_capturerc  ç  s¾  € ô
 
ƒ~ÜÔ%×&Õ&Ü˜A wÕ/Ü58¸ÀÔ5HÔIÑ5H©T¨Q”œÔ" 1Ö(Ñ5HÒIô÷ 'ô
 Ô%×&Õ&Ü˜A wÕ/Ù7=Ó>±v°!”Ô)Ô*¨1Ö-±vÑ>ô÷ 'ô ˜Q¨×0Õ0°HÜ˜x×0Ñ0Ó1Ò=Ð=Ð=Ü*¨8×+<Ñ+<Ó=ÐäÔ)×*Õ*Ù¼cÀ&È&Ô>QÔRÑ>Q±d°aœ'¤(Ô+¨AÖ1Ñ>QÒRÔS÷ +ô
 ˜x×0Ñ0Ó1Ò=Ð=Ð=ô ˜x×0Ñ0Ó1Ð9IÓIÐIÐIä',¨R¤yÓ1¡y !”A�a˜1—I¡yÑ1±Xñ >Ü,1°"¬Ió>ó 6ô ð ð ô  +¨8×+<Ñ+<Ó=ÐÜÔ)×*Õ*ÙÁÓGÁ¸1œ'Ô"2Ô3°AÖ6ÁÑGÔH÷ +ô ˜x×0Ñ0Ó1Ò=Ð=Ð=ô ˜x×0Ñ0Ó1Ð9IÓIÐIÐIä',¨R¤yÓ1¡y !”A�a˜1—I¡yÑ1±Xñ >Ü,1°"¬Ió>ó 6ô ð ð ×#Ñ#Ø×*Ñ*Ø×+Ñ+Ø×"Ñ"ð	óñ ÷9 1ôN ˜8×,Ñ,Ó-Ò5Ð5Ñ5äÔ%×&Õ&Ü˜AÕÁfÓMÁfÀ¤Ô(8Ô 9¸!Ö <ÁfÑMÔN÷ 'ô
 
Ô!×	"Õ	"Ü˜ÕÄÀFÈFÔ@SÔTÑ@S¹¸œG¤HÔ-¨aÖ3Ñ@SÒTÔU÷ 
#ô 
Ô*×	+Õ	+Ü˜ 1Õ%ÙTÌ%ÐPRÌ)ÓTô	
÷ 
,Ñ	+ùóu J÷ '×&Ð&üò ?÷ '×&Ð&üó S÷ +×*Ð*üò 2ùò H÷ +×*Ð*üò 2÷9 1×0Ð0üòT  N÷ '×&Ð&üó U÷ 
#×	"ú÷ 
,×	+Ð	+úsÿ   ¡P¾ P ÁPÂPÂPÂ5PÃAQ0ÄP9	Ä1 P3ÅP9	ÅA	Q0Æ"QÆ8AQ0ÈQ	ÈQÈ)Q	È0A	Q0É9Q+ÊAQ0ÌR	Ì+RÍ	R	Í/R#Î RÎ+R#Ï$R6Ð PÐP	ÐPÐP0	Ð3P9	Ð9Q
ÑQ0ÑQ	ÑQ(Ñ"Q0Ñ0R	ÒR	Ò	R	ÒR#Ò#R3	Ò6S	c                 ó6  € R
R lp\        ^V R7      ;_uu_ 4       p\        \        RR7      ;_uu_ 4        V! R V! ^ R7       4       4       RRR4       \        \        RR7      ;_uu_ 4        V! R V! ^R7       4       4       RRR4       \        \        RR7      ;_uu_ 4        V! R	 V! ^R7       4       4       RRR4       RRR4       R#   + '       g   i     LŠ; i  + '       g   i     Le; i  + '       g   i     L@; i  + '       g   i     R# ; i)rd   c              3   ó\   "  € \        ^4       F  pW8X  d   \        R4      hVx € K  	  R# 5i)é   úIterator Raising ErrorN)rt   rX   )Úraise_atro   s   & r0   Úmy_generatorÚ1test_error_in_task_iterator.<locals>.my_generator2  s)   é € Ü�r–ˆAØŒ}Ü Ð!9Ó:Ð:ØŒGó ùs   ‚*,ri   rg  r  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   Ú.test_error_in_task_iterator.<locals>.<genexpr>;  ó   é € ÐCÑ*B QŒg”fŒo˜a× Ð Ó*Bùrr   )rh  Nc              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   rl  @  rm  rr   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   rl  D  s   é € ÐDÑ*C QŒg”fŒo˜a× Ð Ó*Cùrr   rc   )r   r   rX   )r7   ri  r  s   &  r0   Útest_error_in_task_iteratorrp  /  sÀ   € ôô 
˜ G×	,Õ	,°ä”JÐ&>×?Ö?ÙÑC©,ÀÕ*BÓCÔC÷ @ô
 ”JÐ&>×?Ö?ÙÑC©,ÀÕ*BÓCÔC÷ @ô ”JÐ&>×?Ö?ÙÑD©,ÀÕ*CÓDÔD÷ @÷ 
-Ñ	,ç?×?ú÷
 @×?ú÷ @×?ú÷ 
-×	,Ð	,úsR   ›DµC	Á!DÁ-C!	Â!DÂ%C4	Â<DÃCÃDÃ!C1Ã,DÃ4DÃ?DÄD	c                 ó6   € V P                  R V,          4       R# )zConsumed %sN)r“   )ÚqueueÚitems   &&r0   Úconsumerrt  G  s   € Ø	‡L�L� Õ%Ö&r/   zbatch_size, expected_queuec                ó¢   a€ \        4       oV3R lp\        ^WR7      ! V3R lV! 4        4       4       SV8X  g   Q h\        S4      ^8X  g   Q hR# )z=Test that with only one job, Parallel does act as a iterator.c               3   ól   <"  € \        ^4       F  p SP                  RV ,          4       V x € K!  	  R# 5i©é   zProduced %iN©rt   r“   ©ro   rr  s    €r0   ÚproducerÚ'test_dispatch_one_job.<locals>.producerx  ó*   øé € Ü�q–ˆAØ�L‰L˜¨Õ*Ô+ØŒGó ùó   ƒ14©rj   Ú
batch_sizer7   c              3   óP   <"  € T F  p\        \        4      ! SV4      x € K  	  R # 5ir,   ©r!   rt  )rn   r:   rr  s   & €r0   rp   Ú(test_dispatch_one_job.<locals>.<genexpr>}  s#   øé € ð ?Ù-7¨Œ”Ô˜% ×#Ð#«Zùó   ƒ#&N)rR  r   rž   )r7   r€  Úexpected_queuer{  rr  s   &&& @r0   Útest_dispatch_one_jobr†  K  sT   ø€ ôV ‹F€Eõô
 �A *Õ>ô ?Ù-5¬Zó?ô ð �NÔ"Ð"Ð"Üˆu‹:˜ÔÐÒr/   c                ót  a€ \         P                  ! 4       pVP                  4       oV3R lp\        ^^^V R7      ! V3R lV! 4        4       4       \        S4      pV^ ,          R8X  g   Q hVR,          P	                  R4      pVR	8”  g   Q hVP	                  R4      pWT8”  g   Q h\        S4      ^8X  g   Q hR# )
zJCheck that using pre_dispatch Parallel does indeed dispatch items
lazily.
c               3   ól   <"  € \        ^4       F  p SP                  RV ,          4       V x € K!  	  R# 5irw  ry  rz  s    €r0   r{  Ú/test_dispatch_multiprocessing.<locals>.producer�  r}  r~  )rj   r€  Úpre_dispatchr7   c              3   óP   <"  € T F  p\        \        4      ! SR 4      x € K  	  R# 5i)rÔ   Nr‚  )rn   rÏ   rr  s   & €r0   rp   Ú0test_dispatch_multiprocessing.<locals>.<genexpr>’  s$   øé € ð FÙ1;¨AŒ”Ô˜% ×'Ð'³ùr„  ú
Produced 0:Nr°   NzConsumed anyú
Produced 3Néÿÿÿÿ)r   ÚManagerrR  r   Úindexrž   )r7   Úmanagerr{  Úqueue_contentsÚfirst_consumption_indexÚproduced_3_indexrr  s   &     @r0   Útest_dispatch_multiprocessingr–  „  s¹   ø€ ô �jŠj‹l€GØ�L‰L‹N€Eõô
 �A !°!¸WÕEô FÙ19´óFô ô ˜%“[€NØ˜!Õ Ô,Ð,Ð,ð -¨RÕ0×6Ñ6°~ÓFÐØ" RÔ'Ð'Ð'à%×+Ñ+¨LÓ9ÐØÔ5Ð5Ð5äˆu‹:˜ÔÐÒr/   c                  óà   € \        ^RRR7      ;_uu_ 4       p V ! R \        R4       4       4       V P                  P                  4       ^8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r?   Úautor(   r  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   Ú/test_batching_auto_threading.<locals>.<genexpr>ª  ó   é € Ð	.¡+˜QŒ'”"Œ+�a�.ˆ.£+ùrr   éˆ  N©r   rt   r  Úcompute_batch_size)r  s    r0   Útest_batching_auto_threadingrŸ  ¤  sR   € ô
 
˜ v°{×	CÕ	CÀqÙ	Ñ	.¤%¨¤+Ó	.Ô.Ø�z‰z×,Ñ,Ó.°!Ô3Ð3Ñ3÷ 
D×	C×	CÒ	Cúó   —:AÁA-	c                 óà   € \        ^RV R7      ;_uu_ 4       pV! R \        R4       4       4       VP                  P                  4       ^ 8”  g   Q h RRR4       R#   + '       g   i     R# ; i)r?   r˜  r  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   Ú2test_batching_auto_subprocesses.<locals>.<genexpr>²  r›  rr   rœ  Nr�  )r7   r  s   & r0   Útest_batching_auto_subprocessesr¤  ®  sT   € ô 
˜ v°w×	?Õ	?À1Ù	Ñ	.¤%¨¤+Ó	.Ô.ð
 �z‰z×,Ñ,Ó.°Ô2Ð2Ñ2÷ 
@×	?×	?Ò	?úr   c                 ó¶   € \        \        4      ;_uu_ 4        \        ^^^ R7      ! R \        ^4       4       4       RRR4       R#   + '       g   i     R# ; i)zCMake sure that exception raised during dispatch are indeed captured)rj   rŠ  r„   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r[  rm   s   & r0   rp   Ú*test_exception_dispatch.<locals>.<genexpr>½  s!   é € ð 7
Ù2;¨QŒGÔ$Ô% a×(Ð(³)ùrr   N)r   rX   r   rt   r.   r/   r0   Útest_exception_dispatchr¨  º  s>   € ä	”
×	Õ	Ü˜¨°AÕ6ñ 7
Ü27¸´)ó7
ô 	
÷ 
×	×	Ò	úrI  c                 óJ   € \        ^R7      ! R \        ^4       4       4       R# )r?   r~   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r[  ©rn   Újs   & r0   rp   Ú(nested_function_inner.<locals>.<genexpr>Ã  s   é € ÐG¹Y¸”wÔ/Ô0°×3Ð3»Yùrr   Nrs   ©ro   s   &r0   Únested_function_innerr¯  Â  s   € Ü�AÕÑG¼UÀ2¼YÓGÖGr/   c                 óJ   € \        ^R7      ! R \        ^4       4       4       R# )r?   r~   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   )r!   r¯  r«  s   & r0   rp   Ú(nested_function_outer.<locals>.<genexpr>Ç  s   é € ÐLÁ)¸Q”wÔ4Ô5°a×8Ð8Ã)ùrr   Nrs   r®  s   &r0   Únested_function_outerr³  Æ  s   € Ü�AÕÑLÄ%ÈÄ)ÓLÖLr/   z'https://github.com/joblib/loky/pull/255©Úreasonc                óž  € \        \        4      ;_uu_ 4       p\        ^V R7      ! R \        ^4       4       4       RRR4       \	        XP
                  VP                  VP                  4      pRP                  V4      pRV9   g   Q hRV9   g   Q hRV9   g   Q h\        VP                  4      \        J g   Q hR#   + '       g   i     Lˆ; i)z£Ensure errors for nested joblib cases gets propagated

We rely on the Python 3 built-in __cause__ system that already
report this kind of information to the user.
ri   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   )r!   r³  rm   s   & r0   rp   Ú1test_nested_exception_dispatch.<locals>.<genexpr>Ô  s!   é € ð ,
Ù7@°!ŒGÔ)Ô*¨1×-Ð-³yùrr   NÚ r³  r¯  rZ   )	r   rX   r   rt   r   re   rª   Útbrå   )r7   ÚexcinfoÚreport_linesÚreports   &   r0   Útest_nested_exception_dispatchr¾  Ê  sª   € ô 
”
×	Ô	˜wÜ˜ 7Õ+ñ ,
Ü7<¸R´yó,
ô 	
÷ 
ô $ G§L¡L°'·-±-ÀÇÁÓL€LØ�W‰W�\Ó"€FØ" fÔ,Ð,Ð,Ø" fÔ,Ð,Ð,Ø Ô'Ð'Ð'ä�—‘Ó¤*Ó,Ð,Ò,÷ 
×	ús   ˜$B<Â<C	c                   ó8   a € ] tR tRt o RtRR ltRR ltRtV tR# )	ÚFakeParallelBackendiã  z8Pretends to run concurrently while running sequentially.Nc                ó>   € V P                  V4      V n        W n        V# r,   )r"   rj   r   )rE   rj   r   Úbackend_argss   &&&,r0   Ú	configureÚFakeParallelBackend.configureæ  s   € Ø×+Ñ+¨FÓ3ˆŒØ ŒØˆr/   c                ón   € V^ 8  d.   \        \        P                  ! 4       ^,           V,           ^4      pV# rc   )Úmaxr   r    ©rE   rj   s   &&r0   r"   Ú$FakeParallelBackend.effective_n_jobsë  s*   € Ø�AŒ:ÜœŸš›¨!Õ+¨fÕ4°aÓ8ˆFØˆr/   )rj   r   rú   )r¯   )	rM   rN   rO   rP   rQ   rÃ  r"   rR   rS   rT   s   @r0   rÀ  rÀ  ã  s   ø‡ € ÙBô÷
ò r/   rÀ  c            	      ó"  € \        \        R R7      ;_uu_ 4        \        RR7       RRR4       \        \        R R7      ;_uu_ 4        \        RR7      ;_uu_ 4         RRR4       RRR4       \        \        R R7      ;_uu_ 4        \        RR7      ;_uu_ 4         RRR4       RRR4       R#   + '       g   i     L’; i  + '       g   i     Lm; i  + '       g   i     Lx; i  + '       g   i     LS; i  + '       g   i     R# ; i)zInvalid backend:r  zunit-testingr6   N)r   rX   r   r$   r.   r/   r0   Útest_invalid_backendrÊ  ñ  s    € Ü	”
Ð"4×	5Ö	5Ü˜Õ(÷ 
6ô 
”
Ð"4×	5Ö	5Ü ^×4Ö4Ø÷ 5÷ 
6ô 
”
Ð"4×	5Ö	5Ü ^×4Ö4Ø÷ 5÷ 
6Ñ	5÷ 
6×	5ú÷ 5×4ú÷ 
6×	5ú÷
 5×4ú÷ 
6×	5Ð	5úsS   šB1ÁCÁC	ÁCÂC=ÂC*	ÂC=Â1C	ÃCÃCÃC'	Ã*C:Ã5C=Ã=D	c                 óX  € \        \        4      ;_uu_ 4       p\        ^ V R7      P                  4        RRR4       R\	        XP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        RV R7      P                  4        RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        RV R7      P                  4        RRR4       R\	        VP
                  4      9   g   Q h\        \        4      ;_uu_ 4       p\        RV R7      P                  4        RRR4       R\	        VP
                  4      9   g   Q hR#   + '       g   i     EL4; i  + '       g   i     Lð; i  + '       g   i     L¬; i  + '       g   i     Lh; i)rd   ri   Nz&n_jobs == 0 in Parallel has no meaningç      à?z2.3z$n_jobs could not be converted to intÚinvalid_str)r   rX   r   Ú_initialize_backendrµ   rª   )r7   r»  s   & r0   Útest_invalid_njobsrÏ  þ  s  € ä	”
×	Ô	˜wÜ˜ 7Ô+×?Ñ?ÔA÷ 
à3´s¸7¿=¹=Ó7IÔIÐIÐIä	”
×	Ô	˜wÜ˜ WÔ-×AÑAÔC÷ 
à3´s¸7¿=¹=Ó7IÔIÐIÐIä	”
×	Ô	˜wÜ˜ wÔ/×CÑCÔE÷ 
à1´S¸¿¹Ó5GÔGÐGÐGä	”
×	Ô	˜wÜ˜¨wÔ7×KÑKÔM÷ 
à1´S¸¿¹Ó5GÔGÐGÒG÷ 
×	Ð	ú÷ 
×	ú÷ 
×	ú÷ 
×	ús/   ˜EÁ/E3ÃFÄFÅE0	Å3F	ÆF	ÆF)	c                 ó  € \        WR 7      pVP                  4       ^8X  g   Q hV! R \        ^
4       4       4      p\        ;QJ d%    R \	        V4       4       F  '       d   K   RM	  RM! R \	        V4       4       4      '       g   Q hR# )ri   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   Ú.test_njobs_converted_to_int.<locals>.<genexpr>  s   é € Ð2©	 1ŒG”FŒO˜A×Ð«	ùrr   c              3   óB   "  € T F  w  rV\        V4      8H  x € K  	  R # 5ir,   )rA   )rn   ro   Úrs   &  r0   rp   rÒ    s   é € Ð9©.¡$ !ˆq”F˜1“IŽ~«.ùs   ‚FTN)r   Ú_effective_n_jobsrt   rÅ   Ú	enumerate)r7   rj   r  rÖ   s   &&  r0   Útest_njobs_converted_to_intr×    sh   € ô 	˜Ô0€AØ×ÑÓ  AÔ%Ð%Ð%á
Ñ2¬¨b¬	Ó2Ó
2€Cß‹3Ñ9¬)°C¬.Ó9�3�3Š3Ñ9¬)°C¬.Ó9×9Ò9Ð9Ò9r/   c                  óš   €  \        R \        4       R \        9   g   Q h\        R ,          \        8X  g   Q h \        R  R#   \        R  i ; i)Útest_backendN)r%   rÀ  r   r.   r/   r0   Útest_register_parallel_backendrÚ    sE   € ð%Ü! .Ô2EÔFØ¤Ô)Ð)Ð)Ü˜Õ'Ô+>Ô>Ð>Ñ>ä�^Ò$øŒH�^Ñ$ús   ‚5A Á	A
c                  ó   € \         P                  p \        4       \        4       8X  g   Q h \	        R \
        R ,          RR7       \        4       \        8X  g   Q h V \         n        \        4       \        4       8X  g   Q hR#   T \         n        i ; i)r(   T)Úmake_defaultN)r   r-   rg   r1   r%   r   r   )Údefault_backend_origs    r0   Útest_overwrite_default_backendrÞ  %  sw   € Ü#×3Ñ3ÐÜÓ!Ô%AÓ%CÔCÐCÐCð8Ü! +¬x¸Õ/DÐSWÕXÜ#Ó%Ô)9Ô9Ð9Ñ9ð $8ŒÔ ÜÓ!Ô%AÓ%CÔCÐCÒCøð $8ŒÕ ús   «.B  Â BzOnly without multiprocessingc                  óV  € \        \        R R7      ;_uu_ 4        \        RR7      ! R \        ^4       4       4       RRR4       \	        RR7      ;_uu_ 4        \        4       ! R \        ^4       4       4       RRR4       R#   + '       g   i     LO; i  + '       g   i     R# ; i)z)joblib backend '.*' is not available on.*r  r'   r6   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   Ú2test_backend_no_multiprocessing.<locals>.<genexpr>4  s   é € Ð F¹X¸¤¬¤°×!3Ð!3»Xùrr   Nc              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   rá  8  s   é € Ð8©x¨!”7œ6”? 1×%Ð%«xùrr   )r   ÚUserWarningr   rt   r$   r.   r/   r0   Útest_backend_no_multiprocessingrä  1  sl   € ä	Œ{Ð"M×	NÖ	NÜ˜Õ Ñ F¼UÀ1¼XÓ FÔF÷ 
Oô 
 ×	(Ö	(ÜŒ
Ñ8¬u°Q¬xÓ8Ô8÷ 
)Ñ	(÷	 
O×	Nú÷ 
)×	(Ð	(ús   š#BÁ!BÂB	ÂB(	c                 ó   € V ! V^R7      ;_uu_ 4        \         P                  ! 4       w  r#V^8X  g   Q h\        ^4      ^8X  g   Q h\        4       pVP                  ^8X  g   Q hVR8X  d6   \        V4      \        J g   Q h\        VP                  4      \        J g   Q hMÃVR8X  d6   \        V4      \        J g   Q h\        VP                  4      \        J g   Q hM‡VR8X  d6   \        V4      \        J g   Q h\        VP                  4      \        J g   Q hMKVP                  R4      '       d5   \        V4      \        J g   Q h\        VP                  4      \        J g   Q hRRR4       R#   + '       g   i     R# ; i)r3  r~   r&   r'   r(   Útest_N)r   rf   r"   r   rj   re   r   r  r   r   Ú
startswithrÀ  )r}   Úbackend_nameÚactive_backendÚactive_n_jobsr  s   &&   r0   Úcheck_backend_context_managerrë  ;  s?  € Ù	� a×	(Ö	(Ü(0×(CÒ(CÓ(EÑ%ˆØ Ô!Ð!Ð!Ü Ó" aÔ'Ð'Ð'Ü‹JˆØ�x‰x˜1Œ}Ðˆ}ØÐ,Ô,Ü˜Ó'Ô+AÓAÐAÐAÜ˜Ÿ
™
Ó#Ô'=Ó=Ð=Ñ=Ø˜VÔ#Ü˜Ó'¬;Ó6Ð6Ð6Ü˜Ÿ
™
Ó#¤{Ó2Ð2Ñ2Ø˜[Ô(Ü˜Ó'Ô+;Ó;Ð;Ð;Ü˜Ÿ
™
Ó#Ô'7Ó7Ð7Ñ7Ø×$Ñ$ W×-Ò-Ü˜Ó'Ô+>Ó>Ð>Ð>Ü˜Ÿ
™
Ó#Ô':Ó:Ð:Ð:÷# 
)×	(×	(Ò	(ús   “DE,Ä.4E,Å,E=	:NNNztest_backend_%dc                 óD  a€ V\         9  d   V P                  \         V\        4       \        4       \	        4       8X  g   Q h\        SV4       \        4       \	        4       8X  g   Q h\        ^RR7      ! V3R l\         4       4       \        4       \	        4       8X  g   Q hR# )r?   r(   ri   c              3   ód   <"  € T F%  pV'       d   K  \        \        4      ! SV4      x € K'  	  R # 5ir,   )r!   rë  )rn   rG   r}   s   & €r0   rp   Ú/test_backend_context_manager.<locals>.<genexpr>c  s-   øé € ð ,á1ˆAÜô 	;ŒÔ-Ô.¨w¸×:Ð:Û1ùs   ƒ
0’0N)r   ÚsetitemrÀ  rg   r1   rë  r   Ú all_backends_for_context_manager)r¸   r7   r}   s   &&fr0   Útest_backend_context_managerrñ  T  s‹   ø€ ð ”hÔØ×ÑœH gÔ/BÔCäÓ!Ô%AÓ%CÔCÐCÐCä! '¨7Ô3ô  Ó!Ô%AÓ%CÔCÐCÐCô �A˜{Õ+ô ,å1ó,ô ô  Ó!Ô%AÓ%CÔCÐCÒCr/   c                   ó.   a € ] tR tRt o RtRR ltRtV tR# )ÚParameterizedParallelBackendim  z9Pretends to run conncurrently while running sequentially.Nc                ó0   € Vf   \        R4      hWn        R # )Nzparam should not be None)rX   Úparam)rE   rõ  s   &&r0   rJ   Ú%ParameterizedParallelBackend.__init__p  s   € ØŠ=ÜÐ7Ó8Ð8ØŽ
r/   ©rõ  r,   rL   rT   s   @r0   ró  ró  m  s   ø‡ € ÙC÷ò r/   ró  c                 ó|  € V P                  \        R \        4       \        4       \	        4       8X  g   Q hV! R ^*^R7      ;_uu_ 4        \
        P                  ! 4       w  r#\        V4      \        J g   Q hVP                  ^*8X  g   Q hV^8X  g   Q h\        4       pVP                  ^8X  g   Q hVP                  VJ g   Q hV! R \        ^4       4       4      pRRR4       X\        ^4       Uu. uF  p\        V4      NK  	  up8X  g   Q h\        4       \	        4       8X  g   Q hR#   + '       g   i     LV; iu upi )Úparam_backend)rõ  rj   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   ©r!   r   rm   s   & r0   rp   Ú=test_parameterized_backend_context_manager.<locals>.<genexpr>ƒ  ó   é € Ð7©h¨”GœD”M !×$Ð$«hùrr   N)rï  r   ró  rg   r1   r   rf   re   rõ  r   rj   r  rt   r   )r¸   r}   ré  rê  r  rº   ro   s   &&     r0   Ú*test_parameterized_backend_context_managerrþ  v  s  € à×Ñœ /Ô3OÔPÜÓ!Ô%AÓ%CÔCÐCÐCá	�¨°1×	5Ö	5Ü(0×(CÒ(CÓ(EÑ%ˆÜ�NÓ#Ô'CÓCÐCÐCØ×#Ñ# rÔ)Ð)Ð)Ø Ô!Ð!Ð!Ü‹JˆØ�x‰x˜1Œ}Ðˆ}Ø�z‰z˜^Ó+Ð+Ð+ÙÑ7¬e°A¬hÓ7Ó7ˆ÷ 
6ð ¬¨a¬Ó1© 1”t˜A–w©Ñ1Ô1Ð1Ð1ô  Ó!Ô%AÓ%CÔCÐCÒC÷ 
6×	5üò 2s   ÁBD&Ã.D9Ä&D6	c                 óX  € \        4       \        4       8X  g   Q hV ! \        ^+R7      ^R7      ;_uu_ 4        \        P                  ! 4       w  r\        V4      \        J g   Q hVP                  ^+8X  g   Q hV^8X  g   Q h\        4       pVP                  ^8X  g   Q hVP                  VJ g   Q hV! R \        ^4       4       4      pRRR4       X\        ^4       Uu. uF  p\        V4      NK  	  up8X  g   Q h\        4       \        4       8X  g   Q hR#   + '       g   i     LV; iu upi )é+   r÷  r~   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rû  rm   s   & r0   rp   ÚFtest_directly_parameterized_backend_context_manager.<locals>.<genexpr>˜  rý  rr   N)rg   r1   ró  r   rf   re   rõ  r   rj   r  rt   r   )r}   ré  rê  r  rº   ro   s   &     r0   Ú3test_directly_parameterized_backend_context_managerr  Š  s  € äÓ!Ô%AÓ%CÔCÐCÐCñ 
Ô-°BÔ7À×	BÖ	BÜ(0×(CÒ(CÓ(EÑ%ˆÜ�NÓ#Ô'CÓCÐCÐCØ×#Ñ# rÔ)Ð)Ð)Ø Ô!Ð!Ð!Ü‹JˆØ�x‰x˜1Œ}Ðˆ}Ø�z‰z˜^Ó+Ð+Ð+ÙÑ7¬e°A¬hÓ7Ó7ˆ÷ 
Cð ¬¨a¬Ó1© 1”t˜A–w©Ñ1Ô1Ð1Ð1ô  Ó!Ô%AÓ%CÔCÐCÒC÷ 
C×	Büò 2s   ¶BDÃD'ÄD$	c                  óB   € \        R 4       \        P                  ! 4       # )rÛ   )r   ÚosÚgetpidr.   r/   r0   Úsleep_and_return_pidr  Ÿ  s   € Ü	ˆ#„JÜ�9Š9‹;Ðr/   c                  ó®   € \        4       \        8X  g   Q h\        4       P                  4       ^8X  g   Q h\        ^R7      ! R \	        ^4       4       4      # )r¯   r~   c              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   )r!   r  rÝ   s   & r0   rp   Ú"get_nested_pids.<locals>.<genexpr>«  s   é € ÐPÁxÀ!œgÔ&:Ô;×=Ð=Ãxùó   ‚!#)rg   r   r   rÕ  rt   r.   r/   r0   Úget_nested_pidsr  ¤  sK   € ÜÓ!Ô%5Ô5Ð5Ð5ô ‹:×'Ñ'Ó)¨QÔ.Ð.Ð.ô ˜1ÕÑPÄuÈQÄxÓPÓPÐPr/   c                   ó6   a a€ ] tR tRt oRtV 3R ltRtVtV ;t# )Ú	MyBackendi®  z:Backend to test backward compatibility with older backendsc                ó6   <€ \         \        V `  4       ^ ,          # rc   )Úsuperr  Úget_nested_backend)rE   Ú	__class__s   &€r0   r  ÚMyBackend.get_nested_backend±  s   ø€ ô ”Y Ñ8Ó:¸1Õ=Ð=r/   r.   )	rM   rN   rO   rP   rQ   r  rR   rS   Ú__classcell__)r  rU   s   @@r0   r  r  ®  s   ù‡ € ÙD÷>õ >r/   r  Úback_compat_backendc                 óì   € V ! V4      ;_uu_ 4        \        ^R7      ! R \        ^
4       4       4      pV F  p\        \        V4      4      ^8X  d   K  Q h	  RRR4       R#   + '       g   i     R# ; i)r?   r~   c              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   )r!   r  rÝ   s   & r0   rp   Ú6test_nested_backend_context_manager.<locals>.<genexpr>Ã  s   é € Ð'VÉIÀq¬´Ô(@×(BÐ(BËIùr  N)r   rt   rž   rš   )r}   r7   Ú
pid_groupsÚ	pid_groups   &&  r0   Ú#test_nested_backend_context_managerr  »  sY   € ñ 
�×	Õ	Ü QÕ'Ñ'VÌEÐRTÌIÓ'VÓVˆ
Û#ˆIÜ”s˜9“~Ó&¨!Ö+Ð+Ð+ñ $÷ 
×	×	Ò	ús   ‘>A"ÁA"Á"A3	c                 ó  a aa€ R  o\        ^R7      ! V3R l\        ^
4       4       4       V! S SR7      ;_uu_ 4        \        ^R7      ! V VV3R l\        ^
4       4       4       RRR4       R#   + '       g   i     R# ; i)c                 ó’   € \        4       \        V ,          8X  g   Q h\        V4      p\        4       P	                  4       V8X  g   Q hR # r,   )rg   r   r"   r   rÕ  )Úexpected_backend_typeÚexpected_n_jobs   &&r0   Úcheck_nested_backendÚ?test_nested_backend_in_sequential.<locals>.check_nested_backendÐ  s@   € ô $Ó%¬Ð2GÕ)HÔHÐHÐHô *¨.Ó9ˆÜ‹z×+Ñ+Ó-°Ô?Ð?Ò?r/   r~   c              3   ód   <"  € T F%  p\        S4      ! \        P                  ^4      x € K'  	  R# 5irú   )r!   r   r-   )rn   rÏ   r   s   & €r0   rp   Ú4test_nested_backend_in_sequential.<locals>.<genexpr>Ú  s*   øé € ð ÙLUÀqŒÐ$Ô%¤h×&>Ñ&>À×BÐBËIùs   ƒ-0c              3   óH   <"  € T F  p\        S4      ! SS4      x € K  	  R # 5ir,   r0  )rn   rÏ   r7   r   rj   s   & €€€r0   rp   r#  ß  s$   øé € ð 
ÙDM¸qŒGÐ(Ô)¨'°6×:Ð:ÃIùs   ƒ"Nrs   )r7   rj   r}   r   s   ff&@r0   Ú!test_nested_backend_in_sequentialr%  È  sf   ú€ ò@ô �AÕô ÜLQÐRTÌIóô ñ 
� ×	(Ö	(Ü˜Õö 
ÜDIÈ"ÄIó
ô 	
÷ 
)×	(×	(Ò	(ús   ¾(A0Á0B	c                 óÔ   € V ! V4      ;_uu_ 4       pV \         J d
   VR ,          pV \        J d
   V^ ,          pXP                  V8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r7   N)r$   r#   Únesting_level)r}   Úinner_backendÚexpected_levelÚctxr7   s   &&&  r0   Úcheck_nesting_levelr+  ä  sU   € Ù	�×	Ô	 3Ø”oÓ%Ø˜)•nˆGØÔ&Ó&Ø˜!•fˆGØ×$Ñ$¨Ô6Ð6Ñ6÷ 
 ×	×	Ò	ús   ‘:AÁA'	Úouter_backendr(  c                 ó  a a€ \        S V^ 4       \        ^VR7      ! V V3R l\        ^
4       4       4       S ! S^R7      ;_uu_ 4        \        4       ! V V3R l\        ^
4       4       4       RRR4       R#   + '       g   i     R# ; i)rd   ri   c              3   óR   <"  € T F  p\        \        4      ! SS^4      x € K  	  R# 5irú   ©r!   r+  ©rn   rÏ   r}   r(  s   & €€r0   rp   Ú-test_backend_nesting_level.<locals>.<genexpr>õ  s&   øé € ð .ÙIRÀAŒÔ#Ô$ W¨m¸Q×?Ð?Ëùó   ƒ$'r~   c              3   óR   <"  € T F  p\        \        4      ! SS^4      x € K  	  R# 5irú   r/  r0  s   & €€r0   rp   r1  ú  s&   øé € ð 
ÙMVÈŒGÔ'Ô(¨°-À×CÐCËYùr2  N)r+  r   rt   )r}   r,  r(  s   f&fr0   Útest_backend_nesting_levelr4  í  sk   ù€ ô ˜ °Ô2ä�A˜}Õ-õ .ÜINÈrÌó.ô ñ 
� q×	)Ö	)ÜŒ
õ 
ÜMRÐSUÌYó
ô 	
÷ 
*×	)×	)Ò	)ús   Á	%A8Á8B		Úwith_retrieve_callbackc                 óŒ  aaa€ ^ RI o ! VV3R lR\        4      p\        RV4       R oV ! R4      ;_uu_ 4       p\        ^R7      ! V3R l\	        ^4       4       4       V \
        J d   VR,          P                  ^8X  g   Q hV \        J d   V^ ,          P                  ^8X  g   Q hRRR4       R#   + '       g   i     R# ; i)	rd   Nc                   óR   <a € ] tR tRt o ^ t Zt ZP                  R 4       tRtV t	R# )Ú)test_retrieval_context.<locals>.MyBackendi  c              3  óH   "  € V ;P                   ^,          un         Rx € R# 5irú   r®  r  s   &r0   Úretrieval_contextÚ;test_retrieval_context.<locals>.MyBackend.retrieval_context	  s   é € à�FŠF�a�K�FÝùs   ‚ "r.   N)
rM   rN   rO   rP   ro   Úsupports_retrieve_callbackÚcontextmanagerr:  rR   rS   )rU   Ú
contextlibr5  s   @€€r0   r  r8    s(   ù‡ € ØˆÙ%;Ð"á	×	"Ñ	"ñ	ó 
#ö	r/   r  Ú	retrievalc                 óF   € \        ^R7      ! R \        V 4       4       4      # )r?   r~   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   Ú>test_retrieval_context.<locals>.nested_call.<locals>.<genexpr>  s   é € Ð!C¹(°Q¤'¬"¤+¨a§. .»(ùrr   rs   )Úns   &r0   Únested_callÚ+test_retrieval_context.<locals>.nested_call  s   € Ü˜qÕ!Ñ!C¼%À¼(Ó!CÓCÐCr/   r~   c              3   óF   <"  € T F  p\        S4      ! V4      x € K  	  R # 5ir,   r0  )rn   ro   rD  s   & €r0   rp   Ú)test_retrieval_context.<locals>.<genexpr>  s   øé € ÐE¹H°qœ7 ;Ô/°×2Ð2»Hùr2  r7   )r>  r   r%   r   rt   r$   ro   r#   )r}   r5  r  r*  r>  rD  s   &f  @@r0   Útest_retrieval_contextrH  ÿ  sž   ú€ ó ÷ð Ô$ô ô ˜k¨9Ô5òDñ 
�×	Ô	 Ü˜ÕÔE¼EÀ!¼HÓEÔEØ”oÓ%Ø�y•>×#Ñ# qÔ(Ð(Ð(ØÔ&Ó&Ø�q•6—8‘8˜q”=Ð �=÷ 
×	×	Ò	ús   ºA.B2Â2C	r€  c                 ó†   € \        \        4      ;_uu_ 4        \        V R 7       RRR4       R#   + '       g   i     R# ; i)©r€  N)r   rX   r   rJ  s   &r0   Útest_invalid_batch_sizerK    s$   € ä	”
×	Õ	Ü˜JÕ'÷ 
×	×	Ò	ús	   ˜/¯A 	z)n_tasks, n_jobs, pre_dispatch, batch_sizec                 ó¸   € R VRVRV/p\        V 4       Uu. uF  p\        V4      NK  	  pp\        R/ VB ! R \        V 4       4       4      pWv8X  g   Q hR# u upi )rj   rŠ  r€  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   Ú/test_dispatch_race_condition.<locals>.<genexpr>;  s   é € Ð L¹^¸¤¬¤°×!3Ð!3»^ùrr   Nr.   r‹   )rŸ   rj   rŠ  r€  Úparamsro   rÆ   rº   s   &&&&    r0   Útest_dispatch_race_conditionrP  %  s_   € ð( ˜ °¸lÈJÐW€FÜ#(¨¤>Ó2¡>˜a”�q–	¡>€HÐ2ÜÑ ˜Ò Ñ L¼UÀ7¼^Ó LÓL€GØÔÐÒùò 3s   –Ac                  ó°   € \         P                  ! 4       p \        ^RR7      pVP                  P	                  R4      pVP                  4       pW08X  g   Q hR# )r?   r&   ri   r}   N)r   Úget_start_methodr   Ú_backend_kwargsÚget)Úmp_start_methodr  r}   Ústart_methods       r0   Útest_default_mp_contextrW  ?  sM   € ä×)Ò)Ó+€OÜ˜Ð#4Ô5€AØ×Ñ×#Ñ# IÓ.€GØ×+Ñ+Ó-€LØÔ*Ð*Ò*r/   c                 ó2  a€ V R 8X  d   \         P                  ! R4      p \        P                  P	                  ^*4      pVP                  RR4      o\        P                  ! SSP                  4       \        ^V R7      ! V3R l\        ^4       4       4       R# )r&   r*   iè  ri   c              3   óx   <"  € T F/  p\        \        P                  4      ! SSP                  4      x € K1  	  R # 5ir,   )r!   r   ÚdotÚT)rn   ro   rF   s   & €r0   rp   ÚAtest_no_blas_crash_or_freeze_with_subprocesses.<locals>.<genexpr>^  s'   øé € Ð'RÉÀA¬´·±¬¸¸1¿3¹3×(?Ð(?Ëùs   ƒ7:N)
r   r)   r   ÚrandomÚRandomStateÚrandnrZ  r[  r   rt   )r7   ÚrngrF   s   & @r0   Ú.test_no_blas_crash_or_freeze_with_subprocessesra  H  sr   ø€ ð Ð#Ô#ô —.’. Ó)ˆô �)‰)×
Ñ
 Ó
#€Cð 	�	‰	�$˜Ó€AÜ‡F‚Fˆ1ˆa�c‰c„Nô �A˜wÕ'Ô'RÌÈqÌÓ'RÖRr/   a  from joblib import Parallel, delayed

def square(x):
    return x ** 2

backend = "{}"
if backend == "spawn":
    from multiprocessing import get_context
    backend = get_context(backend)

print(Parallel(n_jobs=2, backend=backend)(
      delayed(square)(i) for i in range(5)))
c                 óÜ   € V R 8X  d1   \         P                  ! 4       R8w  d   \        P                  ! R4       \        P                  V 4      p\        \        P                  RV.^
RR7       R# )r&   ÚforkzVRequire fork start method to use interactively defined functions with multiprocessing.z-cú\[0, 1, 4, 9, 16\]©r@  Ústdout_regexN)	r   rR  ÚpytestÚskipÚ,UNPICKLABLE_CALLABLE_SCRIPT_TEMPLATE_NO_MAINÚformatr   ÚsysÚ
executable)r7   Úcodes   & r0   Ú2test_parallel_with_interactively_defined_functionsrn  q  s[   € ð
 Ð#Ô#¬×(;Ò(;Ó(=ÀÔ(GÜ�Šð.ô	
ô 8×>Ñ>¸wÓG€DÜÜ	�‰˜˜tÐ$¨bÐ?T÷r/   a¼  import sys
# Make sure that joblib is importable in the subprocess launching this
# script. This is needed in case we run the tests from the joblib root
# folder without having installed joblib
sys.path.insert(0, {joblib_root_folder!r})

from joblib import Parallel, delayed

def run(f, x):
    return f(x)

{define_func}

if __name__ == "__main__":
    backend = "{backend}"
    if backend == "spawn":
        from multiprocessing import get_context
        backend = get_context(backend)

    callable_position = "{callable_position}"
    if callable_position == "delayed":
        print(Parallel(n_jobs=2, backend=backend)(
                delayed(square)(i) for i in range(5)))
    elif callable_position == "args":
        print(Parallel(n_jobs=2, backend=backend)(
                delayed(run)(square, i) for i in range(5)))
    else:
        print(Parallel(n_jobs=2, backend=backend)(
                delayed(run)(f=square, x=i) for i in range(5)))
z!def square(x):
    return x ** 2
zcdef gen_square():
    def square(x):
        return x ** 2
    return square
square = gen_square()
zsquare = lambda x: x ** 2
Údefine_funcÚcallable_positionc           
      óÖ  € V R9   d7   V\         8w  g   \        P                  R8X  d   \        P                  ! R4       \
        P                  VV V\        P                  P                  \        P                  P                  \        P                  4      4      R7      pVP                  R4      pVP                  V4       \        \        P                  VP                   .^
RR7       R# )	r&   Úwin32zNot picklable with pickle)ro  r7   rp  Újoblib_root_folderzunpicklable_func_script.pyrd  re  N)r&   r*   )ÚSQUARE_MAINrk  Úplatformrg  rh  Ú)UNPICKLABLE_CALLABLE_SCRIPT_TEMPLATE_MAINrj  r  ÚpathÚdirnameÚjoblibÚ__file__rå   Úwriter   rl  Ústrpath)r7   ro  rp  Útmpdirrm  Ú	code_files   &&&&  r0   Ú0test_parallel_with_unpicklable_functions_in_argsr  ±  s©   € ð Ð.Ô.Ø”{Ô"¤c§l¡l°gÔ&=ä�ŠÐ/Ô0Ü4×;Ñ;ØØØ+ÜŸ7™7Ÿ?™?¬2¯7©7¯?©?¼6¿?¹?Ó+KÓLð	 <ó €Dð —‘Ð8Ó9€IØ‡O�O�DÔÜÜ	�‰˜×*Ñ*Ð+ØØ*÷r/   aý  import sys
import faulthandler
# Make sure that joblib is importable in the subprocess launching this
# script. This is needed in case we run the tests from the joblib root
# folder without having installed joblib
sys.path.insert(0, {joblib_root_folder!r})

from joblib import Parallel, delayed
from functools import partial

class MyClass:
    '''Class defined in the __main__ namespace'''
    def __init__(self, value):
        self.value = value


def square(x, ignored=None, ignored2=None):
    '''Function defined in the __main__ namespace'''
    return x.value ** 2


square2 = partial(square, ignored2='something')

# Here, we do not need the `if __name__ == "__main__":` safeguard when
# using the default `loky` backend (even on Windows).

# To make debugging easier
faulthandler.dump_traceback_later(30, exit=True)

# The following baroque function call is meant to check that joblib
# introspection rightfully uses cloudpickle instead of the (faster) pickle
# module of the standard library when necessary. In particular cloudpickle is
# necessary for functions and instances of classes interactively defined in the
# __main__ module.

print(Parallel(backend="loky", n_jobs=2)(
    delayed(square2)(MyClass(i), ignored=[dict(a=MyClass(1))])
    for i in range(5)
))
)rs  c                 ó¢   € V P                  R 4      pVP                  \        4       \        \        P
                  VP                  .RRR7       R# )z(joblib_interactively_defined_function.pyrd  N)rf  r@  )rå   r{  Ú5INTERACTIVE_DEFINED_FUNCTION_AND_CLASS_SCRIPT_CONTENTr   rk  rl  r|  ©r}  Úscripts   & r0   Ú7test_parallel_with_interactively_defined_functions_lokyr„  ö  s>   € ð
 �[‰[ÐCÓD€FØ
‡L�LÔFÔGÜÜ	�‰˜Ÿ™Ð(Ø*Ø÷r/   a…  import sys
# Make sure that joblib is importable in the subprocess launching this
# script. This is needed in case we run the tests from the joblib root
# folder without having installed joblib
sys.path.insert(0, {joblib_root_folder!r})

from joblib import Parallel, delayed, hash
import multiprocessing as mp
mp.util.log_to_stderr(5)

class MyList(list):
    '''MyList is interactively defined by MyList.append is a built-in'''
    def __hash__(self):
        # XXX: workaround limitation in cloudpickle
        return hash(self).__hash__()

l = MyList()

print(Parallel(backend="loky", n_jobs=2)(
    delayed(l.append)(i) for i in range(3)
))
c                 ó¤   € V P                  R 4      pVP                  \        4       \        \        P
                  VP                  .RR^R7       R# )z)joblib_interactive_bound_method_script.pyz\[None, None, None\]ÚLokyProcess)rf  Ústderr_regexr@  N)rå   r{  Ú9INTERACTIVELY_DEFINED_SUBCLASS_WITH_METHOD_SCRIPT_CONTENTr   rk  rl  r|  r‚  s   & r0   Ú:test_parallel_with_interactively_defined_bound_method_lokyr‰    s?   € à�[‰[ÐDÓE€FØ
‡L�LÔJÔKÜÜ	�‰˜Ÿ™Ð(Ø,Ø#Ø÷	r/   c                  óN   € \        . 4      p \        ^R7      ! V 4      . 8X  g   Q hR# )r?   r~   N)Úiterr   )Úexhausted_iterators    r0   Ú%test_parallel_with_exhausted_iteratorr�  )  s%   € Ü˜b›ÐÜ˜1ÕÐ0Ó1°RÔ7Ð7Ò7r/   c                 óŒ   € \        V \        P                  4      '       g   \        R \	        V 4      4      hV P                  4       # )z#Expected np.memmap instance, got %r)r¶   r   ÚmemmapÚ	TypeErrorre   Úcopy)rF   s   &r0   Úcheck_memmapr’  .  s0   € Ü�aœŸ™×#Ò#ÜÐ=¼tÀA»wÓGÐGØ�6‰6‹8€Or/   c                 ó˜  € R  p\        ^^V R7      ! R V! ^d4       4       4      p\        W!! \        V4      4      4       F$  w  r4\        P                  P                  WC4       K&  	  \        ^^V R7      ! R V! ^d4       4       4      p\        W!! \        V4      4      4       F$  w  r4\        P                  P                  WC4       K&  	  R# )c              3   ó�   "  € \        V 4       F2  p\        P                  ! ^
\        P                  R7      V,          x € K4  	  R# 5i)r
  ©r+  N)rt   r   ÚonesÚfloat32)rC  ro   s   & r0   Úgenerate_arraysÚBtest_auto_memmap_on_arrays_from_generator.<locals>.generate_arrays<  s-   é € Ü�q–ˆAÜ—'’'˜"¤B§J¡JÔ/°!Õ3Ô3ó ùs   ‚AA©rj   r'  r7   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   ©r!   r’  ©rn   rF   s   & r0   rp   Ú<test_auto_memmap_on_arrays_from_generator.<locals>.<genexpr>B  ó"   é € ð @Ù*> QŒ”Ô˜a× Ð Ó*>ùrr   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rœ  r�  s   & r0   rp   rž  K  rŸ  rr   N)r   r]  rž   r   r7  r8  )r7   r˜  rº   r:  rÆ   s   &    r0   Ú)test_auto_memmap_on_arrays_from_generatorr¡  4  s½   € ò4ô ˜a¨A°wÕ?ñ @Ù*9¸#Ô*>ó@ó €Gô   ¨¼¸W»Ó)FÖGÑˆÜ
�
‰
×%Ñ% hÖ7ñ Hô ˜a¨A°wÕ?ñ @Ù*9¸#Ô*>ó@ó €Gô   ¨¼¸W»Ó)FÖGÑˆÜ
�
‰
×%Ñ% hÖ7ó Hr/   c                 ó   € V # r,   r.   )Úargs   &r0   Úidentityr¤  R  s   € Ø€Jr/   c                 óî  a€ V P                  R 4      P                  p\        P                  p\        P
                  ! VRR7      \        P                  ! VRR7      .p\        W14       \        VRR7      o\        ^R7      ! V3R lR 4       4      w  p\        S^,          \        P                  4      '       g   Q hS^,          P                  V8”  g   Q h\        P                  P                  W44       R# )	z	test.mmapÚuint8r•  rÔ  )Ú	mmap_moder~   c              3   óN   <"  € T F  p\        \        4      ! S4      x € K  	  R # 5ir,   )r!   r¤  )rn   rÏ   r�  s   & €r0   rp   Ú.test_memmap_with_big_offset.<locals>.<genexpr>^  s   øé € Ð"JÁcÀ¤7¬8Ô#4°V×#<Ð#<Ãcùrñ   Nrc   )rå   r|  ÚmmapÚALLOCATIONGRANULARITYr   Úzerosr–  r	   r
   r   r¶   r�  Úoffsetr7  r8  )r}  ÚfnameÚsizeÚobjr:  r�  s   &    @r0   Útest_memmap_with_big_offsetr±  V  s´   ø€ ð �K‰K˜Ó$×,Ñ,€EÜ×%Ñ%€DÜ�8Š8�D Ô(¬"¯'ª'°$¸gÔ*FÐ
G€CÜˆÔÜ�% 3Ô'€FÜ Õ"Ô"JÁcÓ"JÓJ�I€VÜ�f˜Q•i¤§¡×+Ò+Ð+Ð+Ø�!�9×Ñ˜dÔ"Ð"Ð"Ü‡J�J×!Ñ! #Ö.r/   c                  ót  € \         P                  ! R R7      ;_uu_ 4       p \        ^^R7      ! R \        ^24       4       4       RRR4       \	        X 4      ^8X  g   Q hV ^ ,          p\        VP                  \        4      '       g   Q h\        VP                  4      R8X  g   Q hR#   + '       g   i     Lk; i)Tr«   )rj   r@  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   ÚFtest_warning_about_timeout_not_supported_by_backend.<locals>.<genexpr>f  s   é € Ð%LÁ)¸Q¤g¬f¤o°a×&8Ð&8Ã)ùrr   Nz’The backend class 'SequentialBackend' does not support timeout. You have set 'timeout=1' in Parallel but the 'timeout' parameter will not be used.)	r³   r´   r   rt   rž   r¶   r£   rã  rµ   )r¹   r»   s     r0   Ú3test_warning_about_timeout_not_supported_by_backendrµ  d  s�   € Ü	×	 Ò	 ¨×	-Õ	-°Ü˜ 1Õ%Ñ%LÄ%ÈÄ)Ó%LÔL÷ 
.äˆx‹=˜AÔÐÐØ��€AÜ�a—i‘i¤×-Ò-Ð-Ð-Üˆq�y‰y‹>ð	ôð ò ÷ 
.×	-ús    $B'Â'B7	c                 ó   € W V&   V# r,   r.   )Ú
input_listr‘  rª   s   &&&r0   Úset_list_valuer¸  q  s   € ØˆuÑØ€Lr/   c                 ó   a€ ^ .^,          o\        V RRR7      ! V3R l\        ^4       4       4      p\        V4      p\        ;QJ d&    R \	        SV4       4       F  '       d   K   RM	  RM! R \	        SV4       4       4      '       g   Q hR# )	rd   rL  r(   ©rj   rK  r7   c              3   óP   <"  € T F  p\        \        4      ! SW4      x € K  	  R # 5ir,   )r!   r¸  )rn   ro   r·  s   & €r0   rp   ÚPtest_parallel_return_order_with_return_as_generator_parameter.<locals>.<genexpr>|  s$   øé € ð QÙ;C°aŒ”Ô 
¨A×1Ð1»8ùr„  c              3   ó.   "  € T F  w  rW8H  x € K  	  R # 5ir,   r.   ©rn   ÚvrÔ  s   &  r0   rp   r¼  ƒ  s   é € Ð:Ñ"9™$˜!ˆqŽvÓ"9ùó   ‚FTN)r   rt   rR  rÅ   r]  )rj   r:  r·  s   & @r0   Ú=test_parallel_return_order_with_return_as_generator_parameterrÁ  v  sv   ø€ ð
 ��q•€JÜ˜V¨{ÀKÕPô QÜ;@À¼8óQó €Fô
 �&‹\€Fç‹3Ñ:¤# j°&Ô"9Ó:�3�3Š3Ñ:¤# j°&Ô"9Ó:×:Ò:Ð:Ò:r/   c                 ó>   € V'       d   \        ^4       \        V 4      # )é   )r   r   )ÚeÚdelays   &&r0   Ú_sqrt_with_delayrÆ  †  s   € ßÜˆbŒ	Ü�‹7€Nr/   c                 ód  a€ \        VR V R7      ! R \        ^
4       4       4      o\        V3R l\        ^	4       4       4      p^ .\        \        ^^
4      4      ,           p\        ;QJ d%    R \        W24       4       F  '       d   K   RM	  RM! R \        W24       4       4      '       g   Q h>R# )rM  rº  c              3   ób   "  € T F%  p\        \        4      ! V^,          V^8H  4      x € K'  	  R# 5i©r?   N)r!   rÆ  rm   s   & r0   rp   ÚK_test_parallel_unordered_generator_returns_fastest_first.<locals>.<genexpr>”  s,   é € ð WÙ;D°aŒÔ Ô! ! Q¥$¨¨a©×1Ð1»9ùs   ‚-/c              3   ó:   <"  € T F  p\        S4      x € K  	  R # 5ir,   )Únext)rn   rÏ   r:  s   & €r0   rp   rÊ  ˜  s   øé € Ð=±H¨qœd 6Ÿl˜l³Hùs   ƒc              3   ó.   "  € T F  w  rW8H  x € K  	  R # 5ir,   r.   r¾  s   &  r0   rp   rÊ  œ  s   é € ÐSÑ"R™$˜!ˆqŽvÓ"RùrÀ  FTN)r   rt   ÚsortedrR  rÅ   r]  )r7   rj   Úquickly_returnedÚexpected_quickly_returnedr:  s   &&  @r0   Ú8_test_parallel_unordered_generator_returns_fastest_firstrÑ  �  s‘   ø€ ô ˜VÐ/DÈgÕVñ WÜ;@À¼9óWó €Fô Ô=´E¸!´HÓ=Ó=Ðà!" ¤d¬5°°B«<Ó&8Õ 8Ðç‹3ÑS¤#Ð&?Ô"RÓS�3�3Š3ÑS¤#Ð&?Ô"RÓS×SÒSÐSÐSâr/   c                 ó   € \        W4       R # r,   )rÑ  ©r7   rj   s   &&r0   Ú7test_parallel_unordered_generator_returns_fastest_firstrÔ  ¡  s   € ô =¸WÖMr/   c                 ó6  € R .^
.^d,          ,           p\        \        4      ;_uu_ 4        \        P                  ! 4       p\        WR7      ! R V 4       4       RRR4       \        P                  ! 4       X,
          pV^8  g   Q hR#   + '       g   i     L7; i)rF   ri   c              3   ó`   "  € T F$  p\        \        P                  4      ! V4      x € K&  	  R # 5ir,   ©r!   r\   r   rm   s   & r0   rp   Ú%test_abort_backend.<locals>.<genexpr>±  s#   é € Ð0XÑQWÈA´¼¿¹Ô1DÀQ×1GÐ1GÓQWùs   ‚,.N)r   r�  r\   r   )rj   r7   ÚdelaysÚt_startÚdts   &&   r0   Útest_abort_backendrÜ  «  sk   € ð ˆU�b�T˜C•ZÕ€FÜ	”	×	Õ	Ü—)’)“+ˆÜ˜Õ0Ñ0XÑQWÓ0XÔX÷ 
ô 
�Š‹�wÕ	€BØ�Œ7€NŠ7÷	 
×	ús   ª/BÂB	c                 óZ   € \         P                  ! \        R4      \        R7      pRV^ &   V# )r†   r•  Fg    €„A)r   r–  ÚintÚbool)r£  r:  s   & r0   Úget_large_objectrà  ¶  s$   € Ü�WŠW”S˜“\¬Ô.€FØ€Fˆ1�IØ€Mr/   c                 óÈ   € \        W VR 7      ;_uu_ 4       pV! R \        ^
4       4       4      p\        V4       \        V4       ?RRR4       R#   + '       g   i     R# ; i))rj   r7   rK  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   )r!   rà  rm   s   & r0   rp   Ú0_test_deadlock_with_generator.<locals>.<genexpr>Ä  s   é € ÐJÁ	¸1œ'Ô"2Ô3°A×6Ð6Ã	ùrr   N)r   rt   rÌ  )r7   rK  rj   r   r:  s   &&&  r0   Ú_test_deadlock_with_generatorrä  À  sH   € ô 
˜¸I×	FÕ	FÈ(ÙÑJÄÀbÄ	ÓJÓJˆÜˆVŒÜˆVŒØ÷	 
G×	F×	FÒ	Fús   –0AÁA!	c                 ó   € \        WV4       R # r,   )rä  )r7   rK  rj   s   &&&r0   Útest_deadlock_with_generatorræ  Ê  s   € ô
 " '°fÖ=r/   c                 óf  € \        \        R R7      ;_uu_ 4        \        W VR7      pV! R \        ^
4       4       4      p\        P                  ! 4       pV! R \        ^d4       4       4      pRRR4       \        P                  ! 4       X,
          ^8  g   Q R4       h?R#   + '       g   i     L;; i)ú)This Parallel instance is already runningr  rS  c              3   óL   "  € T F  p\        \        4      ! ^4      x € K  	  R# 5irú   rÜ   rÝ   s   & r0   rp   Ú/test_multiple_generator_call.<locals>.<genexpr>Û  s   é € Ð:±	¨1”WœU”^ A×&Ð&³	ùrr   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   rê  Ý  s   é € Ð;±
¨1œ¤œ AŸ˜³
ùrr   Nú[The error should be raised immediately when submitting a new task but it took more than 2s.)r   r  r   rt   r\   )r7   rK  rj   r   ÚgrÚ  Úgen2s   &&&    r0   Útest_multiple_generator_callrï  Ò  s�   € ô 
”Ð$O×	PÖ	PÜ˜F¸yÔIˆÙÑ:´°b´	Ó:Ó:ˆÜ—)’)“+ˆÙÑ;´°c´
Ó;Ó;ˆ÷	 
Qô �9Š9‹;˜Õ  1Ô$ð ð	$óÐ$ò
 	
÷ 
Q×	Pús   šAB Â B0	c           
      ó´  € \        W VR 7      ;_uu_ 4       pV! R \        ^
4       4       4      p\        P                  ! 4       p\        \        RR7      ;_uu_ 4        V! R \        ^d4       4       4      pRRR4       \        P                  ! 4       V,
          ^8  g   Q R4       h RRR4       ?R#   + '       g   i     LD; i  + '       g   i     ?R# ; i)rS  c              3   óL   "  € T F  p\        \        4      ! ^
4      x € K  	  R# 5irF  rÜ   rÝ   s   & r0   rp   Ú7test_multiple_generator_call_managed.<locals>.<genexpr>ð  s   é € Ð;±¨A”WœU”^ B×'Ð'³ùrr   rè  r  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   rò  ó  s   é € Ð=±*¨Qœ'¤"œ+ aŸ.˜.³*ùrr   Nrì  )r   rt   r\   r   r  )r7   rK  rj   r   rí  rÚ  Úg2s   &&&    r0   Ú$test_multiple_generator_call_managedrõ  è  s¥   € ô 
�&°Y×	?Õ	?À8ÙÑ;´°r´Ó;Ó;ˆÜ—)’)“+ˆÜ”LÐ(S×TÖTÙÑ=´%¸´*Ó=Ó=ˆB÷ Uô �yŠy‹{˜WÕ$ qÔ(ð 	
ð(ó	
Ñ(÷ 
@ò 	
÷ U×Tú÷ 
@Ö	?ò 	
ús$   –ACÁB2	Á60CÂ2CÂ=CÃC	Úreturn_as_1Úreturn_as_2c           
      óh  € \        W0VR 7      ! R \        ^
4       4       4      p\        W0VR 7      ! R \        ^
^4       4       4      pVR8X  d   \        V4      pVR8X  d   \        V4      p\        ;QJ d/    R \	        V\        ^
4      4       4       F  '       d   K   RM$	  RM ! R \	        V\        ^
4      4       4       4      '       g   Q h\        ;QJ d0    R \	        V\        ^
^4      4       4       F  '       d   K   RM%	  RM!! R \	        V\        ^
^4      4       4       4      '       g   Q hR# )	rS  c              3   óZ   "  € T F!  p\        \        4      ! V^,          4      x € K#  	  R# 5irÉ  rû  rm   s   & r0   rp   Ú9test_multiple_generator_call_separated.<locals>.<genexpr>  s$   é € ð AÙ%. Œ”Œ�a˜•d×Ð£Yùó   ‚)+c              3   óZ   "  € T F!  p\        \        4      ! V^,          4      x € K#  	  R# 5irÉ  rû  rm   s   & r0   rp   rú    s$   é € ð BÙ%2 Œ”Œ�a˜•d×Ð£]ùrû  rM  c              3   ó.   "  € T F  w  rW8H  x € K  	  R # 5ir,   r.   ©rn   rÖ   ro   s   &  r0   rp   rú    s   é € Ð8Ñ&7™F˜CˆsŽxÓ&7ùrÀ  FTc              3   ó.   "  € T F  w  rW8H  x € K  	  R # 5ir,   r.   rþ  s   &  r0   rp   rú    s   é € Ð=Ñ&<™F˜CˆsŽxÓ&<ùrÀ  N)r   rt   rÎ  rÅ   r]  )r7   rö  r÷  rj   rí  rô  s   &&&&  r0   Ú&test_multiple_generator_call_separatedr   þ  sô   € ô 	�°KÕ@ñ AÜ%*¨2¤YóAó 	€Aô 
�&°[Õ	Añ BÜ%*¨2¨r¤]óBó 
€Bð Ð+Ô+Ü�1‹IˆàÐ+Ô+Ü�B‹Zˆç‹3Ñ8¤c¨!¬U°2«YÔ&7Ó8�3�3Š3Ñ8¤c¨!¬U°2«YÔ&7Ó8×8Ò8Ð8Ð8ß‹3Ñ=¤c¨"¬e°B¸«mÔ&<Ó=�3�3Š3Ñ=¤c¨"¬e°B¸«mÔ&<Ó=×=Ò=Ð=Ò=r/   zbackend, errorc                 ó  € V R 8X  d   \         f   \        P                  ! R4       \        ^WR7      pV! R \	        ^
4       4       4      p\
        P                  ! VR 4      pV'       d   \        \        RR7      M	\        4       pT;_uu_ 4        \        P                  ! 4       p\        ^WR7      ! R \	        ^
^4       4       4      pVR	8X  d   \        V4      p\        ;QJ d0    R
 \        V\	        ^
^4      4       4       F  '       d   K   RM%	  RM!! R
 \        V\	        ^
^4      4       4       4      '       g   Q h RRR4       \        P                  ! 4       X,
          ^8  g   Q h^ p	VP                  '       d)   V	^8  d"   V	^,          p	\        P                  ! R4       K:  \        P                  ! 4       V,
          ^8  g   Q hVP                   ! 4       ^8w  d   VP"                  '       g   Q hR# R#   + '       g   i     LÀ; i)r'   NzRequires multiprocessingrS  c              3   óL   "  € T F  p\        \        4      ! ^
4      x € K  	  R# 5irF  rÜ   rm   s   & r0   rp   Ú<test_multiple_generator_call_separated_gc.<locals>.<genexpr>&  s   é € Ð7©Y¨”œ” ×#Ð#«Yùrr   c                  ó   € \        R 4      # )zGenerator collected)rß   r.   r/   r0   Ú<lambda>Ú;test_multiple_generator_call_separated_gc.<locals>.<lambda>'  s
   € ¤uÐ-BÔ'Cr/   z The executor underlying Parallelr  c              3   óZ   "  € T F!  p\        \        4      ! V^,          4      x € K#  	  R# 5irÉ  rû  rm   s   & r0   rp   r  3  s$   é € ð @
Ù)6 AŒG”DŒM˜!˜Q�$×Ð«ùrû  rM  c              3   ó.   "  € T F  w  rW8H  x € K  	  R # 5ir,   r.   rþ  s   &  r0   rp   r  :  s   é € Ð@Ñ*?¡ �3–8Ó*?ùrÀ  FTrÌ  )r   rg  rh  r   rt   ÚweakrefÚfinalizer   r  r   r\   rÎ  rÅ   r]  Úaliver   rÕ  ra  )
r7   rö  r÷  Úerrorr   rí  Úg_wrr*  rÚ  Úretrys
   &&&&      r0   Ú)test_multiple_generator_call_separated_gcr    s’  € ð 	�6Ô¤¢
Ü�ŠÐ.Ô/ô ˜ 7ÔB€HÙÑ7¬U°2¬YÓ7Ó7€AÜ×Ò˜AÑCÓD€D÷ ô 	Œ|Ð#EÕFä‹]ð ÷
 
Šô
 —)’)“+ˆÜ�Q Õ?ñ @
Ü).¨r°2¬ó@
ó 
ˆð Ð/Ô/Ü�q“	ˆAç‹sÑ@¬#¨a´°r¸2³Ô*?Ó@�s�sŠsÑ@¬#¨a´°r¸2³Ô*?Ó@×@Ò@Ð@Ñ@÷ 
ô �9Š9‹;˜Õ  1Ô$Ð$Ð$ð €EØ
�*�*ˆ*˜ œØ��
ˆÜ�
Š
�3ŽÜ�9Š9‹;˜Õ  1Ô$Ð$Ð$à×!Ò!Ó# qÔ(ð ×!×!Ð!Ð!Ò!ñ )÷1 
�ús   ÂAG9Ã'%G9Ä.G9Ä>G9Ç9H		c                 óÒ  € VP                   p\        ^^WR7      ;_uu_ 4       pV! R \        P                  P                  ^
4      .^,           4       4       \	        \
        P                  ! V4      4      ^ 8”  g   Q h RRR4       \        ^d4       F,  p\
        P                  ! V4      '       g    M\        R4       K.  	  \        R4      h\        ^^V R7      pV! R \        P                  P                  ^
4      .^,           4       4       \        ^d4       F-  p\
        P                  ! V4      '       g    R# \        R4       K/  	  \        R4      h  + '       g   i     Lß; i)r?   )rj   r'  r7   Útemp_folderc              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rœ  r�  s   & r0   rp   Ú(test_memmapping_leaks.<locals>.<genexpr>V  s   é € Ð	GÑ,F qŒ'”,Ô
 ×
"Ð
"Ó,Fùrr   NrÛ   z/temporary directory of Parallel was not removedrš  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rœ  r�  s   & r0   rp   r  f  s   é € ÐCÑ(B 1„gŒlÔ˜A×ÐÓ(Bùrr   )
r|  r   r   r]  rž   r  Úlistdirrt   r   ÚAssertionError)r7   r}  r  rÏ   s   &&  r0   Útest_memmapping_leaksr  K  s  € ð �^‰^€Fô 
˜ q°'×	NÕ	NÐRSÙ	Ñ	G¬R¯Y©Y×-=Ñ-=¸bÓ-AÐ,BÀQÖ,FÓ	GÔGô ”2—:’:˜fÓ%Ó&¨Ô*Ð*Ñ*÷	 
Oô �3ŽZˆÜ�zŠz˜&×!Ò!ÙÜˆcŽ
ñ ô
 ÐNÓOÐOô 	˜ a°Ô9€AÙÑC¬¯©×)9Ñ)9¸"Ó)=Ð(>ÀÖ(BÓCÔCä�3ŽZˆÜ�zŠz˜&×!Ò!ÚÜˆcŽ
ñ ô
 ÐNÓOÐO÷1 
O×	Nús   £AEÅE&	c                 ó¦   € \        ^V R7      ! R \        ^
4       4       4      pT\        ^
4       Uu. uF  q"^,          NK  	  up8X  g   Q hR# u upi )r?   ri   c              3   óF   "  € T F  p\        R  4      ! V4      x € K  	  R# 5i)c                 ó   € V ^,          # r>   r.   r@   s   &r0   r  Ú2test_lambda_expression.<locals>.<genexpr>.<lambda>v  s   € ˜!˜Qž$r/   Nr0  rm   s   & r0   rp   Ú)test_lambda_expression.<locals>.<genexpr>u  s    é € ð 2Ù,5 qŒ‘Ô ×"Ð"«Iùs   ‚!Nrs   )r7   rº   ro   s   &  r0   Útest_lambda_expressionr  p  sP   € ô
 ˜a¨Õ1ñ 2Ü,1°"¬Ió2ó €Gð ¤U¨2¤YÓ/¡Y ˜!—t�t¡YÑ/Ô/Ð/Ò/ùÒ/s   ²Ac                ó0  a€ ^pRpRV,          o\        ^
WR7      pV! V3R l\        V4       4       4       VP                  P                  VP                  P                  8X  g   Q hVP                  P
                  VP                  P                  8X  g   Q hV! V3R l\        V4       4       4       VP                  P                  VP                  P                  8X  g   Q hVP                  P
                  VP                  P                  8X  g   Q hR# )zCTest that a parallel backend correctly resets its batch statistics.iô  g       @)r„   rj   r7   c              3   ób   <"  € T F$  p\        \        P                  4      ! S4      x € K&  	  R # 5ir,   r×  ©rn   ro   Ú	task_times   & €r0   rp   Ú6test_backend_batch_statistics_reset.<locals>.<genexpr>„  ó"   øé € Ð>©o¨„gŒd�j‰jÔ˜)×$Ð$«oùó   ƒ,/c              3   ób   <"  € T F$  p\        \        P                  4      ! S4      x € K&  	  R # 5ir,   r×  r   s   & €r0   rp   r"  ‹  r#  r$  N)r   rt   r  Ú_effective_batch_sizeÚ_DEFAULT_EFFECTIVE_BATCH_SIZEÚ_smoothed_batch_durationÚ _DEFAULT_SMOOTHED_BATCH_DURATION)r7   rj   Ún_inputsr  r!  s   &   @r0   Ú#test_backend_batch_statistics_resetr+  {  sà   ø€ ð €FØ€HØ�h•€Iä˜ FÔ<€AÙÔ>¬e°H¬oÓ>Ô>Ø�:‰:×+Ñ+¨q¯z©z×/WÑ/WÔWÐWÐWà	�
‰
×+Ñ+Ø�:‰:×6Ñ6ô	7ðð	7ñ Ô>¬e°H¬oÓ>Ô>Ø�:‰:×+Ñ+¨q¯z©z×/WÑ/WÔWÐWÐWà	�
‰
×+Ñ+Ø�:‰:×6Ñ6ô	7ðò	7r/   c                 óD  € R F´  p\        \        VR7      P                  4      \        4       J g   Q h\        VRR7      p\        VP                  4      \        J g   Q h\        VRR7      p\        VP                  4      \
        J g   Q h\        VRR7      p\        VP                  4      \        J d   K´  Q h	  \        ^RRR7      p\        VP                  4      \
        J g   Q hV ! R^R7      ;_uu_ 4        \        RR	7      p\        VP                  4      \
        J g   Q hVP                  ^8X  g   Q h R
R
R
4       V ! R^R7      ;_uu_ 4        \        ^RR7      p\        VP                  4      \
        J g   Q hVP                  ^8X  g   Q h R
R
R
4       V ! R^R7      ;_uu_ 4        \        RR7      p\        VP                  4      \        J g   Q hVP                  ^8X  g   Q h R
R
R
4       V ! R^R7      ;_uu_ 4        \        ^RR7      p\        VP                  4      \        J g   Q hVP                  ^8X  g   Q h R
R
R
4       R
#   + '       g   i     EL#; i  + '       g   i     LÛ; i  + '       g   i     L”; i  + '       g   i     R
# ; i)r¯   r~   Úthreads©rj   ÚpreferÚ	processesÚ	sharedmem©rj   Úrequirer'   )rj   r7   r/  ©r/  N©r3  )r¯   r?   r�  )re   r   r  r1   r   r   rj   )r}   rj   r  s   &  r0   Ú$test_backend_hinting_and_constraintsr6  “  s  € ó ˆÜ”H FÔ+×4Ñ4Ó5Ô9UÓ9WÓWÐWÐWä˜F¨9Ô5ˆÜ�A—J‘JÓÔ#3Ó3Ð3Ð3ä˜F¨;Ô7ˆÜ�A—J‘JÓ¤;Ó.Ð.Ð.ä˜F¨KÔ8ˆÜ�A—J‘JÓÔ#3Õ3Ð3Ð3ñ ô 	˜ 6°)Ô<€AÜ�—
‘
Óœ{Ó*Ð*Ð*á	� ×	"Ö	"ô ˜IÔ&ˆÜ�A—J‘JÓ¤;Ó.Ð.Ð.Ø�x‰x˜1Œ}Ð‰}÷ 
#ñ 
� ×	"Ö	"ä˜A iÔ0ˆÜ�A—J‘JÓ¤;Ó.Ð.Ð.Ø�x‰x˜1Œ}Ð‰}÷	 
#ñ 
� ×	"Ö	"ô
 ˜[Ô)ˆÜ�A—J‘JÓÔ#3Ó3Ð3Ð3Ø�x‰x˜1Œ}Ð‰}÷ 
#ñ 
� ×	"Ö	"Ü˜A {Ô3ˆÜ�A—J‘JÓÔ#3Ó3Ð3Ð3Ø�x‰x˜1Œ}Ð‰}÷ 
#Ñ	"÷- 
#×	"Ð	"ú÷ 
#×	"ú÷ 
#×	"ú÷ 
#×	"Ð	"ús2   Ã:?IÅA I(Æ/?I;È	A JÉI%	É(I8	É;J	ÊJ	r/  c                 óT  € \        ^
4       Uu. uF  q"^,          NK  	  pp\        WR7      ! R \        ^
4       4       4      pWC8X  g   Q h\        WR7      ;_uu_ 4        \        4       ! R \        ^
4       4       4      pRRR4       WC8X  g   Q hR# u upi   + '       g   i     L; i)r
  r.  c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   Ú6test_backend_hinting_always_running.<locals>.<genexpr>Ê  s   é € ð 5Ù$-˜qŒ”Œ˜×Ð£Iùrr   )r/  rj   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   rl   rm   s   & r0   rp   r9  Ð  s   é € ÐC¹°AœW¤Vœ_¨Q×/Ð/»ùrr   N)rt   r   r$   )rj   r/  ro   Úexpected_resultsrº   s   &&   r0   Ú#test_backend_hinting_always_runningr<  Ã  s�   € ô
 ',¨B¤iÓ0¡i ˜1Ÿ˜¡iÐÐ0ä˜fÕ4ñ 5Ü$)¨"¤Ió5ó €Gð Ô&Ð&Ð&ä	 ×	6Ö	6Ü”*ÑC¼¸r¼ÓCÓCˆ÷ 
7àÔ&Ð&Ò&ùò 1÷ 
7×	6ús   ŽBÁ!BÂB'	c                 ó’  €  ! R  R\         4      pV! V! 4       4      ;_uu_ 4        \        ^RR7      p\        VP                  4      VJ g   Q h\        ^RR7      p\        VP                  4      VJ g   Q h RRR4        ! R R\         4      pV! V! 4       4      ;_uu_ 4        \        ^RR7      p\        VP                  4      VJ g   Q hV P	                  4       w  rVVR	8X  g   Q hVR	8X  g   Q h\        ^R^
R
7      p\        VP                  4      \
        J g   Q hV P	                  4       w  rVRpVP                  4       V8X  g   Q hVR	8X  g   Q h RRR4       \        \        4      ;_uu_ 4        \        V! 4       RR7       RRR4       R#   + '       g   i     EL ; i  + '       g   i     LX; i  + '       g   i     R# ; i)c                   ó4   a € ] tR tRt o RtRtR tR tRtV t	R# )Ú[test_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomThreadingBackendiØ  Tc                ó   € R # r,   r.   r  s   &r0   Úapply_asyncÚgtest_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomThreadingBackend.apply_asyncÜ  ó   € Ùr/   c                ó   € V# r,   r.   rÇ  s   &&r0   r"   Últest_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomThreadingBackend.effective_n_jobsß  ó   € ØˆMr/   r.   N©
rM   rN   rO   rP   Úsupports_sharedmemÚuse_threadsrA  r"   rR   rS   rT   s   @r0   ÚMyCustomThreadingBackendr?  Ø  s   ø‡ € Ø!ÐØˆò	÷	ð 	r/   rJ  r0  r.  r1  r2  Nc                   ó4   a € ] tR tRt o RtRtR tR tRtV t	R# )Ú\test_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomProcessingBackendié  Fc                ó   € R # r,   r.   r  s   &r0   rA  Úhtest_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomProcessingBackend.apply_asyncí  rC  r/   c                ó   € V# r,   r.   rÇ  s   &&r0   r"   Úmtest_backend_hinting_and_constraints_with_custom_backends.<locals>.MyCustomProcessingBackend.effective_n_jobsð  rF  r/   r.   NrG  rT   s   @r0   ÚMyCustomProcessingBackendrL  é  s   ø‡ € Ø"ÐØˆò	÷	ð 	r/   rQ  r¹  )rj   r3  r„   z…Using ThreadingBackend as joblib backend instead of MyCustomProcessingBackend as the latter does not provide shared memory semantics.©r7   r3  )	r   r   re   r  Ú
readouterrr   Ústripr   rX   )Úcapsysr}   rJ  r  rQ  ÚoutÚerrrÆ   s   &&      r0   Ú9test_backend_hinting_and_constraints_with_custom_backendsrX  Ô  sƒ  € ôÔ#6ô ñ 
Ñ)Ó+×	,Õ	,Ü˜A kÔ2ˆÜ�A—J‘JÓÐ#;Ó;Ð;Ð;ä˜A {Ô3ˆÜ�A—J‘JÓÐ#;Ó;Ð;Ñ;÷ 
-ôÔ$7ô ñ 
Ñ*Ó,×	-Õ	-Ü˜A kÔ2ˆÜ�A—J‘JÓÐ#<Ó<Ð<Ð<à×$Ñ$Ó&‰ˆØ�bŒyÐˆyØ�bŒyÐˆyä˜A {¸BÔ?ˆÜ�A—J‘JÓÔ#3Ó3Ð3Ð3à×$Ñ$Ó&‰ˆð8ð 	ð
 �y‰y‹{˜hÔ&Ð&Ð&Ø�bŒyÐ‰y÷% 
.ô( 
”
×	Õ	ÜÑ2Ó4¸kÕJ÷ 
Ñ	÷K 
-×	,Ð	,ú÷" 
.×	-ú÷( 
×	Ð	ús%   ¥AFÂ#B.F"Å1F5ÆF	Æ"F2	Æ5G	c                  ó˜  € \        \        4      ;_uu_ 4        \        R R7       RRR4       \        \        4      ;_uu_ 4        \        R R7       RRR4       \        \        4      ;_uu_ 4        \        RRR7       RRR4       \        e]   \        \        4      ;_uu_ 4        \        RRR7       RRR4       \        \        4      ;_uu_ 4        \        R	RR7       RRR4       R# R#   + '       g   i     LÏ; i  + '       g   i     L¶; i  + '       g   i     Lœ; i  + '       g   i     Lz; i  + '       g   i     R# ; i)
Úinvalidr4  Nr5  r0  r1  )r/  r3  r'   rR  r&   )r   rX   r   r   r.   r/   r0   Ú,test_invalid_backend_hinting_and_constraintsr[    sÆ   € Ü	”
×	Õ	Ü˜	Õ"÷ 
ô 
”
×	Õ	Ü˜Õ#÷ 
ô 
”
×	Õ	ô 	˜¨[Õ9÷ 
ô
 
‚~ô ”J×ÕÜ˜V¨[Õ9÷  ä”J×ÕÜÐ.¸ÕD÷  Ññ ÷ 
×	ú÷ 
×	ú÷ 
×	ú÷  ×úç×Ðús;   ˜C,ÁC?Á0DÂ%D%ÃD8Ã,C<	Ã?D	ÄD"	Ä%D5	Ä8E		c                óT  a a€ \        ^R7      ;_uu_ 4       p\        VP                  4      P                  VP                  P                  3.pS ^ 8X  d   VuuRRR4       # V! VV 3R l\        ^4       4       4      pW4^ ,          ,           uuRRR4       #   + '       g   i     R# ; i)zCPerform nested parallel calls and introspect the backend on the wayr~   Nc              3   ó`   <"  € T F#  p\        \        4      ! RR S^,
          /SB x € K%  	  R# 5i)ÚlimitNr.   )r!   Ú_recursive_backend_info)rn   ro   Úkwargsr^  s   & €€r0   rp   Ú*_recursive_backend_info.<locals>.<genexpr>'  s/   øé € ð 
á�ô Ô+Ô,ÑG°5¸1µ9ÐGÀÖGÛùs   ƒ+.)r   re   r  rM   r'  rt   )r^  r`  r  Ú
this_levelrº   s   fl   r0   r_  r_     s‚   ù€ ô 
˜×	Õ	˜qÜ˜AŸJ™JÓ'×0Ñ0°!·*±*×2JÑ2JÐKÐLˆ
Ø�AŒ:Ø÷ 
Ò	ñ õ 
ä˜1”Xó
ó 
ˆð  A�JÕ&÷ 
×	×	Ó	ús   —?BÁ!*BÂB'	c                 óÆ   € V ! V^R7      ;_uu_ 4        \        4       pRRR4       VP                  4       R,           pV^ 3RRR.pXV8X  g   Q hR#   + '       g   i     L:; i)r?   r~   NÚBackend)r   r¯   )r   r?   )r_  Útitle)r}   r7   Úbackend_types_and_levelsÚtop_level_backend_typeÚexpected_types_and_levelss   &&   r0   Útest_nested_parallelism_limitri  .  se   € ñ 
� ×	#Ö	#Ü#:Ó#<Ð ÷ 
$ð %Ÿ]™]›_¨yÕ8Ðà	 Ð#ØØ Ø ð	!Ðð $Ð'@Ô@Ð@Ò@÷ 
$×	#ús   “AÁA 	c                óB   € \        4       ! R \        ^4       4       4      # )z6A horrible function that does recursive parallel callsc              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   )r!   Ú_recursive_parallelrm   s   & r0   rp   Ú&_recursive_parallel.<locals>.<genexpr>A  s   é € ÐG¹h¸”gÔ1Ô2×4Ð4»hùr  rs   )Únesting_limits   &r0   rl  rl  ?  s   € äŒ:ÑG¼eÀA¼hÓGÓGÐGr/   c           	      ó˜  € V ! V^R7      ;_uu_ 4        \        \        4      ;_uu_ 4       p\        4        RRR4       RRR4       XP                  pVR8X  d4   ^ RIHp \        W4\        34      '       d   \        P                  ! R4       \        V\        4      '       g   Q hR#   + '       g   i     Lx; i  + '       g   i     Lƒ; i)r?   r~   Nr'   )ÚTerminatedWorkerErrorz1Loky worker crash when serializing RecursionError)r   ÚBaseExceptionrl  rª   Ú&joblib.externals.loky.process_executorrp  r¶   r   rg  ÚxfailÚRecursionError)r}   r7   r»  Úexcrp  s   &&   r0   Útest_thread_bomb_mitigationrv  D  s‹   € ñ 
� ×	#Ö	#Ü”M×"Ô" gÜÔ!÷ #÷ 
$ð �-‰-€CØ�&Ôõ 	Qä�c´=ÐA×BÒBô �LŠLÐLÔMä�cœ>×*Ò*Ð*Ò*÷# #×"ú÷ 
$×	#ús!   “B9«B&	¶B9Â&B6Â1B9Â9C		c                  ót   € / p R F$  p\         P                  P                  V4      W&   K&  	  V \        ^d4      3# )ÚOMP_NUM_THREADS)rx  ÚOPENBLAS_NUM_THREADSÚMKL_NUM_THREADSÚVECLIB_MAXIMUM_THREADSÚNUMEXPR_NUM_THREADSÚNUMBA_NUM_THREADSÚ
ENABLE_IPC)r  ÚenvironrT  r   )Úenv_varsÚvars     r0   Ú_run_parallel_sumr‚  `  s;   € Ø€Hóˆô Ÿ
™
Ÿ™ sÓ+ˆ‹ñð ”\ #Ó&Ð&Ð&r/   zNeed OpenMP helper compiledc                 óT  € \        ^V R7      ! R \        ^4       4       4      p\        \        4       ^,          ^4      pV Fc  w  r4WB8X  g   Q hVP	                  4        FB  w  rVVP                  R4      '       d   V\        V4      8X  g   Q hK0  VR8X  g   Q hVR8X  d   KB  Q h	  Ke  	  R# )r?   ri   c              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   )r!   r‚  rÝ   s   & r0   rp   Ú-test_parallel_thread_limit.<locals>.<genexpr>r  s   é € ð 2Ù.6¨ŒÔ!Ô"×$Ð$«hùr  Ú_THREADSr~  Ú1N)r   rt   rÆ  r    ÚitemsÚendswithrµ   )r7   rº   Úexpected_num_threadsÚworker_env_varsÚomp_num_threadsr§   rª   s   &      r0   Útest_parallel_thread_limitr�  o  s§   € ô ˜a¨Õ1ñ 2Ü.3°A¬hó2ó €Gô œy›{¨aÕ/°Ó3ÐÛ,3Ñ(ˆØÔ6Ð6Ð6Ø*×0Ñ0Ö2‰KˆDØ�}‰}˜Z×(Ò(Ø¤Ð$8Ó 9Ô9Ð9Ò9à˜|Ô+Ð+Ð+Ø –|Ð#�|ó 3ó -4r/   zThis test requires daskc                 ó‚   € \        \        R R7      ;_uu_ 4        V ! R4       RRR4       R#   + '       g   i     R# ; i)zPlease install daskr  ÚdaskN)r   rX   )r}   s   &r0   Ú)test_dask_backend_when_dask_not_installedr�  €  s(   € ô 
”
Ð"7×	8Ö	8Ù�Œ÷ 
9×	8×	8Ò	8ús   š	-­>	c           
      óP  €  ! R  R\         4      pRpV ! V! 4       4      ;_uu_ 4        \        P                  ! \        VR7      ;_uu_ 4        \	        ^R7      ! R \        ^4       4       4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)c                   ó6   a € ] tR tRt o R tRR ltR tRtV tR# )Ú3test_zero_worker_backend.<locals>.ZeroWorkerBackendi‹  c                ó   € ^ # rc   r.   )rE   rÁ   r`  s   &*,r0   rÃ  Ú=test_zero_worker_backend.<locals>.ZeroWorkerBackend.configureŒ  ó   € Ùr/   Nc                ó   € \        R 4      h)zNo worker availabler   )rE   ÚfuncÚcallbacks   &&&r0   rA  Ú?test_zero_worker_backend.<locals>.ZeroWorkerBackend.apply_async�  s   € ÜÐ4Ó5Ð5r/   c                ó   € ^ # rc   r.   rÇ  s   &&r0   r"   ÚDtest_zero_worker_backend.<locals>.ZeroWorkerBackend.effective_n_jobs’  r–  r/   r.   r,   )	rM   rN   rO   rP   rÃ  rA  r"   rR   rS   rT   s   @r0   ÚZeroWorkerBackendr“  ‹  s   ø‡ € ò	ô	6÷	ð 	r/   r�  z&ZeroWorkerBackend has no active workerr  r~   c              3   óL   "  € T F  p\        \        4      ! V4      x € K  	  R # 5ir,   r!  rm   s   & r0   rp   Ú+test_zero_worker_backend.<locals>.<genexpr>˜  s   é € Ð@±x°!œw¤rœ{¨1Ÿ~˜~³xùrr   N)r   rg  r   r  r   rt   )r}   r�  Úexpected_msgs   &  r0   Útest_zero_worker_backendr¡  ‡  sm   € ôÔ,ô ð <€LÙ	Ñ"Ó$×	%Õ	%Ü�]Š]œ<¨|×<Ö<Ü˜AÕÑ@´u¸Q´xÓ@Ô@÷ =÷ 
&Ñ	%ß<×<ú÷ 
&×	%Ð	%ús#   §%BÁ#B	Á/BÂBÂBÂB%	c                  ó.  a€ R s R oS! 4       R 8X  g   Q h\        ^R7      ! V3R l\        ^4       4       4      p \        V 4      R 08X  g   Q hRs S! 4       R8X  g   Q h\        ^R7      ! V3R l\        ^4       4       4      p \        V 4      R08X  g   Q hR# )zoriginal valuec                  ó   € \         # r,   )ÚMY_GLOBAL_VARIABLEr.   r/   r0   Úcheck_globalsÚ@test_globals_update_at_each_parallel_call.<locals>.check_globals£  s   € ä!Ð!r/   r~   c              3   óD   <"  € T F  p\        S4      ! 4       x € K  	  R # 5ir,   r0  ©rn   ro   r¥  s   & €r0   rp   Ú<test_globals_update_at_each_parallel_call.<locals>.<genexpr>©  ó   øé € ð 1Ù*2 QŒ�Ô× Ð «(ùó   ƒ zchanged valuec              3   óD   <"  € T F  p\        S4      ! 4       x € K  	  R # 5ir,   r0  r¨  s   & €r0   rp   r©  ³  rª  r«  N)r¤  r   rt   rš   )Úworkers_global_variabler¥  s    @r0   Ú)test_globals_update_at_each_parallel_callr®  ›  s°   ø€ ð *Ðò"ñ ‹?Ð.Ô.Ð.Ð.ä&¨aÕ0ô 1Ü*/°¬(ó1ó Ðô Ð&Ó'Ð,<Ð+=Ô=Ð=Ð=ð )ÐÙ‹?˜oÔ-Ð-Ð-ä&¨aÕ0ô 1Ü*/°¬(ó1ó Ðô Ð&Ó'¨OÐ+<Ô<Ð<Ò<r/   c                  ó²   € ^ RI p V P                  P                  ^d^d4      pV P                  ! W4       \        P
                  ! R4      pVP                  4       # )rd   NÚthreadpoolctl)Únumpyr]  r_  rZ  rg  ÚimportorskipÚthreadpool_info)r   rF   r°  s      r0   Ú_check_numpy_threadpool_limitsr´  ¿  sE   € Ûð
 	�	‰	�‰˜˜SÓ!€AØ‡F‚Fˆ1„LÜ×'Ò'¨Ó8€MØ×(Ñ(Ó*Ð*r/   c                 óˆ   € V F#  pVR ,          V R ,          8X  g   K  VR,          u # 	  \        RP                  V 4      4      h)ÚfilepathÚnum_threadsz,An unexpected module was loaded in child:
{})rX   rj  )Úchild_moduleÚparent_infoÚparent_modules   && r0   Ú_parent_max_num_threads_forr»  Ë  sF   € Û$ˆØ˜Õ$¨°ZÕ(@Ö@Ø  Õ/Ò/ñ %ô Ø7×>Ñ>¸|ÓLóð r/   c                 óz   € V  F4  pV F+  p\        WA4      p\        W%4      V0pVR ,          V9   d   K+  Q h	  K6  	  R# )r·  N)r»  Úmin)Úworkers_infor¹  r·  Úchild_threadpool_infor¸  Úparent_max_num_threadsrÆ   s   &&&    r0   Úcheck_child_num_threadsrÁ  Ô  sK   € ó ".ÐÛ1ˆLÜ%@Øó&Ð"ô ˜KÓ@À+ÐNˆHØ Õ.°(Ö:Ð:Ð:ó 2ó ".r/   c                 óB  € \        4       p\        V4      ^ 8X  d   \        P                  ! RR7       \	        RV R7      ! R \        ^4       4       4      p\        V 4      p V ^8X  d   V^ ,          R,          pM\        \        4       V ,          ^4      p\        W!V4       R# )rd   ú&Need a version of numpy linked to BLASr´  r'   rÓ  c              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   ©r!   r´  rm   s   & r0   rp   Ú;test_threadpool_limitation_in_child_loky.<locals>.<genexpr>í  s    é € ð GÙ;C°aŒÔ.Ô/×1Ð1»8ùr  r·  N©
r´  rž   rg  rh  r   rt   r"   rÆ  r    rÁ  )rj   r¹  Úworkers_threadpool_infosÚexpected_child_num_threadss   &   r0   Ú(test_threadpool_limitation_in_child_lokyrÊ  á  s�   € ô 1Ó2€KÜ
ˆ;Ó˜1ÔÜ�ŠÐCÕDä'°¸vÕFñ GÜ;@À¼8óGó  Ðô ˜fÓ%€FØ�„{Ø%0°¥^°MÕ%BÑ"ä%(¬«¸Õ)>ÀÓ%BÐ"äØ Ð/Iör/   Úinner_max_num_threadsc                 óª  € \        4       p\        V4      ^ 8X  d   \        P                  ! RR7       V ! RVR7      ;_uu_ 4        \	        VR7      ! R \        ^4       4       4      pRRR4       \        V4      pV^8X  d   V^ ,          R,          pM"Vf   \        \        4       V,          ^4      pMTp\        XW54       R#   + '       g   i     Lc; i)	rd   rÃ  r´  r'   ©rË  r~   c              3   óJ   "  € T F  p\        \        4      ! 4       x € K  	  R # 5ir,   rÅ  rm   s   & r0   rp   Ú>test_threadpool_limitation_in_child_context.<locals>.<genexpr>  s   é € ð ;
Ù?G¸!ŒGÔ2Ô3×5Ð5»xùr  Nr·  rÇ  )r}   rj   rË  r¹  rÈ  rÉ  s   &&&   r0   Ú+test_threadpool_limitation_in_child_contextrÐ  ü  s´   € ô 1Ó2€KÜ
ˆ;Ó˜1ÔÜ�ŠÐCÕDá	�Ð/D×	EÖ	EÜ#+°6Õ#:ñ ;
Ü?DÀQ¼xó;
ó $
Ð ÷ 
Fô
 ˜fÓ%€FØ�„{Ø%0°¥^°MÕ%BÑ"Ø	Ò	&Ü%(¬«¸Õ)>ÀÓ%BÑ"à%:Ð"äØ  +ö÷ 
F×	Eús   Á#CÃC	Úvar_namec                 óÈ  aa€ \        V4      ^8X  d   \        P                  ! R4       \        RR7      P	                  4        R o\
        P                  P                  S4      p R\
        P                  S&   \        VR7      ! VV3R l\        ^4       4       4      pVRR.8X  g   Q hV ! R^R	7      ;_uu_ 4        \        VR7      ! VV3R
 l\        ^4       4       4      pRRR4       VRR.8X  g   Q h Vf   \
        P                  S R# V\
        P                  S&   R#   + '       g   i     LH; i  Tf   \
        P                  S i T\
        P                  S&   i ; i)r¯   zSkip test when n_jobs == 1T©Úreusec                 ó@   € \         P                  P                  V 4      # r,   )r  r  rT  )rÑ  s   &r0   Ú_get_envÚ>test_threadpool_limitation_in_child_override.<locals>._get_env,  s   € Ü�z‰z�~‰~˜hÓ'Ð'r/   Ú4r~   c              3   óF   <"  € T F  p\        S4      ! S4      x € K  	  R # 5ir,   r0  ©rn   ro   rÖ  rÑ  s   & €€r0   rp   Ú?test_threadpool_limitation_in_child_override.<locals>.<genexpr>3  s   øé € Ð)XÉxÈ!¬'°(Ô*;¸H×*EÐ*EËxùr2  r'   rÍ  c              3   óF   <"  € T F  p\        S4      ! S4      x € K  	  R # 5ir,   r0  rÚ  s   & €€r0   rp   rÛ  7  s!   øé € ð .Ù5=°”˜Ô! (×+Ð+³Xùr2  Nr‡  )
r"   rg  rh  r   Úshutdownr  r  rT  r   rt   )r}   rj   rÑ  Úoriginal_var_valuerº   rÖ  s   &&f  @r0   Ú,test_threadpool_limitation_in_child_overriderß    s  ù€ ô ˜Ó 1Ô$Ü�ŠÐ0Ô1ô  Ô%×.Ñ.Ô0ò(ô Ÿ™Ÿ™¨Ó1Ðð6Ø"Œ�
‰
�8Ñä &Õ)Õ)XÌuÐUVÌxÓ)XÓXˆØ˜3 ˜*Ô$Ð$Ð$á�V°1×5Ö5Ü fÕ-õ .Ü5:¸1´Xó.ó ˆG÷ 6ð ˜3 ˜*Ô$Ð$Ñ$ð Ò%Ü—
‘
˜8Ò$à#5ŒB�J‰J�xÓ ÷ 6×5ûð Ò%Ü—
‘
˜8Ñ$à#5ŒB�J‰J�xÒ ús%   Á&AD6 Â<'D#Ã#D6 Ä#D3	Ä.D6 Ä6+E!c                 ó�   € R  pV! V 4       \        RR7      p\        ^
4       F  pV! V 4       \        RR7      pWB8X  d   K  Q h	  R# )c                 óh   a€ \        ^
4      o\        V R7      ! V3R l\        ^
4       4       4       R# )r
  r~   c              3   óN   <"  € T F  p\        \        4      ! S4      x € K  	  R # 5ir,   )r!   Úsum)rn   ro   r:   s   & €r0   rp   ÚAtest_loky_reuse_workers.<locals>.parallel_call.<locals>.<genexpr>K  s   øé € ÐC¹°A¤¬¤¨Q§ »ùrñ   N)rt   r   )rj   r:   s   &@r0   Úparallel_callÚ.test_loky_reuse_workers.<locals>.parallel_callI  s#   ø€ Ü�"‹IˆÜ˜ÕÔC¼¸r¼ÓCÖCr/   TrÓ  N)r   rt   )rj   rå  Úfirst_executorrÏ   r¡   s   &    r0   Útest_loky_reuse_workersrè  C  sJ   € òDñ
 �&ÔÜ*°Ô6€Nô �2ŽYˆÙ�fÔÜ(¨tÔ4ˆØÖ)Ð)Ð)ó r/   c                 ó6   € R V \         P                  ! 4       &   R# )ÚinitializedN)r  r  )Ústatuss   &r0   Ú_set_initializedrì  Y  s   € Ø'€FŒ2�9Š9‹;Ór/   c                 ót  € \         P                  ! 4       pV P                  VR 4      pVR9   g   Q RV 24       hV'       g   R # RW&   \        P                  ! 4       ^,           p\	        V P                  4        UUu. uF  w  r6VR8X  g   K  VNK  	  upp4      p\        P                  ! 4       V8  dU   Wq8  dO   \        P                  ! R4       \	        V P                  4        UUu. uF  w  r6VR8X  g   K  VNK  	  upp4      pKn  \        P                  ! 4       V8¼  d   \        R4      hX# u uppi u uppi )NÚstartedz2worker should have been in initialized state, got rÛ   z-Waited more than 30s to start all the workers)rê  rî  )r  r  rT  r\   rž   rˆ  r   r   )rë  rj   Úwait_workersÚpidÚstateÚdeadliner¿  Ú	n_starteds   &&&     r0   Ú_check_statusrô  ]  s÷   € Ü
�)Š)‹+€CØ�J‰J�s˜DÓ!€EØÐ.Ô.ð Ø
<¸U¸GÐDóÐ.÷ Ùà€F�Kä�yŠy‹{˜RÕ€HÜ v§|¡|¤~ÔH¡~™V˜S¸¸i¹—S�S¡~ÒHÓI€IÜ
�)Š)‹+˜Ô
  YÔ%7Ü�
Š
�3ŒÜ¨6¯<©<¬>ÔL©>¡ ¸QÀ)¹^Ÿ˜©>ÒLÓMŠ	ä‡y‚yƒ{�hÔÜÐJÓKÐKà€Jùó Iùó Ms   Á;D.
ÂD.
Ã'D4
Ã7D4
c                 ó  a a€ \         P                  ! 4       pVP                  4       oV! VS \        S3R 7      ;_uu_ 4        \	        4       ! V V3R l\        ^d4       4       4       RRR4       R#   + '       g   i     R# ; i)©r7   rj   ÚinitializerÚinitargsc              3   óP   <"  € T F  p\        \        4      ! SS4      x € K  	  R # 5ir,   ©r!   rô  ©rn   ro   rj   rë  s   & €€r0   rp   Ú+test_initializer_context.<locals>.<genexpr>„  s    øé € ÐNÁ:¸a”7œ=Ô)¨&°&×9Ð9Ã:ùr„  N)r   r�  Údictrì  r   rt   )rj   r7   r}   r’  rë  s   f&& @r0   Útest_initializer_contextrþ  t  sc   ù€ ô
 �jŠj‹l€GØ�\‰\‹^€Fñ 
ØØÜ$Ø�÷	
ö 
ô 	Œ
ÕNÄ5ÈÄ:ÓNÔN÷
÷ 
÷ 
ò 
ús   Á%A0Á0B	c                 ó°   a a€ \         P                  ! 4       pVP                  4       o\        VS \        S3R 7      ! V V3R l\        ^d4       4       4       R# )rö  c              3   óP   <"  € T F  p\        \        4      ! SS4      x € K  	  R # 5ir,   rú  rû  s   & €€r0   rp   Ú,test_initializer_parallel.<locals>.<genexpr>•  s    øé € ÐA±j°„gŒmÔ˜V V×,Ð,³jùr„  N)r   r�  rý  r   rì  rt   )rj   r7   r’  rë  s   f& @r0   Útest_initializer_parallelr  ‡  sH   ù€ ô �jŠj‹l€GØ�\‰\‹^€Fô ØØÜ$Ø�õ	õ
 B´e¸C´jÓAöBr/   c                 óN  a a€ ^p\         P                  ! 4       pVP                  4       o\        4       p\	        V4       FK  p\        RS \        S3R7      ! V V3R l\	        S 4       4       4      pVP                  \        V4      4      pKM  	  \        V4      S 8X  g   Q R4       hR# )r3  r'   rö  c              3   óT   <"  € T F  p\        \        4      ! SSR R7      x € K  	  R# 5i©T)rï  Nrú  rû  s   & €€r0   rp   Ú*test_initializer_reused.<locals>.<genexpr>¨  ó)   øé € ð 

á"�ô ”MÔ" 6¨6À×EÑEÛ"ùrÒ   z=The workers should be reused when the initializer is the sameN)	r   r�  rý  rš   rt   r   rì  Úunionrž   ©rj   Ún_repetitionsr’  Úpidsro   rº   rë  s   f     @r0   Útest_initializer_reusedr  ˜  s–   ù€ ð
 €MÜ�jŠj‹l€GØ�\‰\‹^€Fä‹5€DÜ�=Ö!ˆÜØØÜ(Ø�Yõ	
õ


ä˜6”]ó

ó
ˆð �z‰zœ#˜g›,Ó'Šñ "ô ˆt‹9˜Ôð ØGóÒr/   c                 ó\  a a€ ^p\         P                  ! 4       p\        4       p\        V4       F[  pVP	                  4       o\        RS \        S3R7      ! V V3R l\        S 4       4       4      pVP                  \        V4      4      pK]  	  \        V4      VS ,          8X  g   Q R4       hR# )r3  r'   rö  c              3   óT   <"  € T F  p\        \        4      ! SSR R7      x € K  	  R# 5ir  rú  rû  s   & €€r0   rp   Ú.test_initializer_not_reused.<locals>.<genexpr>Ã  r  rÒ   zFThe workers should not be reused when the initializer arguments changeN)	r   r�  rš   rt   rý  r   rì  r  rž   r	  s   f     @r0   Útest_initializer_not_reusedr  ²  s›   ù€ ð €MÜ�jŠj‹l€Gä‹5€DÜ�=Ö!ˆØ—‘“ˆÜØØÜ(Ø�Yõ	
õ


ä˜6”]ó

ó
ˆð �z‰zœ#˜g›,Ó'Šñ "ô ˆt‹9˜¨Õ.Ô.ð ØPóÒ.r/   )F)rd   rd   )r3  r3  r�  )Nr¯   )zpositive-intznegative-intÚNone)r¯   r?   r�  éþÿÿÿ)r?   é   rŽ   ))r'   r&   T)r'   r'   F)r&   r&   T)r&   r'   T)r(   r&   T)r(   r'   T)r'   r&   r(   )r¯   r?   r3  )Ú<Ú>Ú=)r�  ú
Consumed 0ú
Produced 1ú
Consumed 1ú
Produced 2ú
Consumed 2rŽ  ú
Consumed 3ú
Produced 4ú
Consumed 4ú
Produced 5ú
Consumed 5)r�  r  r  rŽ  r  r  r  r  r  r  r  r   )Ú2gffffff@r?   )r(   r'   r&   r  )r?   r�  N)rd   r�  g¸…ëQ¸ö?))r?   r?   rÅ   r˜  )r?   r?   rj   r˜  ©r
  r?   rj   r˜  )i  r?   rj   r˜  r"  )r
  r°   rj   r˜  )éÈ   é   rj   r˜  )é   r$  ú
2 * n_jobsr¯   )éú   r$  rÅ   r¯   )r'  r$  r&  rW   )r#  r$  r&  r˜  )r!   rÁ   r`  )r¯   r?   r°   )r¯   r?   r  r�  ))r'   T)r(   F)rJ  F)Nr'   r(   )Nr0  r-  )r3  r,   )r?   r°   r  r�  )r¯   r?   r°   N)ry  rz  rx  )r?   r°   r�  )ÓrQ   rª  r  r˜   rk  r(   r\   r³   r	  r>  r   Úmathr   r&   r   Úpickler   r   Ú	tracebackr   rg  ry  r	   r
   r   Újoblib._multiprocessing_helpersr   Újoblib.test.commonr   r   r   r   Újoblib.testingr   r   r   r   r   Újoblib.externals.lokyr   rr  r   ÚposixÚImportErrorÚ _openmp_test_helper.parallel_sumr   ÚdistributedÚjoblib._parallel_backendsr   r   r   r   r   Újoblib.parallelr   r   r    r!   r"   r#   r$   r%   r‘  ÚRETURN_GENERATOR_BACKENDSÚpoprÎ  ÚkeysÚALL_VALID_BACKENDSÚPROCESS_BACKENDSÚPARALLEL_BACKENDSÚhasattrr“   r)   r1   r8   r<   rA   Ú	ExceptionrC   rZ   r^   ra   rg   rv   ry   r|   Úmarkrƒ   rŒ   r¥   r½   rÉ   r×   rç   rí   rò   rô   rö   rÿ   r  r  r%  r=  rC  rH  rš   rT  rc  rp  rt  r†  r–  rŸ  r¤  r¨  r¯  r³  rs  r¾  rÀ  rÊ  rÏ  r×  rÚ  rÞ  rä  rë  rð  Úextendrt   rñ  ró  rþ  r  r  r  Ú_parallel_backendsr  r  r%  r+  r4  rH  rK  rP  rW  ra  ri  rn  rv  rt  ÚSQUARE_LOCALÚSQUARE_LAMBDAr  rj  rw  rx  rz  r�  r„  rˆ  r‰  r�  r’  r¡  r¤  r±  rµ  r¸  rÁ  rÆ  rÑ  rÔ  rÜ  rà  rä  ræ  rï  rõ  r   r  r  r  r+  r6  r<  rX  r[  r_  ri  rl  Úno_coverrv  r‚  r�  r�  r¡  r®  r´  r»  rÁ  rÊ  rÐ  rß  rè  rì  rô  rþ  r  r  r  )Úbackend_strro   s   00r0   Ú<module>rD     s©  ðñó Û 	Û 	Û 
Û Û Û Û Ý "Ý Ý (Ý  Ý Ý &ã ã ß 'Ñ 'Ý .÷ó ÷ UÕ Tà‚>å;å ðÛðÝ>ðÛ÷õ ÷
÷ 
õ 
ð %ŸMšM›OÐ Ø × Ñ Ð/°Ô 6à�V™f X§]¢]£_Ó5Õ5Ð à Á(ÓKÁ(°;�x Ö,Ö.Á(ÑKÕ KÐ Ø‚:ØÑà)¨6Ð2ÐØ$¨ }Õ4Ð á
ˆ2ˆ}×Òà×Ñ˜bŸnšn¨WÓ5Ô6ò.òIòòô ô ôòô
ò2òòò"ñ ˆY˜Ð*:Ð;Ó<Ø‡�×ÑØ%ØˆbÑ"¨"Ô-Ð.°	Ð:Ú0ð ó ð
 ñ.ó óó =ð.ñ ˆYÐ*Ó+ÙˆX’~Ó&ÙˆYšÓ%ñ,ó &ó 'ó ,ð,ñ ˆYÐ*Ó+ÙˆX˜˜1�vÓñó ó ,ðñ( ˆYÐ*Ó+ñ'ó ,ð'òTð0 ÙØ+òó
ñó
ó ðð2 ÙˆYÒ@ÓAñó Bó ðòQñ ˆ_˜hÓ'ÙÐ˜xÓ(ñó )ó (ðòð ñWó ðWòñ ˆX’yÓ!ñó "ðñ ˆYÐ)Ó*ñ/ó +ð/ð: ñ
ó ð
ð ØÙˆ[š/Ó*Ùˆ\˜A˜t˜9Ó%ñ5ó &ó +ó ó ð5ñ$ ˆYÐ)Ó*ñ	ó +ð	ð ÙˆYÐ)Ó*ñ
ó +ó ð
ð ÙˆY™Ð5Ó6¸,¸ÕGÓHÙˆ[˜;Ð(=Ð>Ó?ñó @ó Ió ðð$ ÙˆYÐ(Ó)ñC
ó *ó ðC
ðL ÙˆY˜Ó!ñEó "ó ðEò,'ñ ˆY˜Ó!ÙØ ð òð	
ð$ òð	
ð%$ó'ñPóQ'ó "ðRð  ÙˆYÐ)Ó*ñó +ó ðò<4ð ÙˆYÐ(Ó)ñ3ó *ó ð3ò
òHòMð ÙˆYÐ)Ó*Ø‡�×ÑÐCÐÓDñ-ó Eó +ó ð-ô,Ð+ô ò
ñ ˆYÐ*Ó+ñHó ,ðHð$ ÙˆYÐ)Ó*ÙˆX’}Ó%ñ:ó &ó +ó ð:ò%ò	Dñ ˆ�$ˆÐ=Ô>ñ9ó ?ð9ò;ð* $5°QÕ#7Ð  Ø  × 'Ò 'ÉÈaÌÓ(QÉÀ1Ð):¸Q×)>Ð)>ÉÑ(QÔ Rð ÙˆYÐ8Ó9ÙˆYÐ)¨?Ð;Ó<ñDó =ó :ó ðDô,Ð#4ô ñ ˆY˜Ð*:Ð;Ó<ñDó =ðDñ& ˆY˜Ð*:Ð;Ó<ñDó =ðDò(ò
Qô>�×)Ò)×5Ñ5ô >ñ Ð/°Ô ;ð ÙˆYÒWÓXÙˆY˜Ð*:Ð;Ó<ñ,ó =ó Yó ð,ð ÙˆX’}Ó%ÙˆYÐ)Ó*ÙˆY˜Ð*:Ð;Ó<ñ
ó =ó +ó &ó ð
ò07ð Ùˆ_Ð/Ó0Ùˆ_Ð/Ó0ÙˆY˜Ð*:Ð;Ó<ñ
ó =ó 1ó 1ó ð
ð ÙˆY˜Ð*:Ð;Ó<ÙÐ%¨¨e }Ó5ñ!ó 6ó =ó ð!ñ: ˆ\š=Ó)ñ(ó *ð(ñ
 Ø/òóñ ó!ð ð ñ+ó ð+ð ØÙˆYÐ(Ó)ñSó *ó ó ðSð,0Ð ,ð  ÙˆYÐ(Ó)ñó *ó ðð-Ð )ð@€ð€ð€ð
 ÙˆYÐ(°"²*©BÀ7À)ÕLÓMÙˆ]˜[¨,¸ÐFÓGÙÐ Ò"?Ó@ñó Aó Hó Nó ðð,(9÷P ‚F˜bŸgšgŸošo¨b¯gªg¯oªo¸f¿oºoÓ.NÓO€FÓPðQ 6ðV ñ
ó ð
ð=÷, ‚F˜bŸgšgŸošo¨b¯gªg¯oªo¸f¿oºoÓ.NÓO€FÓPð- :ð2 ñó ðò8ò
ð ØÙˆYÐ(Ó)ñ8ó *ó ó ð8ò6ð Øñ	/ó ó ð	/ò
òð
 ‡�×Ñ˜¢9Ó-ñ;ó .ð;òòð" ‡�×Ñ˜ A q 6Ó*ð ÙˆY™Ð5Ó6¸,¸ÕGÓHñNó Ió ó	 +ðNñ ˆYÐ*Ó+ÙˆX’~Ó&ñó 'ó ,ðòòð ÙˆYÐ1Ó2Ùˆ[˜;Ð(=Ð>Ó?ÙˆX’~Ó&ñ>ó 'ó @ó 3ó ð>ñ ˆYÐ1Ó2Ùˆ[˜;Ð(=Ð>Ó?ÙˆX’~Ó&ñ
ó 'ó @ó 3ð
ñ& ˆYÐ1Ó2Ùˆ[˜;Ð(=Ð>Ó?ÙˆX’~Ó&ñ
ó 'ó @ó 3ð
ñ& ˆYÐ1Ó2Ùˆ]˜[Ð*?Ð@ÓAÙˆ]˜[Ð*?Ð@ÓAÙˆX’~Ó&ñ>ó 'ó Bó Bó 3ð>ñ& Øòóñ ˆ]˜[Ð*?Ð@ÓAÙˆ]˜[Ð*?Ð@ÓAñ)"ó Bó Bóð)"ðX ØÙˆYÐ(Ó)ñPó *ó ó ðPñD Ø r¢z��{Ñ#Ò7Róñ0óð0ð ÙˆYÐ(Ó)ñó *ó ðð, ÙˆY˜Ð*:Ð;Ó<ñ+ó =ó ð+ñ\ ˆX˜˜1�vÓÙˆXÒ5Ó6ñ'ó 7ó ð'ñ ˆY˜Ð*:Ð;Ó<ñ3Kó =ð3KòlEô*'ð ÙˆY˜ Ð-Ó.ÙˆY˜Ð*:Ð;Ó<ñAó =ó /ó ðAôHð
 ‡�×ÒÙˆY˜Ð*:Ð;Ó<ÙˆY¨"ª*˜+™¸6À;Ð:OÓQñ+ó Ró =ó ð+ò2'ñ ˆY¨2ª>˜$ ™À¸vÓGÙˆ˜ÐÐ%BÔCñ$ó Dó Hð$ñ ˆY˜Ð*:Ð;Ó<Ùˆ˜4ÐÐ(AÔBñó Có =ðñ
 ˆY˜Ð*:Ð;Ó<ñAó =ðAò&=òH	+òò
;ð ØÙˆX’~Ó&ñó 'ó ó ðð0 ØÙÐ$¢oÓ6ÙˆX˜˜2�wÓÙˆY˜Ð*:Ð;Ó<ñó =ó  ó 7ó ó ð
ð6 ÙˆX˜˜2�wÓÙˆZÒWÓXÙˆY˜Ð*:Ð;Ó<ñ 6ó =ó Yó  ó ð 6ðF ÙˆX’zÓ"ñ*ó #ó ð*ò((ôð. ÙˆX˜˜1�vÓÙˆYÐ(Ó)ÙˆY˜Ð*:Ð;Ó<ñOó =ó *ó ó ðOð ÙˆX˜˜1�vÓÙˆYÐ(Ó)ñBó *ó ó ðBð Ø‡�×Ñ˜ A q 6Ó*ñó +ó ðð0 Ø‡�×Ñ˜ A q 6Ó*ñó +ó òøðOD ô ØƒEðûð
 ô ØƒLðûð
 ô ØƒKðüò6 Lùò~ )RsB   Â
m Âm* Âm: Än
Ñ%ní	m'í&m'í*	m7í6m7í:	nîn