Ë
    çÍ:j­  ã                   ó²  — d Z ddlZddlZddlZddlmZmZ ddlmZ ddl	m
Z
 ddlmZmZmZmZ ddlZddlmZmZmZ ddlmZ dd	lmZ d
dlmZ  ej6                  e«      ZeD � cg c]  } | j<                  dk7  sŒ| j<                  ‘Œ  c} Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z"deeee#e$f         dee#   de#fd„Z% G d„ de«      Z& G d„ de«      Z' G d„ de«      Z( G d„ de«      Z)dee#e#f   fd„Z* G d „ d!e«      Z+ G d"„ d#e«      Z, G d$„ d%e«      Z- G d&„ d'e«      Z. G d(„ d)e«      Z/ G d*„ d+e«      Z0 G d,„ d-e«      Z1 G d.„ d/e«      Z2yc c} w )0a•  Contains commands to interact with jobs on the Hugging Face Hub.

Usage:
    # run a job
    hf jobs run <image> <command>

    # List running or completed jobs
    hf jobs ps [-a] [-f key=value] [--format TEMPLATE]

    # Stream logs from a job
    hf jobs logs <job-id>

    # Inspect detailed information about a job
    hf jobs inspect <job-id>

    # Cancel a running job
    hf jobs cancel <job-id>
é    N)Ú	NamespaceÚ_SubParsersAction)Úasdict)ÚPath)ÚDictÚListÚOptionalÚUnion)ÚHfApiÚSpaceHardwareÚ	get_token)Úlogging)Úload_dotenvé   )ÚBaseHuggingfaceCLICommandz	zero-a10gc                   ó"   — e Zd Zedefd„«       Zy)ÚJobsCommandsÚparserc                 ó   ‡— | j                  dd¬«      Š‰j                  d¬«      }‰j                  ˆfd„¬«       t        j	                  |«       t
        j	                  |«       t        j	                  |«       t        j	                  |«       t        j	                  |«       t        j	                  |«       t        j	                  |«       y )NÚjobszRun and manage Jobs on the Hub.©Úhelpz$huggingface.co jobs related commandsc                 ó$   •— ‰j                  «       S ©N©Ú
print_help)ÚargsÚjobs_parsers    €úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/huggingface_hub/cli/jobs.pyú<lambda>z2JobsCommands.register_subcommand.<locals>.<lambda>>   s   ø€ °;×3IÑ3IÓ3K€ ó    ©Úfunc)Ú
add_parserÚadd_subparsersÚset_defaultsÚInspectCommandÚregister_subcommandÚLogsCommandÚ	PsCommandÚ
RunCommandÚCancelCommandÚ	UvCommandÚScheduledJobsCommands)r   Újobs_subparsersr   s     @r   r(   z JobsCommands.register_subcommand8   s¥   ø€ à×'Ñ'¨Ð5VÐ'ÓWˆØ%×4Ñ4Ð:`Ð4Óaˆð 	× Ñ Ó&KÐ ÔLô 	×*Ñ*¨?Ô;Ü×'Ñ'¨Ô8Ü×%Ñ% oÔ6Ü×&Ñ& Ô7Ü×)Ñ)¨/Ô:Ü×%Ñ% oÔ6Ü×1Ñ1°/ÕBr!   N©Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r(   © r!   r   r   r   7   s   „ ØðCÐ$5ò Có ñCr!   r   c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	r+   r   ÚreturnNc                 óz  — | j                  dd¬«      }|j                  dt        d¬«       |j                  ddd	d
¬«       |j                  ddd	d¬«       |j                  dt        d¬«       |j                  dt        d¬«       |j                  dt        ddj                  t        «      › d�¬«       |j                  dt        d¬«       |j                  dddd¬«       |j                  dt        d¬«       |j                  dt        d ¬«       |j                  d!d"d#¬$«       |j                  t        ¬%«       y )&NÚrunz	Run a Jobr   ÚimageúThe Docker image to use.©Útyper   ú-eú--envÚappendú/Set environment variables. E.g. --env ENV=value©Úactionr   ú-sú	--secretsúvSet secret environment variables. E.g. --secrets SECRET=value or `--secrets HF_TOKEN` to pass your Hugging Face token.ú
--env-fileú(Read in a file of environment variables.ú--secrets-fileú/Read in a file of secret environment variables.ú--flavorúTFlavor for the hardware, as in HF Spaces. Defaults to `cpu-basic`. Possible values: ú, ú.ú	--timeoutúVMax duration: int/float with s (seconds, default), m (minutes), h (hours) or d (days).ú-dú--detachÚ
store_truez3Run the Job in the background and print the Job ID.ú--namespaceúVThe namespace where the Job will be created. Defaults to the current user's namespace.ú--tokenúIA User Access Token generated from https://huggingface.co/settings/tokensÚcommandú...úThe command to run.©Únargsr   r"   )r$   Úadd_argumentÚstrÚjoinÚSUGGESTED_FLAVORSr&   r+   ©r   Ú
run_parsers     r   r(   zRunCommand.register_subcommandK   s�  € à×&Ñ& u°;Ð&Ó?ˆ
Ø×Ñ ¬cÐ8RÐÔSØ×Ñ  g°hÐEvÐÔwØ×ÑØØØðKð 	 ô 	
ð 	×Ñ ´3Ð=gÐÔhØ×ÑÐ 0´sÐArÐÔsØ×ÑØÜØgÐhl×hqÑhqô  sDó  iEð  hFð  FGð  Hð 	 ô 	
ð
 	×ÑØÜØið 	 ô 	
ð
 	×ÑØØØØFð	 	 ô 	
ð 	×ÑØÜØið 	 ô 	
ð
 	×ÑØÜØ\ð 	 ô 	
ð
 	×Ñ 	°Ð=RÐÔSØ×Ñ¤ZÐÕ0r!   r   c                 óÊ  — |j                   | _         |j                  | _        i | _        |j                  rc| j                  j	                  t        t        |j                  «      j                  «       t        j                  j                  «       ¬«      «       |j                  xs g D ]D  }| j                  j	                  t        |t        j                  j                  «       ¬«      «       ŒF i | _        t        «       }|j                  rG| j                  j	                  t        t        |j                  «      j                  «       |¬«      «       |j                  xs g D ](  }| j                  j	                  t        ||¬«      «       Œ* |j                  | _        |j                  | _        |j                   | _        |j"                  | _        |j$                  | _        y ©N©Úenviron)r:   rX   ÚenvÚenv_fileÚupdater   r   Ú	read_textÚosrf   ÚcopyÚsecretsÚ_get_extended_environÚsecrets_fileÚflavorÚtimeoutÚdetachÚ	namespaceÚtoken©Úselfr   Ú	env_valueÚextended_environÚsecrets        r   Ú__init__zRunCommand.__init__x   sL  € ØŸ*™*ˆŒ
