Ë
    O/æjÆ  ã                   óÒ   — d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	 ddl
mZmZmZmZ ddlmZ ddlmZmZ  G d„ d	e«      Z G d
„ de«      Z G d„ dee   «      Z G d„ de«      Zy)é    N)ÚPath)ÚDictÚListÚOptionalÚUnioné   )ÚExecutorÚInfoWatcherÚJobÚR)ÚJobEnvironment)ÚDelayedSubmissionÚUncompletedJobErrorc                   ó   — e Zd Zdeddfd„Zy)ÚDebugInfoWatcherÚjob_idÚreturnNc                  ó   — y ©N© )Úselfr   s     úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/submitit/local/debug.pyÚregister_jobzDebugInfoWatcher.register_job   ó   € Øó    )Ú__name__Ú
__module__Ú__qualname__Ústrr   r   r   r   r   r      s   „ ð 3ð ¨4ô r   r   c                   ó:   — e Zd ZdddddddœZdefd„Zdeddfd„Zy)	ÚDebugJobEnvironmentÚSUBMITIT_DEBUG_JOB_IDÚSUBMITIT_DEBUG_NOT_SET)r   Ú	num_nodesÚ	num_tasksÚnodeÚglobal_rankÚ
local_rankr   c                 ó&   — dt         j                  v S )Nr"   )ÚosÚenviron©r   s    r   Ú	activatedzDebugJobEnvironment.activated#   s   € Ø&¬"¯*©*Ð4Ð4r   Ú	countdownNc                  ó   — y r   r   )r   r.   s     r   Ú_requeuezDebugJobEnvironment._requeue&   r   r   )r   r   r   Ú_envÚboolr-   Úintr0   r   r   r   r!   r!      s:   „ à)à-Ø-Ø(Ø/Ø.ñ€Dð5˜4ó 5ð #ð ¨$ô r   r!   c                   óî   ‡ — e Zd Z e«       Zdededdfˆ fd„Zdefd„Ze	de
fd„«       Zddeddfd	„Zdd
„Zdee   fd„Zdee   fd„Zdd„Zddedefd„Ze	defd„«       Zddedeeef   fd„Zdd„Zˆ xZS )ÚDebugJobÚfolderÚ
submissionr   Nc                 óÎ   •— dt        |«      › �}t        ‰| �	  ||¬«       || _        d| _        t        t        j                  «      | _        | j                  | j                  d<   y )NÚDEBUG_)r6   r   Fr"   )	ÚidÚsuperÚ__init__Ú_submissionÚ	cancelledÚdictr*   r+   r   )r   r6   r7   r   Ú	__class__s       €r   r<   zDebugJob.__init__-   sX   ø€ Øœ"˜Z›.Ð)Ð*ˆÜ‰Ñ ¨vÐÔ6Ø%ˆÔØˆŒÜœBŸJ™JÓ'ˆŒØ04·±ˆ�‰Ð,Ò-r   c                 ó   — | j                   S r   )r=   r,   s    r   r7   zDebugJob.submission5   s   € Ø×ÑÐr   c                  ó   — y)Né   r   r,   s    r   r%   zDebugJob.num_tasks8   s   € àr   Úcheckc                 ó   — d| _         y )NT)r>   )r   rD   s     r   ÚcancelzDebugJob.cancel<   s	   € Øˆ�r   c                 ó:   — | j                   rt        d| › d�«      ‚y )NzJob z was cancelled.)r>   r   r,   s    r   Ú_check_not_cancelledzDebugJob._check_not_cancelled?   s"   € Ø�>Š>Ü%¨¨T¨F°/Ð&BÓCÐCð r   c                 ó.  — | j                  «        | j                  j                  «       r| j                  j                  gS t	        t
        j                  «      }t
        j                  j                  «        t
        j                  j                  | j                  «       t        j                  d«      }| j                  j                  j                  j                  dd¬«       t        j                  | j                  j                  «      }|j!                  t        j"                  «       t        j                  | j                  j$                  «      }|j!                  t        j&                  «       |j)                  |«       |j)                  |«       |j+                  d| j                  j                  › d�«       	 | j                  j-                  «       gt
        j                  j                  «        t
        j                  j                  |«       |j/                  |«       |j/                  |«       S # t0        $ ri}t3        |«       t
        j                  j5                  dd«      j7                  d«      rdd l}|j;                  «        ‚ dd l}|j;                  «        ‚ d }~ww xY w# t
        j                  j                  «        t
        j                  j                  |«       |j/                  |«       |j/                  |«       w xY w)	NÚ T)Úexist_okÚparentsz0Logging is written both to stderr/stdout and to z8/err. But call to print will only appear in the console.ÚPYTHONBREAKPOINTÚipdbr   )rH   r=   ÚdoneÚ_resultr?   r*   r+   ÚclearÚupdateÚloggingÚ	getLoggerÚpathsÚstdoutÚparentÚmkdirÚFileHandlerÚsetLevelÚDEBUGÚstderrÚWARNINGÚ
