
    #Sh                         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dS )    N)Path)DictListOptionalUnion   )ExecutorInfoWatcherJobR)JobEnvironment)DelayedSubmissionUncompletedJobErrorc                       e Zd ZdeddfdZdS )DebugInfoWatcherjob_idreturnNc                     d S N )selfr   s     Z/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/submitit/local/debug.pyregister_jobzDebugInfoWatcher.register_job           )__name__
__module____qualname__strr   r   r   r   r   r      s6        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dS )	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                     d S r   r   )r   r.   s     r   _requeuezDebugJobEnvironment._requeue&   r   r   )r   r   r   _envboolr-   intr0   r   r   r   r!   r!      so        )--(/. D54 5 5 5 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<   d S )NDEBUG_)r6   r   Fr"   )	idsuper__init___submission	cancelleddictr*   r+   r   )r   r6   r7   r   	__class__s       r   r<   zDebugJob.__init__-   sh    *"Z..**v666%BJ''04,---r   c                     | j         S r   )r=   r,   s    r   r7   zDebugJob.submission5   s    r   c                     dS )N   r   r,   s    r   r%   zDebugJob.num_tasks8   s    qr   Tcheckc                     d| _         d S )NT)r>   )r   rD   s     r   cancelzDebugJob.cancel<   s    r   c                 :    | j         rt          d|  d          d S )NzJob z was cancelled.)r>   r   r,   s    r   _check_not_cancelledzDebugJob._check_not_cancelled?   s3    > 	D%&BT&B&B&BCCC	D 	Dr   c                    |                                   | j                                        r| j        j        gS t	          t
          j                  }t
          j                                         t
          j                            | j                   t          j
        d          }| j        j        j                            dd           t          j        | j        j                  }|                    t          j                   t          j        | j        j                  }|                    t          j                   |                    |           |                    |           |                    d| j        j         d           	 | j                                        gt
          j                                         t
          j                            |           |                    |           |                    |           S # t0          $ ry}t3          |           t
          j                            dd                              d          rdd l}|                                 ndd l}|                                  d }~ww xY w# t
          j                                         t
          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   s   !!###  "" 	.$,--bj))



$,''''++
 &&d&CCC ,TZ->??... ,TZ->??000~...~...Atz?P A A A	
 	
 	
	6$++--. JJn---%%n555%%n5555#  	 	 	!HHH z~~0"55@@HH "  """"


!!!	 JJn---%%n555%%n5555s&   H 
J#A4JJJ A)Lc                     |                                   	 | j                                         d S # t          $ r}|cY d }~S d }~ww xY wr   )rH   r=   r`   rb   )r   rl   s     r   	exceptionzDebugJob.exceptionn   sc    !!###	##%%%4 	 	 	 HHHHHH	s   1 
AAAAc                 .    |                                   d S r   )rm   r,   s    r   waitzDebugJob.waitx   s    r   Fforce_checkc                 \    |                                   | j                                        S r   )rm   r=   rO   )r   rr   s     r   rO   zDebugJob.done|   s$    $$&&&r   c                 N    | j                                         rdS | j        rdS dS )NDONE	CANCELLEDQUEUED)r=   rO   r>   r,   s    r   statezDebugJob.state   s2      "" 	6> 	;xr   forcemodec                     d| j         iS )NSTATE)rx   )r   rz   s     r   get_infozDebugJob.get_info   s    $$r   c                     d S r   r   r,   s    r   __del__zDebugJob.__del__   s    r   )T)r   N)F)ry   )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    X D D    D D D D)6a )6 )6 )6 )6V8M2       ' ' ' ' ' ' '
 s    X% %S %tC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                 J    t                                          |           d S r   )r;   r<   )r   r6   r@   s     r   r<   zDebugExecutor.__init__   s!         r   delayed_submissionsr   c                        fd|D             S )Nc                 :    g | ]}t          j        |          S r   )r5   r6   ).0dsr   s     r   
<listcomp>z?DebugExecutor._internal_process_submissions.<locals>.<listcomp>   s%    HHHbb))HHHr   r   )r   r   s   ` r   _internal_process_submissionsz+DebugExecutor._internal_process_submissions   s!     IHHH4GHHHHr   )r   r   r   r5   	job_classr   r   r   r<   tpr   r   r   Anyr   r   r   s   @r   r   r      s        I!uS$Y/ ! ! ! ! ! !I#%7+<#=I	RV	I I I I I I I 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      sr    				           . . . . . . . . . . . . 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 ? ? ? ? ? ? ? ?    {       .   $d d d d ds1v d d dN	I 	I 	I 	I 	IH 	I 	I 	I 	I 	Ir   