Ø"&§,¡,ˆŒØ-/ˆŒØ�=Š=Ø�H‰H�O‰OœK¬¨T¯]©]Ó(;×(EÑ(EÓ(GÔQS×Q[ÑQ[×Q`ÑQ`ÓQbÔcÔdØŸ™š Rò 	OˆIØ�H‰H�O‰OœK¨	¼2¿:¹:¿?¹?Ó;LÔMÕNð	Oà13ˆŒÜ0Ó2ÐØ×ÒØ�L‰L×Ñ¤¬D°×1BÑ1BÓ,C×,MÑ,MÓ,OÐYiÔ jÔkØ—l‘lÒ( bò 	OˆFØ�L‰L×Ñ¤¨FÐ<LÔ MÕNð	Oà/3¯{©{ˆŒØ&*§l¡lˆŒØ ŸK™KˆŒØ(,¯©ˆŒØ$(§J¡Jˆ�
r!   c           	      ó¾  — t        | j                  ¬«      }|j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  ¬«      }t        d|j                  › �«       t        d|j                  › �«       | j                  ry |j                  |j                  ¬«      D ]  }t        |«       Œ y )N©rt   )r:   rX   rg   rm   rp   rq   rs   úJob started with ID: ú	View at: ©Újob_id)r   rt   Úrun_jobr:   rX   rg   rm   rp   rq   rs   ÚprintÚidÚurlrr   Úfetch_job_logs©rv   ÚapiÚjobÚlogs       r   r9   zRunCommand.runŒ   s±   € Ü˜$Ÿ*™*Ô%ˆØ�k‰kØ—*‘*Ø—L‘LØ—‘Ø—L‘LØ—;‘;Ø—L‘LØ—n‘nð ó 
ˆô 	Ð% c§f¡f XÐ.Ô/Ü�	˜#Ÿ'™'˜Ð#Ô$à�;Š;Øð ×%Ñ%¨S¯V©VÐ%Ó4ò 	ˆCÜ�#�Jñ	r!   ©r7   N©	r1   r2   r3   r4   r   r(   r   rz   r9   r5   r!   r   r+   r+   J   s<   „ Øð*1Ð$5ð *1¸$ò *1ó ð*1ðX/˜Yð /¨4ó /ô(r!   r+   c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	r)   r   r7   Nc                 óæ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t        d
¬«       |j                  t        ¬«       y )NÚlogszFetch the logs of a Jobr   r€   úJob IDr<   rT   úQThe namespace where the job is running. Defaults to the current user's namespace.rV   rW   r"   )r$   r]   r^   r&   r)   ra   s     r   r(   zLogsCommand.register_subcommand¤   sy   € à×&Ñ& vÐ4MÐ&ÓNˆ
Ø×Ñ ¬s¸ÐÔBØ×ÑØÜØdð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×Ñ¤[ÐÕ1r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   ©r€   rs   rt   ©rv   r   s     r   rz   zLogsCommand.__init__²   s#   € ØŸ;™;ˆŒØ(,¯©ˆŒØ$(§J¡Jˆ�
r!   c                 óž   — t        | j                  ¬«      }|j                  | j                  | j                  ¬«      D ]  }t        |«       Œ y ©Nr|   ©r€   rs   )r   rt   r…   r€   rs   r‚   )rv   r‡   r‰   s      r   r9   zLogsCommand.run·   s>   € Ü˜$Ÿ*™*Ô%ˆØ×%Ñ%¨T¯[©[ÀDÇNÁNÐ%ÓSò 	ˆCÜ�#�Jñ	r!   rŠ   r‹   r5   r!   r   r)   r)   £   s;   „ Øð2Ð$5ð 2¸$ò 2ó ð2ð/˜Yð /¨4ó /ô
r!   r)   ÚrowsÚheadersr7   c           
      óô  — t        g | ¢|‘­Ž D �cg c]  }t        d„ |D «       «      ‘Œ }}t        t        j                  «       j                  t        |«      dz  «      }t        |«      t        |«      z   |kD  r|j                  t        |«      «      }||xx   dz  cc<   t        |«      t        |«      z   |k  r#|t        |«      z
  t        |«      z
  ||   z   ||<   t        |«      t        |«      z   |kD  rŒ dt        |«      z  j                  |Ž }g }|j                   |j                  |Ž «       |j                   |j                  |D �cg c]  }d|z  ‘Œ	 c}Ž «       | D ]r  }	t        |	|«      D �
�cg c];  \  }
}t        t        |
«      «      |kD  rt        |
«      d|dz
   dz   n
t        |
«      ‘Œ= }}
}|j                   |j                  |Ž «       Œt d	j                  |«      S c c}w c c}w c c}}
w )
z‰
    Inspired by:

    - stackoverflow.com/a/8356620/593036
    - stackoverflow.com/questions/9535954/printing-lists-as-tabular-data
    c              3   óD   K  — | ]  }t        t        |«      «      –— Œ y ­wr   )Úlenr^   )Ú.0Úxs     r   ú	<genexpr>z_tabulate.<locals>.<genexpr>Ä   s   è ø€ Ò/ a”cœ#˜a›&—kÑ/ùs   ‚ é   é   z{{:{}}} ú-Né   rY   ú
)ÚzipÚmaxrk   Úget_terminal_sizeÚcolumnsr›   ÚsumÚindexÚformatr@   r^   r_   )r—   r˜   ÚcolÚ
col_widthsÚterminal_widthÚcol_to_minimizeÚ
row_formatÚlinesÚwÚrowr�   Ú	col_widthÚrow_format_argss                r   Ú	_tabulaterµ   ½   sê  € ô <?Ð;NÀÐ;NÀgÒ;NÖO°C”#Ñ/¨3Ô/Õ/ÐO€JÐOÜœ×-Ñ-Ó/×7Ñ7¼¸W»ÈÑ9JÓK€NÜ
ˆg‹,œ˜Z›Ñ
(¨>Ò
9Ø$×*Ñ*¬3¨z«?Ó;ˆØ�?Ó#¨Ñ)Ó#Üˆw‹<œ#˜j›/Ñ)¨^Ò;Ø*8¼3¸z»?Ñ*JÌSÐQXË\Ñ*YÐ\fÐgvÑ\wÑ*wˆJ�Ñ'ô	 ˆg‹,œ˜Z›Ñ
(¨>Ó
9ð
 4�*œs 7›|Ñ+×3Ñ3°ZÐ@€JØ€EØ	‡L�LÐ"�×"Ñ" GÐ,Ô-Ø	‡L�LÐ"�×"Ñ"°jÖ$A° S¨1£WÒ$AÐBÔCØò :ˆô !$ C¨Ó 4÷
á��9ô 03´3°q³6«{¸YÒ/FŒC�‹F�?�Y ‘]Ð# eÒ+ÌCÐPQËFÑRð
ˆñ 
ð 	�‰Ð&�Z×&Ñ&¨Ð8Õ9ð:ð �9‰9�UÓÐùò# Pùò %Bùó
s   �G*ÅG/Å6A G4c                   ó^   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zde	e
e
f   defd	„Zd
„ Zy)r*   r   r7   Nc                 ó<  — | j                  dd¬«      }|j                  dddd¬«       |j                  d	t        d
¬«       |j                  dt        d¬«       |j                  dddg d¬«       |j                  dt        d¬«       |j                  t        ¬«       y )NÚpsz	List Jobsr   ú-aú--allrS   z*Show all Jobs (default shows just running)rB   rT   úUThe namespace from where it lists the jobs. Defaults to the current user's namespace.r<   rV   rW   ú-fú--filterr@   ú>Filter output based on conditions provided (format: key=value)©rC   Údefaultr   ú--formatú%Format output using a custom templater"   )r$   r]   r^   r&   r*   ra   s     r   r(   zPsCommand.register_subcommandÙ   sÇ   € à×&Ñ& t°+Ð&Ó>ˆ
Ø×ÑØØØØ=ð	 	 ô 	
ð 	×ÑØÜØhð 	 ô 	
ð
 	×ÑØÜØ\ð 	 ô 	