addHandlerÚwarningÚresultÚremoveHandlerÚ	ExceptionÚprintÚgetÚ
startswithrN   Úpost_mortemÚpdb)r   Úenviron_backupÚroot_loggerÚstdout_handlerÚstderr_handlerÚerN   rg   s           r   ÚresultszDebugJob.resultsC   s7  € Ø×!Ñ!Ô#Ø×Ñ× Ñ Ô"Ø×$Ñ$×,Ñ,Ð-Ð-äœbŸj™jÓ)ˆä
�
‰
×ÑÔÜ
�
‰
×Ñ˜$Ÿ,™,Ô'ä×'Ñ'¨Ó+ˆØ�
‰
×Ñ× Ñ ×&Ñ&°¸dÐ&ÔCÜ ×,Ñ,¨T¯Z©Z×->Ñ->Ó?ˆØ×Ñ¤§¡Ô.Ü ×,Ñ,¨T¯Z©Z×->Ñ->Ó?ˆØ×Ñ¤§¡Ô0Ø×Ñ˜~Ô.Ø×Ñ˜~Ô.Ø×ÑØ>¸t¿z¹z×?PÑ?PÐ>Qð RAð Aô	
ð	6Ø×$Ñ$×+Ñ+Ó-Ð.ô �J‰J×ÑÔÜ�J‰J×Ñ˜nÔ-Ø×%Ñ% nÔ5Ø×%Ñ% nÕ5øô# ò 	Ü�!ŒHô �z‰z�~‰~Ð0°"Ó5×@Ñ@ÀÔHÛà× Ñ Ô"ð
 ó à—‘Ô!Øûð	ûô �J‰J×ÑÔÜ�J‰J×Ñ˜nÔ-Ø×%Ñ% nÔ5Ø×%Ñ% nÕ5ús&   ÇH> È>	J0ÉA$J+Ê+J0Ê0J3 Ê3A!Lc                 óŠ   — | j                  «        	 | j                  j                  «        y # t        $ r}|cY d }~S d }~ww xY wr   )rH   r=   r`   rb   )r   rl   s     r   Ú	exceptionzDebugJob.exceptionn   s?   € Ø×!Ñ!Ô#ð	Ø×Ñ×#Ñ#Ô%ØøÜò 	ð �Hûð	ús   ’- ­	A¶=·A½Ac                 ó$   — | j                  «        y r   )rm   r,   s    r   ÚwaitzDebugJob.waitx   s   € à�‰�r   Úforce_checkc                 óV   — | j                  «        | j                  j                  «       S r   )rm   r=   rO   )r   rr   s     r   rO   zDebugJob.done|   s    € à�‰ŒØ×Ñ×$Ñ$Ó&Ð&r   c                 óT   — | j                   j                  «       ry| j                  ryy)NÚDONEÚ	CANCELLEDÚQUEUED)r=   rO   r>   r,   s    r   ÚstatezDebugJob.state�   s$   € à×Ñ× Ñ Ô"ØØ�>Š>ØØr   Úmodec                 ó   — d| j                   iS )NÚSTATE)rx   )r   ry   s     r   Úget_infozDebugJob.get_info‰   s   € Ø˜Ÿ™Ð$Ð$r   c                  ó   — y r   r   r,   s    r   Ú__del__zDebugJob.__del__Œ   s   € àr   )T)r   N)F)Úforce)r   r   r   r   Úwatcherr   r   r<   r7   Úpropertyr3   r%   r2   rF   rH   r   r   rm   r   ÚBaseExceptionro   rq   rO   r   rx   r   r|   r~   Ú__classcell__©r@   s   @r   r5   r5   *   sÜ   ø„ ÙÓ €Gð<˜tð <Ð1Bð <Àtõ <ð Ð-ó  ð ð˜3ò ó ðñ˜Dð ¨Dó óDð)6˜˜a™ó )6ðV˜8 MÑ2ó óñ' ð '°ó 'ð
 ð�sò ó ðñ%˜Sð %¨t°C¸°H©~ó %÷r   r5   c                   ó�   ‡ — e Zd ZeZdeeef   fˆ fd„Zde	j                  e   de	j                  ee	j                        fd„Zˆ xZS )ÚDebugExecutorr6   c                 ó$   •— t         ‰| �  |«       y r   )r;   r<   )r   r6   r@   s     €r   r<   zDebugExecutor.__init__”   s   ø€ Ü‰Ñ˜Õ r   Údelayed_submissionsr   c                 óT   — |D �cg c]  }t        | j                  |«      ‘Œ c}S c c}w r   )r5   r6   )r   rˆ   Údss      r   Ú_internal_process_submissionsz+DebugExecutor._internal_process_submissions—   s$   € ð 5HÖH¨b”˜Ÿ™ bÕ)ÒHÐHùÒHs   …%)r   r   r   r5   Ú	job_classr   r   r   r<   Útpr   r   r   ÚAnyr‹   rƒ   r„   s   @r   r†   r†   ‘   sP   ø„ Ø€Ið!˜u S¨$ YÑ/õ !ðIØ#%§7¡7Ð+<Ñ#=ðIà	�‰��R—V‘V‘Ñ	÷Ir   r†   )rS   r*   Útypingr�   Úpathlibr   r   r   r   r   Ú	core.corer	   r
   r   r   Úcore.job_environmentr   Ú
core.utilsr   r   r   r!   r5   r†   r   r   r   ú<module>r”      s^   ðó Û 	Û Ý ß .Ó .ç 5Ó 5Ý 1ß ?ô�{ô ô˜.ô ô$dˆs�1‰vô dôN	I�Hõ 	Ir   