
    #Sh@                        d dl Z d dlZd dlZd dlmZ d dlZddlmZ ddl	m	Z	m
Z
 dedefdZej                            ej                                         d	
          ZdeddfdZddZededdfd            Zededdfd            Zededdfd            Zededdfd            Z G d de	j                  Z G d de	j        e	j                           ZdeddfdZdej        eef         fdZ ddZ!dS )    N)Path   )helpers)coreutilsxreturnc                     d| z  S )N    r   s    [/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/submitit/test_helpers.py_three_timer      s    q5L    z"Rsync is required for snapshotting)reasontmp_pathc                     | dz  }t          j        d          }|                    t          d           |                    t          d           t	          |          dk    sJ t          d |D                       dk    sJ t          j        ||           t          j        |          }t          d	 |D                       dk    sJ  |            d
dgk    sJ t          d |D                       dk    sJ d S )Nztest_funcseq.pklT)verbose         c              3   >   K   | ]}|                                 V  d S Ndone.0r   s     r   	<genexpr>z4test_function_sequence_checkpoint.<locals>.<genexpr>!   *      %%Aqvvxx%%%%%%r   r   c              3   >   K   | ]}|                                 V  d S r   r   r   s     r   r   z4test_function_sequence_checkpoint.<locals>.<genexpr>$   r   r         c              3   >   K   | ]}|                                 V  d S r   r   r   s     r   r   z4test_function_sequence_checkpoint.<locals>.<genexpr>&   r   r   )	r   FunctionSequenceaddr   lensumr   cloudpickle_dumppickle_load)r   filefs0fs1s       r   !test_function_sequence_checkpointr-      s   ((D

"4
0
0
0CGGKGGKs88q====%%%%%%%****	3%%%

D
!
!C%%%%%%%****355RH%%%%%%%******r   c                    dt           dt           fd}d\  }}|                     ||||g          }t          j                    }g }t          t	          j        |d                    D ]>\  }}t          j                    |z
  }	|dk     r|	|k     sJ |                    |           ?|||gd |D             k    sJ |d	         |d
         u sJ d S )Nr   r	   c                 .    t          j        |            | S r   )timesleepr   s    r   fztest_as_completed.<locals>.f*   s    
1r   )g      ?皙?r3   )poll_frequencyr   c                 6    g | ]}|                                 S r   )resultr   js     r   
<listcomp>z%test_as_completed.<locals>.<listcomp>;   s     !D!D!D!((**!D!D!Dr   r   )float	map_arrayr0   	enumerater   as_completedappend)
executorr2   slowfastjobsstartfinished_jobsnr8   elapseds
             r   test_as_completedrH   )   s
   U u    
 JD$a$d!344DIKKEM'.tCHHHII    1)++%q55T>>>>Q$!D!Dm!D!D!DDDDD7mB'''''''r   c                    t          j                    }t          j        |           5  t          j                    | k    sJ | dz                                  sJ 	 d d d            n# 1 swxY w Y   t          j                    |k    sJ d S )Nsubmitit/test_helpers.py)r   cwdr   RsyncSnapshotexists)r   rK   s     r   test_snapshotrN   ?   s    
(**C		x	(	( @ @xzzX%%%%55==??????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 8::s   3A((A,/A,c                     dg}t          j        | |          5  | dz                                  sJ | dz                                  rJ 	 d d d            d S # 1 swxY w Y   d S )Nzsubmitit/test_*)snapshot_direxcludezsubmitit/helpers.pyrJ   )r   rL   rM   )r   rQ   s     r   test_snapshot_excludesrR   H   s     !G		Hg	F	F	F D D0088:::::99AACCCCCCD D D D D D D D D D D D D D D D D Ds   3AA"Ac                     t          j        |          5  |                     t          j                  }d d d            n# 1 swxY w Y   t          |                                          |k    sJ d S )NrP   )r   rL   submitosgetcwdr   r6   )r@   r   jobs      r   test_job_use_snapshot_cwdrY   P   s    		H	5	5	5 ) )oobi(() ) ) ) ) ) ) ) ) ) ) ) ) ) )

))))))s    AA	Ac                 .   t          j        |          5  dt          fd}|                     |          }d d d            n# 1 swxY w Y    |            t          t                    j        dz  k    sJ |                                |dz  k    sJ d S )NrT   r	   c                  2    dd l } t          | j                  S )Nr   )submititr   __file__)r\   s    r   submitit_filez4test_job_use_snapshot_modules.<locals>.submitit_file[   s    OOO)***r   z__init__.pyzsubmitit/__init__.py)r   rL   r   rU   r]   parentr6   )r@   r   r^   rX   s       r   test_job_use_snapshot_modulesr`   W   s    		H	5	5	5 - -	+t 	+ 	+ 	+ 	+ oom,,- - - - - - - - - - - - - - - =??d8nn3mCCCCC::<<8&<<<<<<<<s   !AA
Ac                   @     e Zd Zddedef fdZddeded	efd
Z xZS )FakeInfoWatcherWithTimer<   {Gz?delay_stime_changec                     t                                          |           t          j                    | _        || _        d S r   )super__init__r0   start_timerrf   )selfre   rf   	__class__s      r   ri   z!FakeInfoWatcherWithTimer.__init__j   s7    !!!9;;&r   standardjob_idmoder	   c                     t          j                     | j        z
  }|| j        k     rdS d| j        z  |cxk    r| j        k    rn ndS |dk    rdS dS )Npendingr   runningfailedr   )r0   rj   rf   )rk   rn   ro   durations       r   	get_statez"FakeInfoWatcherWithTimer.get_stateo   so    9;;!11d&&&9!!H????t/??????9X8vr   )rc   rd   )rm   )	__name__
