Ë
    @çiÁ  ã                   ó¢   — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ dd	lmZmZ dd
lmZ d„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)z§
This is the central dispatch of the `dora` command. From there you can
check grid files, launch XPs, check their logs etc, as well
as doing local runs for debugging.
é    Né   )Úgrid_action)Úinfo_action)Úlaunch_action)ÚfatalÚsetup_loggingÚ
simple_log)Ú
run_action)Úimport_actionÚexport_action)Úget_mainc                 ó®   — | j                  dddd¬«       | j                  dddd¬«       | j                  d	d
dd¬«       | j                  dddd d¬«       y )Nz-rz--retryÚ
store_truezRetry failed jobs©ÚactionÚhelpz-Rz	--replacezReplace any running job.z-Dz--replace_donezAlso resubmit done jobs.z--no_git_saveÚstore_falseÚgit_savez6Temporarily deactivate git_save for any scheduled job.©r   ÚdestÚdefaultr   )Úadd_argument©Úparsers    úb/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/dora/__main__.pyÚadd_submit_rulesr      sw   € Ø
×Ñ˜˜i°Ø0ð ô 2à
×Ñ˜˜k°,Ø7ð ô 9à
×Ñ˜Ð.°|Ø7ð ô 9à
×Ñ˜°ÀJÐX\ØUð õ Wó    c                 óØ   — | j                  ddt        d¬«       | j                  ddd¬«       | j                  d	d
ddd¬«       | j                  ddd¬«       | j                  dd¬«       y )Nz-gz--gpuszNumber of gpus.©Útyper   z-pz--partitionz
Partition.©r   z--devÚstore_constÚ	partitionÚdevlabzUse dev partition.)r   r   Úconstr   z-cz	--commentzComment.z--constraintzConstraint.)r   Úintr   s    r   Úadd_slurm_configr'   "   su   € Ø
×Ñ˜˜h¬SÐ7HÐÔIØ
×Ñ˜˜m°,ÐÔ?Ø
×Ñ˜¨¸KÈxØ1ð ô 3à
×Ñ˜˜k°
ÐÔ;Ø
×Ñ˜¨]ÐÕ;r   c                  óœ  — t        j                  «       } | j                  ddd d¬«       | j                  dd d¬«       | j                  ddd	d
¬«       | j                  dddd¬«      }|j	                  d«      }t        |«       t        |«       |j                  ddd	d¬«       |j                  dd	d¬«       |j                  dddt        d¬«       |j                  dddd¬«       |j                  d d	d!¬«       |j                  d"d#t        d$¬%«       |j                  d&d'd	d(¬«       |j                  «       }|j                  d)d*t        d+¬%«       |j                  d,d-t        d.¬%«       |j                  d/d0t        d.¬%«       |j                  d1d	d2¬«       |j                  dd3d4¬5«       |j                  d6d7d8¬5«       |j                  t        ¬9«       |j	                  d:d;¬<«      }|j                  d)d=d>¬<«       |j                  d?d@d	dA¬«       |j                  dBt        dC¬%«       |j                  dDd	dEdF¬G«       |j                  dd	dH¬«       |j                  dId7¬J«       |j                  t        ¬9«       |j	                  dK«      }|j                  d)d=d>¬<«       |j                  dLdMd	dN¬«       |j                  dOddPddQ¬R«       |j                  ddd	dS¬«       |j                  dd	dH¬«       t        |«       t        |«       |j                  dId7¬J«       |j                  t        ¬9«       |j	                  dT«      }|j                  d)d=d>¬<«       |j                  dUdVdW¬<«       |j                  ddd	dX¬«       |j                  d,d-d	dY¬«       |j                  d/d0d	dZ¬«       |j                  d[d\d	d]¬«       |j                  dId7¬J«       |j                  t        ¬9«       |j	                  d^«      }|j                  t        ¬9«       |j	                  d_«      }|j                  d`d7da¬5«       |j                  t         ¬9«       | S )bNz	--packagez-Pz¡Training module. You can also set the DORA_PACKAGE env. In last resort, Dora will look for a package in the current folder with module defined at --runfile flag.)r   r   z--main_modulez­Training exec name. Dora will search for this module to run within the package provided by --package flag. You can also set DORA_MAIN_MODULE env. Defaults to 'train' module.z	--verbosez-vr   zShow debug info.r   ÚcommandzCommand to executeT)Útitler   Úrequiredr   Úgridz-Cz--cancelzCancel all running jobs.z--clearz=Remove XP folder, reschedule all jobs, starting from scratch.z-iz
--intervalé   zIUpdate status and metrics every that number of minutes. Default is 5 min.)r   r    r   z--no_monitoringr   Úmonitorz5No monitoring, just schedule and print current state.)r   r   r   z	--dry_runz9Only simulate actions but does not run any call to Slurm.z-Tz--trimz;Trim history to the length of the exp with the given index.r   z-Lz--trim_lastzTrim history to the slowest.z-fz--folderz0Show the folder for the job with the given indexz-lz--logz-Show the log for the job with the given indexz-tz--tailz--initz=Init the given XPs so that their signature can be referenced.Ú?zKName of the grid to run. Name of the module will be `package`.grids.`name`.)Únargsr   ÚpatternsÚ*zXOnly handle experiments matching all the given pattern. If empty, handle all experiments)r   ÚrunzRun locally the given command.r!   z
--from_sigz$Signature of job to use as baseline.z-dz--ddpzDistributed training.z--ddp_workersz5Nb of workers for distributed, default to nb of GPUs.z
--git_saveFzRun from a clean git clone.)r   r   r   z8Remove XP folder, reschedule job, starting from scratch.Úargv)r0   Úlaunchz-az--attachzPAttach to the remote process. Interrupting the command will kill the remote job.z	--no_tailÚtailz*Does not tail the log once job is started.r   z#Cancel any existing job and return.Úinfoz-jz--job_idzFind job by job id.z
Cancel jobzShow entire logzTail logz-mz	--metricszShow last metricsÚimportÚexportÚsigszAll the XP sigs to export.)ÚargparseÚArgumentParserr   Úadd_subparsersÚ
add_parserr   r'   Úfloatr&   Úadd_mutually_exclusive_groupÚset_defaultsr   r
   r   r   r   r   )	r   Ú