ð 	×ÑØØØØØQð 	 ô 	
ð 	×ÑØÜØ8ð 	 ô 	
ð
 	×Ñ¤YÐÕ/r!   r   c                 óH  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        i | _        |j
                  D ]H  }d|v r3|j                  dd«      \  }}|| j                  |j                  «       <   Œ:t        d|› d�«       ŒJ y ©Nú=r   z)Warning: Ignoring invalid filter format 'z'. Use key=value format.©	Úallrs   rt   rª   ÚfiltersÚfilterÚsplitÚlowerr‚   ©rv   r   ÚfÚkeyÚvalues        r   rz   zPsCommand.__init__ü   ó�   € ØŸ™ˆŒØ(,¯©ˆŒØ$(§J¡JˆŒ
Ø%)§[¡[ˆŒØ')ˆŒð —‘ò 	_ˆAØ�a‰xØŸW™W S¨!›_‘
��UØ,1�—‘˜SŸY™Y›[Ò)äÐAÀ!ÀÐD\Ð]Õ^ñ	_r!   c           
      óL  — 	 t        | j                  ¬«      }|j                  | j                  ¬«      }g d¢}g }|D ]Þ  }|j                  r|j                  j
                  nd}| j                  s|dvrŒ8|j                  }|j                  xs d}|j                  xs g }	|	rdj                  |	«      nd}
|j                  r|j                  j                  d«      nd}|||j                  «       |
d	œ}| j                  |«      sŒÉ|j                  |||
||g«       Œà |sad
}| j                   rDddj                  | j                   j#                  «       D ��cg c]  \  }}|› d|› �‘Œ c}}«      › �}t%        d|› �«       y| j'                  ||«       yc c}}w # t(        j*                  $ r}t%        d|› �«       Y d}~yd}~wt,        t.        t0        f$ r}t%        d|› �«       Y d}~yd}~wt2        $ r.}t%        dt5        |«      j6                  › d|› �«       Y d}~yd}~ww xY w)z˜
        Fetch and display job information for the current user.
        Uses Docker-style filtering with -f/--filter flag and key=value pairs.
        r|   ©rs   )zJOB IDúIMAGE/SPACEÚCOMMANDÚCREATEDÚSTATUSÚUNKNOWN)ÚRUNNINGÚUPDATINGúN/Aú ú%Y-%m-%d %H:%M:%S)rƒ   r:   ÚstatusrX   Ú ú matching filters: rM   rÅ   zNo jobs foundNzError fetching jobs data: zError processing jobs data: úUnexpected error - ú: )r   rt   Ú	list_jobsrs   rÝ   ÚstagerÇ   rƒ   Údocker_imagerX   r_   Ú
created_atÚstrftimerË   Ú_matches_filtersr@   rÈ   Úitemsr‚   Ú_print_outputÚrequestsÚRequestExceptionÚKeyErrorÚ
ValueErrorÚ	TypeErrorÚ	Exceptionr=   r1   )rv   r‡   r   Útable_headersr—   rˆ   rÝ   r€   Úimage_or_spacerX   Úcommand_strrå   Újob_propertiesÚfilters_msgÚkÚvÚes                    r   r9   zPsCommand.run  s  € ð
A	AÜ˜dŸj™jÔ)ˆCð —=‘=¨4¯>©>�=Ó:ˆDò VˆMð ˆDàò "W�à-0¯ZªZ˜Ÿ™×)Ò)¸Y�ð —x’x FÐ2IÑ$IØð Ÿ™�ð "%×!1Ñ!1Ò!:°U�ð Ÿ+™+Ò+¨�Ù3:˜cŸh™h wÔ/À�ð NQÏ^Ê^˜SŸ^™^×4Ñ4Ð5HÔIÐaf�
ð !Ø+Ø$Ÿl™l›nØ*ñ	"�ð ×,Ñ,¨^Ô<Øð —‘˜V ^°[À*ÈfÐUÕVðE"WñJ Ø �Ø—<’<Ø$7¸¿	¹	ÐZ^×ZfÑZf×ZlÑZlÓZn×BoÑRVÐRSÐUVÀaÀSÈÈ!ÈÂ:ÓBoÓ8pÐ7qÐ"r�Kä˜ k ]Ð3Ô4Øð ×Ñ˜t ]Õ3ùó Cpøô ×(Ñ(ò 	4ÜÐ.¨q¨cÐ2×3Ñ3ûÜœ*¤iÐ0ò 	6ÜÐ0°°Ð4×5Ñ5ûÜò 	AÜÐ'¬¨Q«×(8Ñ(8Ð'9¸¸A¸3Ð?×@Ñ@ûð	AúsH   ‚EF ÅFÅ'F Æ F ÆF ÆH#Æ,F?Æ?H#ÇG)Ç)H#Ç5$HÈH#ró   c                 óP  — | j                   j                  «       D ]‰  \  }}||vr yd|v sd|v rQ|j                  dd«      j                  dd«      }t        j                  d|› d�||   t        j
                  «      rŒc y|j                  «       ||   j                  «       vsŒ‰ y y)	z+Check if job matches all specified filters.FÚ*ú?ú.*rN   ú^ú$T©rÈ   rè   ÚreplaceÚreÚsearchÚ
IGNORECASErË   ©rv   ró   rÎ   ÚpatternÚregex_patterns        r   rç   zPsCommand._matches_filtersS  ó¢   € à ŸL™L×.Ñ.Ó0ò 	‰LˆC�à˜.Ñ(Ùð �g‰~ ¨¡à '§¡°°TÓ :× BÑ BÀ3ÈÓ L�Ü—y‘y 1 ] O°1Ð!5°~ÀcÑ7JÌBÏMÉMÕZÙ à—‘“¨°sÑ(;×(AÑ(AÓ(CÒCÙð	ð r!   c           	      ó  — | j                   r_| j                   }|D ]M  }|}t        g d¢«      D ].  \  }}d|› d�}||v sŒ|j                  |t        ||   «      «      }Œ0 t	        |«       ŒO yt	        t        ||¬«      «       y)ú,Print output according to the chosen format.)rƒ   r:   rX   ÚcreatedrÝ   ú{{.ú}}©r˜   N©rª   Ú	enumeraterÿ   r^   r‚   rµ   ©	rv   r—   r˜   Útemplater²   ÚlineÚiÚfieldÚplaceholders	            r   ré   zPsCommand._print_outputf  s�   € à�;Š;à—{‘{ˆHØò �Ø�Ü )Ò*YÓ Zò F‘H�A�uØ$)¨%¨°Ð"5�KØ" dÒ*Ø#Ÿ|™|¨K¼¸SÀ¹V»ÓE™ðFô �d•ñô ÜØØ#ôõr!   rŠ   ©r1   r2   r3   r4   r   r(   r   rz   r9   r   r^   Úboolrç   ré   r5   r!   r   r*   r*   Ø   sb   „ Øð 0Ð$5ð  0¸$ò  0ó ð 0ðD_˜Yð _¨4ó _óFAðP¨t°C¸°H©~ð À$ó ó&r!   r*   c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	r'   r   r7   Nc                 óÞ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	d
d¬«       |j                  t        ¬«       y )NÚinspectz0Display detailed information on one or more Jobsr   rT   r�   r<   rV   rW   Újob_idsrY   zThe jobs to inspectr[   r"   )r$   r]   r^   r&   r'   ra   s     r   r(   z"InspectCommand.register_subcommand}  sz   € à×&Ñ& yÐ7iÐ&Ójˆ
Ø×ÑØÜØdð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×Ñ 	°Ð=RÐÔSØ×Ñ¤^ÐÕ4r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   )rs   rt   r  r“   s     r   rz   zInspectCommand.__init__‹  s#   € Ø(,¯©ˆŒØ$(§J¡JˆŒ
Ø"&§,¡,ˆ�r!   c           
      ó$  — t        | j                  ¬«      }| j                  D �cg c]  }|j                  || j                  ¬«      ‘Œ! }}t        t        j                  |D �cg c]  }t        |«      ‘Œ c}dt        ¬«      «       y c c}w c c}w )Nr|   r–   é   ©ÚindentrÀ   )
