+
    €",iÕ  ã                   ó–  € 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	]	P                  t
]	P                  t]P                  P                  t]	P                  P                   t]	P"                  t]	P                  P$                  t]	P                  P&                  t]	P                  P(                  t]	P*                  tR tRR ltR# )z
Helper for testing.
Nc                 óN   a€ \         P                  oRV3R llp V \         n        R# )z Redirect all warnings to stdout.Nc                 ót   <€ S! W\         P                  P                  V4      V\        P                  4       R # )N)ÚosÚpathÚbasenameÚsysÚstdout)ÚmsgÚcatÚfnameÚlnoÚfileÚlineÚshowwarning_origs   &&&&&&€Ú0/usr/lib/python3/dist-packages/joblib/testing.pyÚshowwarningÚ'warnings_to_stdout.<locals>.showwarning   s$   ø€ Ù˜¤2§7¡7×#3Ñ#3°EÓ#:¸DÄ#Ç*Á*ÖMó    )Né    )Úwarningsr   )r   r   s    @r   Úwarnings_to_stdoutr      s   ø€ ä×+Ñ+Ð÷Nð '„HÖr   c                óœ  a a€ \         P                  ! S \         P                  \         P                  R7      oV V3R lpV V3R lp VeU   \        P                  ! W4      pVP                  4        \        P                  ! ^V,          V4      pVP                  4        SP                  4       w  r‰VP                  4       V	P                  4       r˜SP                  ^ 8w  d(   RP                  SP                  W‰4      p
\        V
4      hVe7   \        P                  ! W(4      '       g   \        RP                  W(4      4      hVe7   \        P                  ! W94      '       g   \        RP                  W94      4      hVe#   XP                  4        XP                  4        R# R#   Te"   XP                  4        XP                  4        i i ; i)a  Runs a command in a subprocess with timeout in seconds.

A SIGTERM is sent after `timeout` and if it does not terminate, a
SIGKILL is sent after `2 * timeout`.

Also checks returncode is zero, stdout if stdout_regex is set, and
stderr if stderr_regex is set.
)r   Ústderrc                 óZ   <€ \         P                  ! RS  24       SP                  4        R# )z«
Attempt to terminate a leftover process spawned during test execution:
ideally this should not be needed but can help avoid clogging the CI
workers in case of deadlocks.
úTimeout running N)r   ÚwarnÚ	terminate©ÚcmdÚprocs   €€r   Úterminate_processÚ0check_subprocess_call.<locals>.terminate_process0   s#   ø€ ô 	�ŠÐ(¨¨Ð.Ô/Ø�‰Ör   c                 óZ   <€ \         P                  ! RS  24       SP                  4        R# )z›
Kill a leftover process spawned during test execution: ideally this
should not be needed but can help avoid clogging the CI workers in
case of deadlocks.
r   N)r   r   Úkillr   s   €€r   Úkill_processÚ+check_subprocess_call.<locals>.kill_process9   s"   ø€ ô 	�ŠÐ(¨¨Ð.Ô/Ø�	‰	Žr   Nz/Non-zero return code: {}.
Stdout:
{}
Stderr:
{}z,Unexpected stdout: {!r} does not match:
{!r}z,Unexpected stderr: {!r} does not match:
{!r})Ú
subprocessÚPopenÚPIPEÚ	threadingÚTimerÚstartÚcommunicateÚdecodeÚ
returncodeÚformatÚ
ValueErrorÚreÚsearchÚcancel)r   ÚtimeoutÚstdout_regexÚstderr_regexr    r$   Úterminate_timerÚ
kill_timerr   r   Úmessager   s   f&&&       @r   Úcheck_subprocess_callr:   %   st  ù€ ô ×Ò˜C¬
¯©Ä
ÇÁÔP€Dööð ØÒÜ'Ÿošo¨gÓIˆOØ×!Ñ!Ô#Ü"Ÿš¨¨W­°lÓCˆJØ×ÑÔØ×)Ñ)Ó+‰ˆØŸ™›¨&¯-©-«/�Ø�?‰?˜aÔØL×TÑTØ—‘ óˆGô ˜WÓ%Ð%àÒ#¬B¯IªI°l×,KÒ,KÜØ?×FÑFØ óóð ð
 Ò#¬B¯IªI°l×,KÒ,KÜØ?×FÑFØ óóð ð ÒØ×"Ñ"Ô$Ø×ÑÖñ øˆ7ÒØ×"Ñ"Ô$Ø×ÑÕð ús   ÁD5F$ Æ$'G)é   NN)Ú__doc__Úos.pathr   r1   r&   r   r)   r   Ú_pytestÚpytestÚraisesÚwarnsÚrunnerÚSkippedÚSkipTestÚmarkÚskipifÚfixtureÚparametrizer4   ÚxfailÚparamr   r:   © r   r   Ú<module>rL      s�   ðñó Û 	Û Û 
Û Û ã Û à	�‰€Ø�‰€Ø�>‰>×!Ñ!€Ø	�‰×	Ñ	€Ø
�.‰.€Ø�k‰k×%Ñ%€Ø
�+‰+×
Ñ
€Ø�‰×Ñ€Ø�‰€ò'ö; r   