subparsersr,   Úgroupr3   r5   r7   Úimport_r9   s	            r   Ú
get_parserrE   +   só  € Ü×$Ñ$Ó&€FØ
×ÑØ�TØð"ð ô #ð ×ÑØØðZð ô [ð ×Ñ˜ T°,ÐEWÐÔXØ×&Ñ&ØÐ2¸TÈ	ð 'ó S€Jà× Ñ  Ó(€DÜ�TÔÜ�TÔØ×Ñ�d˜J¨|Ø5ð ô 7à×Ñ�i¨ØZð ô \à×Ñ�d˜L°!¼%ð/ð ô 0ð 	×ÑÐ'°ÀIØRð ô Tð 	×Ñ�k¨,ØVð ô Xà×Ñ�d˜H¬3ØXð ô Zà×Ñ�d˜M°,Ø9ð ô ;ð ×-Ñ-Ó/€EØ	×Ñ�t˜Z¬cØNð ô Pà	×Ñ�t˜W¬3ØKð ô Mà	×Ñ�t˜X¬CØKð ô Mð 	×Ñ�h |ØZð ô \ð 	×ÑØ�cØZð ô \ð 	×Ñ�j¨ð>ð ô ?ð 	×Ñœ[ÐÔ)à
×
Ñ
 Ð,LÐ
Ó
M€CØ×Ñ�T˜<Ð.TÐÔUØ×Ñ�T˜7¨<Ð>UÐÔVØ×Ñ�_¬3ØQð ô Sà×Ñ�\¨,ÀØ7ð ô 9à×Ñ�Y |ØTð ô Và×Ñ�V 3ÐÔ'Ø×ÑœJÐÔ'à×"Ñ" 8Ó,€FØ
×Ñ˜˜lÐ1WÐÔXØ
×Ñ˜˜j°ð4ð ô 5ð ×Ñ˜¨MÀÐPTØIð ô Kà
×Ñ˜˜j°ØBð ô Dà
×Ñ˜	¨,ØWð ô Yä�VÔÜ�VÔØ
×Ñ˜ cÐÔ*Ø
×Ñœ}ÐÔ-à× Ñ  Ó(€DØ×Ñ�d˜LÐ/UÐÔVØ×Ñ�d˜JÐ-BÐÔCØ×Ñ�d˜J¨|À,ÐÔOØ×Ñ�d˜G¨LÐ?PÐÔQØ×Ñ�d˜H¨\À
ÐÔKØ×Ñ�d˜K°ÐCVÐÔWØ×Ñ�f CÐÔ(Ø×Ñœ[ÐÔ)à×#Ñ# HÓ-€GØ×Ñ¤ÐÔ.à×"Ñ" 8Ó,€FØ
×Ñ˜ cÐ0LÐÔMØ
×Ñœ}ÐÔ-à€Mr   c                  ó>  — t        «       } | j                  «       }t        |j                  «       |j                  €t        d«       t        |j                  |j                  «      }t        |dd «      �I	 |j                  |j                  «      }t        ddd|j                  «       ||j                  z   |_        t        |dd «      �|j                  |j                   _        |j	                  ||«       y # t        $ r t        d|j                  › �«       Y Œ‹w xY w)NzYou must give an action.Úfrom_sigz(Could not find an existing run with sig ÚParserzInjecting argvzfrom sigr   )rE   Ú
parse_argsr   Úverboser   r   r   Úmain_moduleÚpackageÚgetattrÚget_argv_from_sigrG   ÚRuntimeErrorr	   r4   r   Údora)r   ÚargsÚmainr4   s       r   rR   rR   •   sð   € Ü‹\€FØ×ÑÓ€Dä�$—,‘,Ôà‡{�{ÐÜÐ(Ô)ä�D×$Ñ$ d§l¡lÓ3€Däˆt�Z Ó&Ð2ð	NØ×)Ñ)¨$¯-©-Ó8ˆDô 	�8Ð-¨t°ZÀÇÁÔOØ˜4Ÿ9™9Ñ$ˆŒ	äˆt�Z Ó&Ð2Ø!Ÿ]™]ˆ�	‰	ÔØ‡K�K��dÕøô ò 	NÜÐ<¸T¿]¹]¸OÐLÖMð	Nús   Á5C8 Ã8!DÄDÚ__main__)Ú__doc__r;   r,   r   r7   r   r5   r   Úlogr   r   r	   r3   r
   Úsharer   r   Ú_utilsr   r   r'   rE   rR   Ú__name__© r   r   Ú<module>rZ      sR   ðñó
 å Ý Ý !ß 1Ñ 1Ý ß /Ý òWò<ògòTð0 ˆzÒÙ…Fð r   