r   rt   r  Úinspect_jobrs   r‚   ÚjsonÚdumpsr   r^   )rv   r‡   r€   r   rˆ   s        r   r9   zInspectCommand.run�  sg   € Ü˜$Ÿ*™*Ô%ˆØW[×WcÑWcÖdÈV�—‘ v¸¿¹�ÕHÐdˆÐdÜŒd�j‰j°Ö6¨#œ& �+Ò6¸qÌ#ÔNÕOùò eùÚ6ó   ¥$BÁ#BrŠ   r‹   r5   r!   r   r'   r'   |  s<   „ Øð5Ð$5ð 5¸$ò 5ó ð5ð/˜Yð /¨4ó /ô
Pr!   r'   c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	r,   r   r7   Nc                 óæ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t        d
¬«       |j                  t        ¬«       y )NÚcancelzCancel a Jobr   r€   r�   r<   rT   r�   rV   rW   r"   )r$   r]   r^   r&   r,   ra   s     r   r(   z!CancelCommand.register_subcommand—  sx   € à×&Ñ& x°nÐ&ÓEˆ
Ø×Ñ ¬s¸ÐÔBØ×ÑØÜØdð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×Ñ¤]ÐÕ3r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   r’   r“   s     r   rz   zCancelCommand.__init__¥  s#   € ØŸ;™;ˆŒØŸ™ˆŒØ$(§J¡Jˆ�
r!   c                 ó~   — t        | j                  ¬«      }|j                  | j                  | j                  ¬«       y r•   )r   rt   Ú
cancel_jobr€   rs   ©rv   r‡   s     r   r9   zCancelCommand.runª  s(   € Ü˜$Ÿ*™*Ô%ˆØ�‰˜dŸk™k°T·^±^ˆÕDr!   rŠ   r‹   r5   r!   r   r,   r,   –  s<   „ Øð4Ð$5ð 4¸$ò 4ó ð4ð/˜Yð /¨4ó /ô
Er!   r,   c                   ó8   — e Zd ZdZed„ «       Zdeddfd„Zdd„Zy)	r-   z.Run UV scripts on Hugging Face infrastructure.c                 ór  — | j                  dd¬«      }|j                  ddd¬«      }|j                  dd	¬«      }|j                  d
d¬«       |j                  dddg ¬«       |j                  dt        d¬«       |j                  dd¬«       |j                  dt        ddj	                  t
        «      › d�¬«       |j                  dddd¬«       |j                  dddd ¬«       |j                  d!t        d"¬«       |j                  d#t        d$¬«       |j                  d%t        d&¬«       |j                  d'd(d)d*¬«       |j                  d+t        d,¬«       |j                  d-t        d.¬«       |j                  d/dd0d1¬2«       |j                  d3d4t        d5¬«       |j                  t        ¬6«       y7)8úRegister UV run subcommand.ÚuvzERun UV scripts (Python with inline dependencies) on HF infrastructurer   Ú
uv_commandúUV commandsT©Údestr   Úrequiredr9   ú8Run a UV script (local file or URL) on HF infrastructureÚscriptú$UV script to run (local file or URL)Úscript_argsrY   úArguments for the script©r\   r   rÀ   ú--imageú.Use a custom Docker image with `uv` installed.r<   ú--repoúCRepository name for the script (creates ephemeral if not specified)rK   rL   rM   rN   r>   r?   r@   úEnvironment variablesrB   rD   rE   rF   rG   rH   rI   rJ   rO   ú Max duration (e.g., 30s, 5m, 1h)rQ   rR   rS   úRun in backgroundrT   rU   rV   úHF tokenú--withú%Run with the given packages installedÚwith_©rC   r   r2  ú-pú--pythonú5The Python interpreter to use for the run environmentr"   N)r$   r%   r]   r^   r_   r`   r&   r-   ©r   Ú	uv_parserÚ
subparsersrb   s       r   r(   zUvCommand.register_subcommand²  s  € ð ×%Ñ%ØØXð &ó 
ˆ	ð
 ×-Ñ-°<ÀmÐ^bÐ-Ócˆ
ð  ×*Ñ*ØØKð +ó 
ˆ
ð 	×Ñ Ð/UÐÔVØ×Ñ °UÐA[ÐegÐÔhØ×Ñ 	´Ð:jÐÔkØ×ÑØØVð 	 ô 	
ð 	×ÑØÜØgÐhl×hqÑhqô  sDó  iEð  hFð  FGð  Hð 	 ô 	
ð
 	×Ñ  g°hÐE\ÐÔ]Ø×ÑØØØðKð 	 ô 	
ð 	×Ñ ´3Ð=gÐÔhØ×ÑØÜØBð 	 ô 	
ð
 	×Ñ ´#Ð<^ÐÔ_Ø×Ñ  j¸ÐL_ÐÔ`Ø×ÑØÜØið 	 ô 	
ð
 	×Ñ 	´¸*ÐÔEà×Ñ °Ð@gÐnuÐÔvØ×ÑØ�*¤3Ð-dð 	 ô 	
ð 	×Ñ¤YÐÕ/r!   r   r7   Nc                 óR  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j
                  | _        i | _        |j                  rc| j                  j                  t        t        |j                  «      j                  «       t        j                  j                  «       ¬«      «       |j                  xs g D ]D  }| j                  j                  t        |t        j                  j                  «       ¬«      «       ŒF i | _        t!        «       }|j"                  rG| j                  j                  t        t        |j"                  «      j                  «       |¬«      «       |j                  xs g D ](  }| j                  j                  t        ||¬«      «       Œ* |j$                  | _        |j&                  | _        |j(                  | _        |j*                  | _        |j,                  | _        |j.                  | _        y©z-Initialize the command with parsed arguments.re   N)r5  r7  rD  ÚdependenciesÚpythonr:   rg   rh   ri   r   r   rj   rk   rf   rl   rm   rn   ro   rp   rq   rr   rs   rt   ÚrepoÚ_reporu   s        r   rz   zUvCommand.__init__ì  s|  € à—k‘kˆŒØ×+Ñ+ˆÔØ ŸJ™JˆÔØ—k‘kˆŒØ—Z‘ZˆŒ