__module____qualname__intr;   ri   strru   __classcell__)rl   s   @r   rb   rb   h   s~        ' ' 'u ' ' ' ' ' '
  3         r   rb   c                   "    e Zd Z e            ZdS )FakeJobWithTimerN)rv   rw   rx   rb   watcherr   r   r   r}   r}   z   s        &&((GGGr   r}   c                     t          d|           }t          d|           }||g}t          j        |dd           t          d |D                       sJ t	          d |D                       |hk    sJ d S )	Nrs   )rn   folder	succeededrd   T)	test_modec              3   B   K   | ]}|                                 |V  d S r   r   r7   s     r   r   z$test_monitor_jobs.<locals>.<genexpr>   s/      ++Q!&&((+q++++++r   c              3   T   K   | ]#}|j                                         d k    |V  $dS )FAILEDN)stateupperr7   s     r   r   z$test_monitor_jobs.<locals>.<genexpr>   s6      >>Q!'--//X"="=q"="="="=>>r   )r}   r   monitor_jobsallset)r   rX   job2rC   s       r   test_monitor_jobsr   ~   s    !1(!S!S!SC"2+h"W"W"WD;Dtt4444++$++++++++>>$>>>>>3%GGGGGGr   c                  R    d t           j                                        D             S )Nc                 D    i | ]\  }}|                     d           ||S ))SLURM_	SUBMITIT_)
startswith)r   r   ys      r   
<dictcomp>z_get_env.<locals>.<dictcomp>   s0    YYYTQ1<<@W3X3XYAqYYYr   )rV   environitemsr   r   r   _get_envr      s$    YYRZ--//YYYYr   c                     t                      } t          j        dd          5  t          t                                t          |           dz   k    sJ t	          j                    5  t                      rJ 	 d d d            n# 1 swxY w Y   t          t                                t          |           dz   k    sJ 	 d d d            n# 1 swxY w Y   t                      | k    sJ t          j        dd          5  t	          j        d          5  d	t          j        vsJ d
t          j        vsJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr!   )SLURM_BLUBLUSUBMITIT_BLUBLUr   *   i:  )MASTER_PORTBLABLA)r   )extra_namesr   r   )r   r   environment_variablesr&   r   	clean_envrV   r   )bases    r   test_clean_envr      s\   ::D		$"b	I	I	I 0 08::#d))a-////   	" 	"zz!!>!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"8::#d))a-/////	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 ::		$C	@	@	@ . .;777 	. 	. 
22222:-----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. . . . . . . . . . . . . . . . . .sl   AC*B<CB	CB	4CCCE"!E
>E"
E	E"E	E""E&)E&)r	   N)"rV   r0   typingtppathlibr   pytest r   r   r   ry   r   markskipifrL   	availablerequires_rsyncr-   rH   rN   rR   rY   r`   InfoWatcherrb   JobRr}   r   Dictrz   r   r   r   r   r   <module>r      s   
			                          3 3     ##'')))2V $  
+ + + + + +( ( ( (, D T     DT Dd D D D D *$ *4 * * * * =d =t = = = =     t/   $) ) ) ) )tx' ) ) )H H H H H HZ"'#s(# Z Z Z Z. . . . . .r   