Ø-/ˆŒØ�=Š=Ø�H‰H�O‰OœK¬¨T¯]©]Ó(;×(EÑ(EÓ(GÔQS×Q[ÑQ[×Q`ÑQ`ÓQbÔcÔdØŸ™š Rò 	OˆIØ�H‰H�O‰OœK¨	¼2¿:¹:¿?¹?Ó;LÔMÕNð	Oà13ˆŒÜ0Ó2ÐØ×ÒØ�L‰L×Ñ¤¬D°×1BÑ1BÓ,C×,MÑ,MÓ,OÐYiÔ jÔkØ—l‘lÒ( bò 	OˆFØ�L‰L×Ñ¤¨FÐ<LÔ MÕNð	Oà/3¯{©{ˆŒØ&*§l¡lˆŒØ ŸK™KˆŒØ(,¯©ˆŒØ$(§J¡JˆŒ
Ø—Y‘Yˆ�
r!   c                 ó\  — t        j                  t         j                  «       t        | j                  ¬«      }|j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                   ¬«      }t#        d|j$                  › �«       t#        d|j&                  › �«       | j(                  ry|j+                  |j$                  ¬«      D ]  }t#        |«       Œ y)zExecute UV command.r|   )r5  r7  rN  rO  r:   rg   rm   rp   rq   rs   rQ  r}   r~   Nr   )r   Úset_verbosityÚINFOr   rt   Ú
run_uv_jobr5  r7  rN  rO  r:   rg   rm   rp   rq   rs   rQ  r‚   rƒ   r„   rr   r…   r†   s       r   r9   zUvCommand.run  sã   € ä×ÑœgŸl™lÔ+Ü˜$Ÿ*™*Ô%ˆØ�n‰nØ—;‘;Ø×(Ñ(Ø×*Ñ*Ø—;‘;Ø—*‘*Ø—‘Ø—L‘LØ—;‘;Ø—L‘LØ—n‘nØ—*‘*ð ó 
ˆô 	Ð% c§f¡f XÐ.Ô/Ü�	˜#Ÿ'™'˜Ð#Ô$à�;Š;Øð ×%Ñ%¨S¯V©VÐ%Ó4ò 	ˆCÜ�#�Jñ	r!   rŠ   ©	r1   r2   r3   Ú__doc__r4   r(   r   rz   r9   r5   r!   r   r-   r-   ¯  s0   „ Ù8àñ70ó ð70ðr˜Yð ¨4ó ô2r!   r-   c                  ód   — t         j                  j                  «       } t        «       x}�|| d<   | S )NÚHF_TOKEN)rk   rf   rl   r   )rx   rt   s     r   rn   rn   #  s1   € Ü—z‘z—‘Ó(ÐÜ“ÐˆÐ)Ø',Ð˜Ñ$ØÐr!   c                   ó"   — e Zd Zedefd„«       Zy)r.   r   c                 ó   ‡— | j                  dd¬«      }|j                  d¬«      Š|j                  ˆfd„¬«       t        j	                  ‰«       t
        j	                  ‰«       t        j	                  ‰«       t        j	                  ‰«       t        j	                  ‰«       t        j	                  ‰«       t        j	                  ‰«       y )NÚ	scheduledz,Create and manage scheduled Jobs on the Hub.r   z.huggingface.co scheduled jobs related commandsc                 ó$   •— ‰j                  «       S r   r   )r   Úscheduled_jobs_subparserss    €r   r    z;ScheduledJobsCommands.register_subcommand.<locals>.<lambda>3  s   ø€ Ð=V×=aÑ=aÓ=c€ r!   r"   )r$   r%   r&   ÚScheduledRunCommandr(   ÚScheduledPsCommandÚScheduledInspectCommandÚScheduledDeleteCommandÚScheduledSuspendCommandÚScheduledResumeCommandÚScheduledUvCommand)r   Úscheduled_jobs_parserr^  s     @r   r(   z)ScheduledJobsCommands.register_subcommand+  s³   ø€ à &× 1Ñ 1°+ÐDrÐ 1Ó sÐØ$9×$HÑ$HØAð %Ió %
Ð!ð
 	×*Ñ*Ó0cÐ*Ôdô 	×/Ñ/Ð0IÔJÜ×.Ñ.Ð/HÔIÜ×3Ñ3Ð4MÔNÜ×2Ñ2Ð3LÔMÜ×3Ñ3Ð4MÔNÜ×2Ñ2Ð3LÔMÜ×.Ñ.Ð/HÕIr!   Nr0   r5   r!   r   r.   r.   *  s   „ ØðJÐ$5ò Jó ñJr!   r.   c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	r_  r   r7   Nc                 óÔ  — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	d
dd ¬«       |j                  dd
dd ¬«       |j                  dddd¬«       |j                  dddd¬«       |j                  dt        d¬«       |j                  dt        d¬«       |j                  dt        ddj                  t        «      › d�¬«       |j                  dt        d ¬«       |j                  d!t        d"¬«       |j                  d#t        d$¬«       |j                  d%d&d'¬(«       |j                  t        ¬)«       y )*Nr9   zSchedule a Jobr   ÚscheduleúWOne of annually, yearly, monthly, weekly, daily, hourly, or a CRON schedule expression.r<   r:   r;   ú	--suspendrS   ú!Suspend (pause) the scheduled Job©rC   r   rÀ   ú--concurrencyú8Allow multiple instances of this Job to run concurrentlyr>   r?   r@   rA   rB   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rT   z`The namespace where the scheduled Job will be created. Defaults to the current user's namespace.rV   rW   rX   rY   rZ   r[   r"   )r$   r]   r^   r_   r`   r&   r_  ra   s     r   r(   z'ScheduledRunCommand.register_subcommand@  sÂ  € à×&Ñ& uÐ3CÐ&ÓDˆ
Ø×ÑØÜØjð 	 ô 	
ð
 	×Ñ ¬cÐ8RÐÔSØ×ÑØØØ4Øð	 	 ô 	
ð 	×ÑØØØKØð	 	 ô 	
ð 	×Ñ  g°hÐEvÐÔwØ×ÑØØØðKð 	 ô 	
ð 	×Ñ ´3Ð=gÐÔhØ×ÑÐ 0´sÐArÐÔsØ×ÑØÜØgÐhl×hqÑhqô  sDó  iEð  hFð  FGð  Hð 	 ô 	
ð
 	×ÑØÜØið 	 ô 	
ð
 	×ÑØÜØsð 	 ô 	
ð
 	×ÑØÜØ\ð 	 ô 	
ð
 	×Ñ 	°Ð=RÐÔSØ×ÑÔ%8ÐÕ9r!   r   c                 ó  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        i | _        |j                  rc| j
                  j                  t        t        |j                  «      j                  «       t        j                  j                  «       ¬«      «       |j
                  xs g D ]D  }| j
                  j                  t        |t        j                  j                  «       ¬«      «       ŒF i | _        t        «       }|j                   rG| j                  j                  t        t        |j                   «      j                  «       |¬«      «       |j                  xs g D ](  }| j                  j                  t        ||¬«      «       Œ* |j"                  | _        |j$                  | _        |j&                  | _        |j(                  | _        y rd   )ri  r:   rX   ÚsuspendÚconcurrencyrg   rh   ri   r   r   rj   rk   rf   rl   rm   rn   ro   rp   rq   rs   rt   ru   s        r   rz   zScheduledRunCommand.__init__x  se  € Ø!Ÿ]™]ˆŒØŸ*™*ˆŒ
Ø"&§,¡,ˆŒØ'+§|¡|ˆŒØ+/×+;Ñ+;ˆÔØ-/ˆŒØ�=Š=Ø�H‰H�O‰OœK¬¨T¯]©]Ó(;×(EÑ(EÓ(GÔQS×Q[ÑQ[×Q`ÑQ`ÓQbÔcÔdØŸ™š Rò 	OˆIØ�H‰H�O‰OœK¨	¼2¿:¹:¿?¹?Ó;LÔMÕNð	Oà13ˆŒÜ0Ó2ÐØ×ÒØ�L‰L×Ñ¤¬D°×1BÑ1BÓ,C×,MÑ,MÓ,OÐYiÔ jÔkØ—l‘lÒ( bò 	OˆFØ�L‰L×Ñ¤¨FÐ<LÔ MÕNð	Oà/3¯{©{ˆŒØ&*§l¡lˆŒØ(,¯©ˆŒØ$(§J¡Jˆ�
r!   c                 ó^  — t        | j                  ¬«      }|j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  ¬«
      }t        d|j                  › �«       y )Nr|   )
r:   rX   ri  rq  rr  rg   rm   rp   rq   rs   úScheduled Job created with ID: )r   rt   Úcreate_scheduled_jobr:   rX   ri  rq  rr  rg   rm   rp   rq   rs   r‚   rƒ   )rv   r‡   Úscheduled_jobs      r   r9   zScheduledRunCommand.runŽ  s†   € Ü˜$Ÿ*™*Ô%ˆØ×0Ñ0Ø—*‘*Ø—L‘LØ—]‘]Ø—L‘LØ×(Ñ(Ø—‘Ø—L‘LØ—;‘;Ø—L‘LØ—n‘nð 1ó 
ˆô 	Ð/°×0@Ñ0@Ð/AÐBÕCr!   rŠ   r‹   r5   r!   r   r_  r_  ?  s=   „ Øð5:Ð$5ð 5:¸$ò 5:ó ð5:ðn/˜Yð /¨4ó /ô,Dr!   r_  c                   ó^   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zde	e
e
f   defd	„Zd
„ Zy)r`  r   r7   Nc                 ó<  — | j                  dd¬«      }|j                  dddd¬«       |j                  d	t        d
¬«       |j                  dt        d¬«       |j                  dddg d¬«       |j                  dt        d¬«       |j                  t        ¬«       y )Nr¸   zList scheduled Jobsr   r¹   rº   rS   z1Show all scheduled Jobs (default hides suspended)rB   rT   r»   r<   rV   rW   r¼   r½   r@   r¾   r¿   rÁ   rÂ   r"   )r$   r]   r^   r&   r`  ra   s     r   r(   z&ScheduledPsCommand.register_subcommand¡  sÉ   € à×&Ñ& tÐ2GÐ&ÓHˆ
Ø×ÑØØØØDð	 	 ô 	
ð 	×ÑØÜØhð 	 ô 	
ð
 	×ÑØÜØ\ð 	 ô 	
ð 	×ÑØØØØØQð 	 ô 	
ð 	×ÑØÜØ8ð 	 ô 	
ð
 	×ÑÔ%7ÐÕ8r!   r   c                 óH  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        i | _        |j
                  D ]H  }d|v r3|j                  dd«      \  }}|| j                  |j                  «       <   Œ:t        d|› d�«       ŒJ y rÄ   rÆ   rÌ   s        r   rz   zScheduledPsCommand.__init__Ä  rÐ   r!   c           
      ó  — 	 t        | j                  ¬«      }|j                  | j                  ¬«      }g d¢}g }|D �]>  }|j                  }| j
                  s|rŒ|j                  }|j                  }|j                  j                  xs d}	|j                  j                  xs g }
|
rdj                  |
«      nd}|j                  j                  r/|j                  j                  j                  j                  d«      nd}|j                  j                   r%|j                  j                   j                  d«      nd}||	t#        |«      |dœ}| j%                  |«      s�Œ'|j'                  |||	||||g«       �ŒA |sad}| j(                  rDd	d
j                  | j(                  j+                  «       D ��cg c]  \  }}|› d|› �‘Œ c}}«      › �}t-        d|› �«       y| j/                  ||«       yc c}}w # t0        j2                  $ r}t-        d|› �«       Y d}~yd}~wt4        t6        t8        f$ r}t-        d|› �«       Y d}~yd}~wt:        $ r.}t-        dt=        |«      j>                  › d|› �«       Y d}~yd}~ww xY w)z¢
        Fetch and display scheduked job information for the current user.
        Uses Docker-style filtering with -f/--filter flag and key=value pairs.
        r|   rÒ   )ÚIDÚSCHEDULErÓ   rÔ   zLAST RUNzNEXT RUNÚSUSPENDrÚ   rÛ   rÜ   )rƒ   r:   rq  rX   rÞ   rß   rM   rÅ   zNo scheduled jobs foundNz$Error fetching scheduled jobs data: z&Error processing scheduled jobs data: rà   rá   ) r   rt   Úlist_scheduled_jobsrs   rq  rÇ   rƒ   ri  Újob_specrä   rX   r_   rÝ   Úlast_jobÚatræ   Únext_job_run_atr^   rç   r@   rÈ   rè   r‚   ré   rê   rë   rì   rí   rî   rï   r=   r1   )rv   r‡   Úscheduled_jobsrð   r—   rv  rq  Úscheduled_job_idri  rñ   rX   rò   Úlast_job_atr‚  ró   rô   rõ   rö   r÷   s                      r   r9   zScheduledPsCommand.runÓ  sˆ  € ð
_	AÜ˜dŸj™jÔ)ˆCð !×4Ñ4¸t¿~¹~Ð4ÓNˆNòˆMð ˆDà!/ó 8�à'×/Ñ/�ð —x’x¡GØð $1×#3Ñ#3Ð ð )×1Ñ1�ð "/×!7Ñ!7×!DÑ!DÒ!MÈ�ð (×0Ñ0×8Ñ8Ò>¸B�Ù3:˜cŸh™h wÔ/À�ð
 %×+Ñ+×4Ò4ð "×(Ñ(×1Ñ1×4Ñ4×=Ñ=Ð>QÔRàð ð %×+Ñ+×;Ò;ð "×(Ñ(×8Ñ8×AÑAÐBUÔVàð  ð +Ø+Ü" 7›|Ø*ñ	"�ð ×,Ñ,¨^Ô<Ùð —‘à(Ø Ø&Ø#Ø#Ø'Øðö
ð]8ñv Ø �Ø—<’<Ø$7¸¿	¹	ÐZ^×ZfÑZf×ZlÑZlÓZn×BoÑRVÐRSÐUVÀaÀSÈÈ!ÈÂ:ÓBoÓ8pÐ7qÐ"r�KäÐ/°¨}Ð=Ô>Øð ×Ñ˜t ]Õ3ùó Cpøô ×(Ñ(ò 	>ÜÐ8¸¸Ð<×=Ñ=ûÜœ*¤iÐ0ò 	@ÜÐ:¸1¸#Ð>×?Ñ?ûÜò 	AÜÐ'¬¨Q«×(8Ñ(8Ð'9¸¸A¸3Ð?×@Ñ@ûð	AúsH   ‚F5G: Æ7G4ÇG: Ç!G: Ç4G: Ç:JÈH È JÈ7I
É
JÉ$I?É?Jró   c                 óP  — | j                   j                  «       D ]‰  \  }}||vr yd|v sd|v rQ|j                  dd«      j                  dd«      }t        j                  d|› d�||   t        j
                  «      rŒc y|j                  «       ||   j                  «       vsŒ‰ y y)	z5Check if scheduled job matches all specified filters.Frù   rú   rû   rN   rü   rý   Trþ   r  s        r   rç   z#ScheduledPsCommand._matches_filters9  r  r!   c           	      ó  — | j                   r_| j                   }|D ]M  }|}t        g d¢«      D ].  \  }}d|› d�}||v sŒ|j                  |t        ||   «      «      }Œ0 t	        |«       ŒO yt	        t        ||¬«      «       y)r  )rƒ   ri  r:   rX   r…  r‚  rq  r
  r  r  Nr  r  s	            r   ré   z ScheduledPsCommand._print_outputL  s”   € à�;Š;à—{‘{ˆHØò �Ø�Ü )Úgó!ò F‘H�A�uð %*¨%¨°Ð"5�KØ" dÒ*Ø#Ÿ|™|¨K¼¸SÀ¹V»ÓE™ðFô �d•ñô ÜØØ#ôõr!   rŠ   r  r5   r!   r   r`  r`     sb   „ Øð 9Ð$5ð  9¸$ò  9ó ð 9ðD_˜Yð _¨4ó _ódAðL¨t°C¸°H©~ð À$ó ó&r!   r`  c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	ra  r   r7   Nc                 óÞ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	d
d¬«       |j                  t        ¬«       y )Nr  z:Display detailed information on one or more scheduled Jobsr   rT   úSThe namespace where the scheduled job is. Defaults to the current user's namespace.r<   rV   rW   Úscheduled_job_idsrY   zThe scheduled jobs to inspectr[   r"   )r$   r]   r^   r&   ra  ra   s     r   r(   z+ScheduledInspectCommand.register_subcommande  s|   € à×&Ñ& yÐ7sÐ&Ótˆ
Ø×ÑØÜØfð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×ÑÐ 3¸5ÐGfÐÔgØ×ÑÔ%<ÐÕ=r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   )rs   rt   r‹  r“   s     r   rz   z ScheduledInspectCommand.__init__s  s&   € Ø(,¯©ˆŒØ$(§J¡JˆŒ
Ø,0×,BÑ,BˆÕr!   c           
      ó$  — t        | j                  ¬«      }| j                  D �cg c]  }|j                  || j                  ¬«      ‘Œ! }}t        t        j                  |D �cg c]  }t        |«      ‘Œ c}dt        ¬«      «       y c c}w c c}w )Nr|   ©r„  rs   r  r  )
r   rt   r‹  Úinspect_scheduled_jobrs   r‚   r!  r"  r   r^   )rv   r‡   r„  rƒ  rv  s        r   r9   zScheduledInspectCommand.runx  s�   € Ü˜$Ÿ*™*Ô%ˆð %)×$:Ñ$:ö
à ð ×%Ñ%Ð7GÐSW×SaÑSaÐ%Õbð
ˆð 
ô 	Œd�j‰jÀ^ÖT°Mœ& Õ/ÒTÐ]^ÔhkÔlÕmùò	
ùò Ur#  rŠ   r‹   r5   r!   r   ra  ra  d  s?   „ Øð>Ð$5ð >¸$ò >ó ð>ðC˜Yð C¨4ó Cô
nr!   ra  c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	rb  r   r7   Nc                 óæ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t        d
¬«       |j                  t        ¬«       y )NÚdeletezDelete a scheduled Jobr   r„  úScheduled Job IDr<   rT   rŠ  rV   rW   r"   )r$   r]   r^   r&   rb  ra   s     r   r(   z*ScheduledDeleteCommand.register_subcommand‚  s|   € à×&Ñ& xÐ6NÐ&ÓOˆ
Ø×ÑÐ 2¼ÐCUÐÔVØ×ÑØÜØfð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×ÑÔ%;ÐÕ<r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   ©r„  rs   rt   r“   s     r   rz   zScheduledDeleteCommand.__init__�  ó&   € Ø%)×%:Ñ%:ˆÔØŸ™ˆŒØ$(§J¡Jˆ�
r!   c                 ó~   — t        | j                  ¬«      }|j                  | j                  | j                  ¬«       y ©Nr|   rŽ  )r   rt   Údelete_scheduled_jobr„  rs   r*  s     r   r9   zScheduledDeleteCommand.run•  ó0   € Ü˜$Ÿ*™*Ô%ˆØ× Ñ °$×2GÑ2GÐSW×SaÑSaÐ Õbr!   rŠ   r‹   r5   r!   r   rb  rb  �  ó<   „ Øð=Ð$5ð =¸$ò =ó ð=ð/˜Yð /¨4ó /ô
cr!   rb  c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	rc  r   r7   Nc                 óæ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t        d
¬«       |j                  t        ¬«       y )Nrq  zSuspend (pause) a scheduled Jobr   r„  r“  r<   rT   rŠ  rV   rW   r"   )r$   r]   r^   r&   rc  ra   s     r   r(   z+ScheduledSuspendCommand.register_subcommand›  s|   € à×&Ñ& yÐ7XÐ&ÓYˆ
Ø×ÑÐ 2¼ÐCUÐÔVØ×ÑØÜØfð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×ÑÔ%<ÐÕ=r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   r•  r“   s     r   rz   z ScheduledSuspendCommand.__init__©  r–  r!   c                 ó~   — t        | j                  ¬«      }|j                  | j                  | j                  ¬«       y r˜  )r   rt   Úsuspend_scheduled_jobr„  rs   r*  s     r   r9   zScheduledSuspendCommand.run®  s0   € Ü˜$Ÿ*™*Ô%ˆØ×!Ñ!°4×3HÑ3HÐTX×TbÑTbÐ!Õcr!   rŠ   r‹   r5   r!   r   rc  rc  š  s<   „ Øð>Ð$5ð >¸$ò >ó ð>ð/˜Yð /¨4ó /ô
dr!   rc  c                   ó>   — e Zd Zededdfd„«       Zdeddfd„Zdd„Zy)	rd  r   r7   Nc                 óæ   — | j                  dd¬«      }|j                  dt        d¬«       |j                  dt        d¬«       |j                  d	t        d
¬«       |j                  t        ¬«       y )NÚresumez Resume (unpause) a scheduled Jobr   r„  r“  r<   rT   rŠ  rV   rW   r"   )r$   r]   r^   r&   rd  ra   s     r   r(   z*ScheduledResumeCommand.register_subcommand´  s|   € à×&Ñ& xÐ6XÐ&ÓYˆ
Ø×ÑÐ 2¼ÐCUÐÔVØ×ÑØÜØfð 	 ô 	
ð
 	×ÑØœCÐ&qð 	 ô 	
ð 	×ÑÔ%;ÐÕ<r!   r   c                 ój   — |j                   | _         |j                  | _        |j                  | _        y r   r•  r“   s     r   rz   zScheduledResumeCommand.__init__Â  r–  r!   c                 ó~   — t        | j                  ¬«      }|j                  | j                  | j                  ¬«       y r˜  )r   rt   Úresume_scheduled_jobr„  rs   r*  s     r   r9   zScheduledResumeCommand.runÇ  rš  r!   rŠ   r‹   r5   r!   r   rd  rd  ³  r›  r!   rd  c                   ó8   — e Zd ZdZed„ «       Zdeddfd„Zdd„Zy)	re  z3Schedule UV scripts on Hugging Face infrastructure.c                 óö  — | j                  dd¬«      }|j                  ddd¬«      }|j                  dd	¬«      }|j                  d
t        d¬«       |j                  dd¬«       |j                  dddg ¬«       |j                  dddd¬«       |j                  dddd¬«       |j                  dt        d¬«       |j                  dd¬«       |j                  dt        dd j	                  t
        «      › d!�¬«       |j                  d"d#d$d%¬&«       |j                  d'd(d$d)¬&«       |j                  d*t        d+¬«       |j                  d,t        d-¬«       |j                  d.t        d/¬«       |j                  d0d1dd2¬&«       |j                  d3t        d4¬«       |j                  d5t        d6¬«       |j                  d7d$d8d9¬:«       |j                  d;d<t        d=¬«       |j                  t        ¬>«       y)?r-  r.  zJSchedule UV scripts (Python with inline dependencies) on HF infrastructurer   r/  r0  Tr1  r9   r4  ri  rj  r<   r5  r6  r7  rY   r8  r9  rk  rS   rl  Nrm  rn  ro  r:  r;  r<  r=  rK   rL   rM   rN   r>   r?   r@   r>  rB   rD   rE   rF   rG   rH   rI   rJ   rO   r?  rQ   rR   r@  rT   rU   rV   rA  rB  rC  rD  rE  rF  rG  rH  r"   )r$   r%   r]   r^   r_   r`   r&   re  rI  s       r   r(   z&ScheduledUvCommand.register_subcommandÏ  sz  € ð ×%Ñ%ØØ]ð &ó 
ˆ	ð
 ×-Ñ-°<ÀmÐ^bÐ-Ócˆ
ð  ×*Ñ*ØØKð +ó 
ˆ
ð 	×ÑØÜØjð 	 ô 	
ð
 	×Ñ Ð/UÐÔVØ×Ñ °UÐA[ÐegÐÔhØ×ÑØØØ4Øð	 	 ô 	
ð 	×ÑØØØKØð	 	 ô 	
ð 	×Ñ 	´Ð:jÐÔkØ×ÑØØVð 	 ô 	
ð 	×ÑØÜØgÐhl×hqÑhqô  sDó  iEð  hFð  FGð  Hð 	 ô 	
ð
 	×Ñ  g°hÐE\ÐÔ]Ø×ÑØØØðKð 	 ô 	
ð 	×Ñ ´3Ð=gÐÔhØ×ÑØÜØBð 	 ô 	
ð
 	×Ñ ´#Ð<^ÐÔ_Ø×Ñ  j¸ÐL_ÐÔ`Ø×ÑØÜØið 	 ô 	
ð
 	×Ñ 	´¸*ÐÔEà×Ñ °Ð@gÐnuÐÔvØ×ÑØ�*¤3Ð-dð 	 ô 	
ð 	×ÑÔ%7ÐÕ8r!   r   r7   Nc                 ó¸  — |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        i | _	        |j                  rc| j                  j                  t        t        |j                  «      j                  «       t        j                   j#                  «       ¬«      «       |j                  xs g D ]D  }| j                  j                  t        |t        j                   j#                  «       ¬«      «       ŒF i | _        t'        «       }|j(                  rG| j$                  j                  t        t        |j(                  «      j                  «       |¬«      «       |j$                  xs g D ](  }| j$                  j                  t        ||¬«      «       Œ* |j*                  | _        |j,                  | _        |j.                  | _        |j0                  | _        |j2                  | _        |j4                  | _        yrM  )ri  r5  r7  rq  rr  rD  rN  rO  r:   rg   rh   ri   r   r   rj   rk   rf   rl   rm   rn   ro   rp   rq   rr   rs   rt   rP  rQ  ru   s        r   rz   zScheduledUvCommand.__init__  s   € à!Ÿ]™]ˆŒØ—k‘kˆŒØ×+Ñ+ˆÔØ'+§|¡|ˆŒØ+/×+;Ñ+;ˆÔØ ŸJ™JˆÔØ—k‘kˆŒØ—Z‘ZˆŒ
Ø-/ˆŒØ�=Š=Ø�H‰H�O‰OœK¬¨T¯]©]Ó(;×(EÑ(EÓ(GÔQS×Q[ÑQ[×Q`ÑQ`ÓQbÔcÔdØŸ™š Rò 	OˆIØ�H‰H�O‰OœK¨	¼2¿:¹:¿?¹?Ó;LÔMÕNð	Oà13ˆŒÜ0Ó2ÐØ×ÒØ�L‰L×Ñ¤¬D°×1BÑ1BÓ,C×,MÑ,MÓ,OÐYiÔ jÔkØ—l‘lÒ( bò 	OˆFØ�L‰L×Ñ¤¨FÐ<LÔ MÕNð	Oà/3¯{©{ˆŒØ&*§l¡lˆŒØ ŸK™KˆŒØ(,¯©ˆŒØ$(§J¡JˆŒ
Ø—Y‘Yˆ�
r!   c                 óü  — t        j                  t         j                  «       t        | j                  ¬«      }|j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                   | j"                  | j$                  | j&                  ¬«      }t)        d|j*                  › �«       y)zSchedule UV command.r|   )r5  r7  ri  rq  rr  rN  rO  r:   rg   rm   rp   rq   rs   rQ  rt  N)r   rS  rT  r   rt   Úcreate_scheduled_uv_jobr5  r7  ri  rq  rr  rN  rO  r:   rg   rm   rp   rq   rs   rQ  r‚   rƒ   )rv   r‡   rˆ   s      r   r9   zScheduledUvCommand.run6  sµ   € ä×ÑœgŸl™lÔ+Ü˜$Ÿ*™*Ô%ˆØ×)Ñ)Ø—;‘;Ø×(Ñ(Ø—]‘]Ø—L‘LØ×(Ñ(Ø×*Ñ*Ø—;‘;Ø—*‘*Ø—‘Ø—L‘LØ—;‘;Ø—L‘LØ—n‘nØ—*‘*ð *ó 
ˆô$ 	Ð/°·±¨xÐ8Õ9r!   rŠ   rV  r5   r!   r   re  re  Ì  s2   „ Ù=àñH9ó ðH9ðT˜Yð ¨4ó ô8:r!   re  )3rW  r!  rk   r   Úargparser   r   Údataclassesr   Úpathlibr   Útypingr   r   r	   r
   rê   Úhuggingface_hubr   r   r   Úhuggingface_hub.utilsr   Úhuggingface_hub.utils._dotenvr   rÞ   r   Ú
get_loggerr1   ÚloggerrÏ   r`   r   r+   r)   r^   Úintrµ   r*   r'   r,   r-   rn   r.   r_  r`  ra  rb  rc  rd  re  )Úitems   0r   ú<module>r·     s›  ðñó& Û 	Û 	ß 1Ý Ý ß .Ó .ã ç ;Ñ ;Ý )Ý 5å 'ð 
ˆ×	Ñ	˜HÓ	%€à,9ÖW D¸T¿Z¹ZÈ;Ó=V�T—Z“ZÒWÐ ôCÐ,ô Cô&VÐ*ô VôrÐ+ô ð4�D˜˜e C¨ H™oÑ.Ñ/ð ¸$¸s¹)ð Èó ô6aÐ)ô aôHPÐ.ô Pô4EÐ-ô Eô2qÐ)ô qðh˜t C¨ H™~ó ôJÐ5ô Jô*^DÐ3ô ^DôBAÐ2ô AôHnÐ7ô nô:cÐ6ô cô2dÐ7ô dô2cÐ6ô cô2@:Ð2õ @:ùòq Xs   Á%EÁ:E