
    _i?]              &          S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	J
r
JrJr  SSKrSSKJrJr  SSKJr  SSKJr  SS	KJr  S
SKJrJrJr  \R6                  " \5      r\ V s/ s H   o R<                  S:w  d  M  U R<                  PM"     sn r\	\ \RB                  " SS94   r"\	\\    \RF                  " SS94   r$\	\\   \RF                  " SSRK                  \5       S3S94   r&\	\\'\       \RF                  " SSSS94   r(\	\\'\       \RF                  " SSSS94   r)\	\\    \RF                  " SSS94   r*\	\\    \RF                  " SS94   r+\	\\    \RF                  " SS94   r,\	\-\RF                  " SSSS94   r.\	\\    \RF                  " S S94   r/\	\\'\       \RF                  " S!S"S94   r0\	\\    \RF                  " S#S$S%S94   r1\	\\-   \RF                  " S&S94   r2\	\\-   \RF                  " S'S94   r3\	\ \RB                  " S(S94   r4\	\ \RB                  " S)S94   r5\	\\'\       \RB                  " S*S94   r6\	\'\    \RB                  " S+S94   r7\	\ \RB                  " S,S94   r8\	\ \RB                  " S-S94   r9\	\\    \RF                  " S.S94   r:\" S/S9r;\;Ry                  S0S1S9         SS2\"S3\7S4\(S5\)S6\*S7\+S8\&S9\,S:\.S;\/S<\S=S4S> jj5       r=\;Ry                  S?S@S9  SSA\8S;\/S<\S=S4SB jj5       r>SC\?\ \ 4   SD\?\ \ 4   S=\-4SE jr@SF\'\'\\ \A4         SG\'\    SH\\    S=S4SI jrB\;Ry                  SJSKS9     SSL\	\-\RF                  " SMSNSOS94   S;\/S<\SP\	\\'\       \RF                  " SQSRSSS94   ST\	\\    \RF                  " SUS94   S=S4SV jj5       rC\;Ry                  SWSXS9  SSY\	\'\    \RB                  " SZS94   S;\/S<\S=S4S[ jj5       rD\;Ry                  S\S]S9  SSA\8S;\/S<\S=S4S^ jj5       rE\" S_S9rF\;R                  \FS`Sa9  \FRy                  S0SbS9              SSc\5Sd\6S2\$Se\:S8\&S4\(S5\)S6\*S7\+S9\,S:\.S;\/S<\Sf\0Sg\1S=S4 Sh jj5       rH\" SiS9rI\;R                  \ISjSa9  \IRy                  S0SkS9          SSl\4S2\"S3\7Sm\2Sn\3S4\(S5\)S6\*S7\+S8\&S9\,S;\/S<\S=S4So jj5       rJ\IRy                  SJSpS9     SSL\	\-\RF                  " SMSNSqS94   S;\/S<\SP\	\\'\       \RF                  " SQSRSSS94   ST\	\\    \RF                  " SrSUS94   S=S4Ss jj5       rK\IRy                  SWStS9  SSu\	\'\    \RB                  " SvS94   S;\/S<\S=S4Sw jj5       rL\IRy                  SxSyS9  SSz\9S;\/S<\S=S4S{ jj5       rM\IRy                  SmS|S9  SSz\9S;\/S<\S=S4S} jj5       rN\IRy                  S~SS9  SSz\9S;\/S<\S=S4S jj5       rO\" SS9rP\IR                  \PS`Sa9  \PRy                  S0SbS9               SSl\4Sc\5Sd\6Sm\2Sn\3S2\$Se\:S8\&S4\(S5\)S6\*S7\+S9\,S;\/S<\Sf\0Sg\1S=S4$S jj5       rQSF\'\'\\ \A4         SG\'\    S=\ 4S jrRS=\
\ \ 4   4S jrSgs  sn f )a  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>

    # Run a UV script
    hf jobs uv run <script>

    # Schedule a job
    hf jobs scheduled run <schedule> <image> <command>

    # List scheduled jobs
    hf jobs scheduled ps [-a] [-f key=value] [--format TEMPLATE]

    # Inspect a scheduled job
    hf jobs scheduled inspect <scheduled_job_id>

    # Suspend a scheduled job
    hf jobs scheduled suspend <scheduled_job_id>

    # Resume a scheduled job
    hf jobs scheduled resume <scheduled_job_id>

    # Delete a scheduled job
    hf jobs scheduled delete <scheduled_job_id>

    N)asdict)Path)	AnnotatedDictOptionalUnion)SpaceHardware	get_token)HfHubHTTPError)logging)load_dotenv   )TokenOpt
get_hf_apityper_factoryz	zero-a10gzThe Docker image to use.)helpz.Use a custom Docker image with `uv` installed.zTFlavor for the hardware, as in HF Spaces. Defaults to `cpu-basic`. Possible values: , .z-ez--envz/Set environment variables. E.g. --env ENV=valuez-sz	--secretszvSet secret environment variables. E.g. --secrets SECRET=value or `--secrets HF_TOKEN` to pass your Hugging Face token.z
--env-filez(Read in a file of environment variables.z/Read in a file of secret environment variables.zVMax duration: int/float with s (seconds, default), m (minutes), h (hours) or d (days).z-dz--detachz3Run the Job in the background and print the Job ID.zVThe namespace where the job will be running. Defaults to the current user's namespace.z--withz%Run with the given packages installedz-pz--pythonz5The Python interpreter to use for the run environmentz!Suspend (pause) the scheduled Jobz8Allow multiple instances of this Job to run concurrentlyzWOne of annually, yearly, monthly, weekly, daily, hourly, or a CRON schedule expression.z$UV script to run (local file or URL)zArguments for the scriptzThe command to run.zJob IDzScheduled Job IDzCRepository name for the script (creates ephemeral if not specified)zRun and manage Jobs on the Hub.runz	Run a Jobimagecommandenvsecretsenv_filesecrets_fileflavortimeoutdetach	namespacetokenreturnc           
         0 nU(       aL  UR                  [        [        U5      R                  5       [        R
                  R                  5       S95        U=(       d    /  H8  nUR                  [        U[        R
                  R                  5       S95        M:     0 n[        5       nU(       a0  UR                  [        [        U5      R                  5       US95        U=(       d    /  H  nUR                  [        XS95        M     [        U
S9nUR                  U UUUUUU	S9n[        SUR                   35        [        SUR                   35        U(       a  g UR                  UR                  S9 H  n[        U5        M     g )Nenvironr    )r   r   r   r   r   r   r   Job started with ID: 	View at: job_id)updater   r   	read_textosr$   copy_get_extended_environr   run_jobprintidurlfetch_job_logs)r   r   r   r   r   r   r   r   r   r   r    env_map	env_valuesecrets_mapextended_environsecretapijoblogs                      T/var/www/html/land-ocr/venv/lib/python3.13/site-packages/huggingface_hub/cli/jobs.pyjobs_runr=      sE    )+G{4>#;#;#=rzzGXYZYBY	{9bjjoo6GHI  -/K,.;tL'9'C'C'EO_`a-R-;vHI   5
!C
++  C 
!#&&
*+	IcggY
 !!!0c
 1    logszFetch the logs of a Jobr)   c                 X    [        US9nUR                  XS9 H  n[        U5        M     g Nr%   r)   r   )r   r3   r0   )r)   r   r    r9   r;   s        r<   	jobs_logsrC     s.     5
!C!!!Ec
 Fr>   job_propertiesfiltersc                 V   UR                  5        H  u  p#X ;  a    gSU;   d  SU;   aW  UR                  SS5      R                  SS5      n[        R                  " SU S3X   [        R                  5      (       d    gMo  UR                  5       X   R                  5       ;  d  M    g   g)	z5Check if scheduled job matches all specified filters.F*?z.*r   ^$T)itemsreplaceresearch
IGNORECASElower)rD   rE   keypatternregex_patterns        r<   _matches_filtersrT   )  s    $'>SG^#OOC6>>sCHM99qq1>3FVV W ]]_N$7$=$=$?? ( r>   rowsheadersfmtc           	          U(       aY  UnU  HP  nUn[        / SQ5       H/  u  pgSU S3nX;   d  M  UR                  U[        XF   5      5      nM1     [        U5        MR     g[        [	        XS95        g)z,Print output according to the chosen format.)r1   r   r   createdstatusz{{.z}})rV   N)	enumeraterL   strr0   	_tabulate)	rU   rV   rW   templaterowlineifieldplaceholders	            r<   _print_outputrd   ;  sn    
CD%&UV %eWD1&<<S[AD W $K  	i./r>   psz	List Jobsallz-az--allz*Show all Jobs (default shows just running)filterz-fz--filterz>Filter output based on conditions provided (format: key=value)formatz%Format output using a custom templatec           
          [        US9nUR                  US9n/ SQn/ n0 n	U=(       d    /  H@  n
SU
;   a(  U
R                  SS5      u  pXUR                  5       '   M1  [	        SU
 S35        MB     U H  nUR
                  (       a  UR
                  R                  OSnU (       d  US	;  a  M;  UR                  nUR                  =(       d    S
nUR                  =(       d    / nU(       a  SR                  U5      OS
nUR                  (       a  UR                  R                  S5      OS
nUUUR                  5       US.n[        UU	5      (       d  M  UR                  UUUUU/5        M     U(       dU  U	(       a=  SSR                  U	R                  5        VVs/ s H  u  nnU SU 3PM     snn5       3OSn[	        SU 35        g [!        XU5        g s  snnf ! ["         a  n[	        SU 35         S nAg S nAf[$        [&        [(        4 a  n[	        SU 35         S nAg S nAf[*         a.  n[	        S[-        U5      R.                   SU 35         S nAg S nAff = f)Nr%   r   )zJOB IDIMAGE/SPACECOMMANDCREATEDSTATUS=r   )Warning: Ignoring invalid filter format ''. Use key=value format.UNKNOWN)RUNNINGUPDATINGN/A %Y-%m-%d %H:%M:%S)r1   r   rZ   r    matching filters: r    zNo jobs foundzError fetching jobs data: zError processing jobs data: Unexpected error - : )r   	list_jobssplitrP   r0   rZ   stager1   docker_imager   join
created_atstrftimerT   appendrK   rd   r   KeyError
ValueError	TypeError	Exceptiontype__name__)rf   r   r    rg   rh   r9   jobstable_headersrU   rE   frQ   valuer:   rZ   r)   image_or_spacecmdcommand_strr   propskvfilters_msges                            r<   jobs_psr   L  s(   6:=u%}}y}1Q,."$2AaxWWS!_
',		$A!D\]^  C),SZZ%%F6)@@VVF !--6N ++#C+.#((3-EK JM001DE]bJ "NfllnalmE#E733 KKj&QR3 8 _f%dii0X1A3as0X&Y%Z[ln  M+/0d62 1Y  0*1#.//j), 2,QC011 =#DG$4$4#5Rs;<<=sH   FG G/G 
G G 
I 'G::I H%%I 2$II inspectz0Display detailed information on one or more Jobsjob_idszThe jobs to inspectc           
          [        US9nU  Vs/ s H  oCR                  XAS9PM     nn[        [        R                  " U Vs/ s H  n[        U5      PM     snS[        S95        g s  snf s  snf )Nr%   rB      indentdefault)r   inspect_jobr0   jsondumpsr   r\   )r   r   r    r9   r)   r   r:   s          r<   jobs_inspectr     s\     5
!CNUVgFOO6O?gDV	$**T2TcfSkT21c
JK W2s   A&A+cancelzCancel a Jobc                 4    [        US9nUR                  XS9  g rA   )r   
cancel_job)r)   r   r    r9   s       r<   jobs_cancelr     s     5
!CNN&N6r>   zERun UV scripts (Python with inline dependencies) on HF infrastructureuv)namez8Run a UV script (local file or URL) on HF infrastructurescriptscript_argsrepowith_pythonc                 4   0 nU(       aL  UR                  [        [        U5      R                  5       [        R
                  R                  5       S95        U=(       d    /  H8  nUR                  [        U[        R
                  R                  5       S95        M:     0 n[        5       nU(       a0  UR                  [        [        U5      R                  5       US95        U=(       d    /  H  nUR                  [        UUS95        M     [        US9nUR                  U U=(       d    / UUUUUUU	UUS9n[        SUR                   35        [        SUR                   35        U
(       a  g UR                  UR                  S9 H  n[        U5        M     g )Nr#   r%   )r   r   dependenciesr   r   r   r   r   r   r   _repor&   r'   r(   )r*   r   r   r+   r,   r$   r-   r.   r   
run_uv_jobr0   r1   r2   r3   )r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r4   r5   r6   r7   r8   r9   r:   r;   s                          r<   jobs_uv_runr     sW   $ )+G{4>#;#;#=rzzGXYZYBY	{9bjjoo6GHI ,.K,.;tL'9'C'C'EO_`a-R-;v7GHI   5
!C
..%2  C 
!#&&
*+	IcggY
 !!!0c
 1r>   z,Create and manage scheduled Jobs on the Hub.	scheduledzSchedule a Jobschedulesuspendconcurrencyc                    0 nU(       aL  UR                  [        [        U5      R                  5       [        R
                  R                  5       S95        U=(       d    /  H8  nUR                  [        U[        R
                  R                  5       S95        M:     0 n[        5       nU(       a0  UR                  [        [        U5      R                  5       US95        U=(       d    /  H  nUR                  [        UUS95        M     [        US9nUR                  UUU UUUUU	U
US9
n[        SUR                   35        g )Nr#   r%   )
r   r   r   r   r   r   r   r   r   r   Scheduled Job created with ID: )r*   r   r   r+   r,   r$   r-   r.   r   create_scheduled_jobr0   r1   )r   r   r   r   r   r   r   r   r   r   r   r   r    r4   r5   r6   r7   r8   r9   scheduled_jobs                       r<   scheduled_runr     s     )+G{4>#;#;#=rzzGXYZYBY	{9bjjoo6GHI ,.K,.;tL'9'C'C'EO_`a-R-;v7GHI   5
!C,, - M 
+M,<,<+=
>?r>   zList scheduled Jobsz1Show all scheduled Jobs (default hides suspended)z--formatc           
          [        US9nUR                  US9n/ SQn/ n0 n	U=(       d    /  H@  n
SU
;   a(  U
R                  SS5      u  pXUR                  5       '   M1  [	        SU
 S35        MB     U GHl  nUR
                  =(       d    SnU (       d	  U(       a  M)  UR                  nUR                  =(       d    S	nUR                  R                  =(       d    S	nUR                  R                  =(       d    / nU(       a  S
R                  U5      OS	nUR                  R                  (       a/  UR                  R                  R                  R                  S5      OS	nUR                  R                   (       a%  UR                  R                   R                  S5      OS	nUU[#        U5      US.n[%        UU	5      (       d  GMT  UR'                  UUUUUUU/5        GMo     U(       dU  U	(       a=  SSR                  U	R)                  5        VVs/ s H  u  nnU SU 3PM     snn5       3OSn[	        SU 35        g [+        XU5        g s  snnf ! [,         a  n[	        SU 35         S nAg S nAf[.        [0        [2        4 a  n[	        SU 35         S nAg S nAf[4         a.  n[	        S[7        U5      R8                   SU 35         S nAg S nAff = f)Nr%   rj   )IDSCHEDULErk   rl   zLAST RUNzNEXT RUNSUSPENDro   r   rp   rq   Fru   rv   rw   )r1   r   r   r   rx   r   ry   zNo scheduled jobs foundz$Error fetching scheduled jobs data: z&Error processing scheduled jobs data: rz   r{   )r   list_scheduled_jobsr}   rP   r0   r   r1   r   job_specr   r   r   rZ   last_jobatr   next_job_run_atr\   rT   r   rK   rd   r   r   r   r   r   r   r   )rf   r   r    rg   rh   r9   scheduled_jobsr   rU   rE   r   rQ   r   r   r   sj_idr   r   r   r   last_job_atr   r   r   r   r   r   s                              r<   scheduled_psr   (  s   82=u%0090Eg,."$2AaxWWS!_
',		$A!D\]^  ,M#++4uG7!$$E$--6H*33@@IEN((006BC+.#((3-EK !''00 $$--0099:MN  !''77 $$44==>QR 
 !>c'l_jkE#E733KK.+{Tcelmn- ,0 _f%dii0X1A3as0X&Y%Z[ln  +K=9:d62	 1Y  :4QC899j), <6qc:;; =#DG$4$4#5Rs;<<=sH   HI I%I  I I 
KI00KJK($KKz:Display detailed information on one or more scheduled Jobsscheduled_job_idszThe scheduled jobs to inspectc           
          [        US9nU  Vs/ s H  nUR                  XAS9PM     nn[        [        R                  " U Vs/ s H  n[        U5      PM     snS[        S95        g s  snf s  snf )Nr%   scheduled_job_idr   r   r   )r   inspect_scheduled_jobr0   r   r   r   r\   )r   r   r    r9   r   r   r   s          r<   scheduled_inspectr   y  sx     5
!C !2 1 	!!3C!Y 1   
$**Pf]+PYZdg
hi	 Qs   A'A,deletezDelete a scheduled Jobr   c                 4    [        US9nUR                  XS9  g Nr%   r   )r   delete_scheduled_jobr   r   r    r9   s       r<   scheduled_deleter           5
!C.>Tr>   zSuspend (pause) a scheduled Jobc                 4    [        US9nUR                  XS9  g r   )r   suspend_scheduled_jobr   s       r<   scheduled_suspendr     s      5
!C/?Ur>   resumez Resume (unpause) a scheduled Jobc                 4    [        US9nUR                  XS9  g r   )r   resume_scheduled_jobr   s       r<   scheduled_resumer     r   r>   z(Schedule UV scripts on HF infrastructurec                    0 nU
(       aL  UR                  [        [        U
5      R                  5       [        R
                  R                  5       S95        U=(       d    /  H8  nUR                  [        U[        R
                  R                  5       S95        M:     0 n[        5       nU(       a0  UR                  [        [        U5      R                  5       US95        U	=(       d    /  H  nUR                  [        UUS95        M     [        US9nUR                  UU=(       d    / U UUUUUUUUUUUS9n[        SUR                   35        g )Nr#   r%   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r*   r   r   r+   r,   r$   r-   r.   r   create_scheduled_uv_jobr0   r1   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r4   r5   r6   r7   r8   r9   r:   s                           r<   scheduled_uv_runr     s&   ( )+G{4>#;#;#=rzzGXYZYBY	{9bjjoo6GHI ,.K,.;tL'9'C'C'EO_`a-R-;v7GHI   5
!C

%
%%2 & C  
+CFF8
45r>   c           
         [        / U QUP76  Vs/ s H  n[        S U 5       5      PM     nn[        [        R                  " 5       R                  [        U5      S-  5      n[        U5      [        U5      -   U:  a  UR                  [        U5      5      nX5==   S-  ss'   [        U5      [        U5      -   U::  a!  U[        U5      -
  [        U5      -
  X5   -   X5'   [        U5      [        U5      -   U:  a  M  S[        U5      -  R                  " U6 n/ nUR                  UR                  " U6 5        UR                  UR                  " U Vs/ s H  nSU-  PM
     sn6 5        U  Hu  n	[        X5       V
Vs/ s H<  u  p[        [        U
5      5      U:  a  [        U
5      SUS-
   S-   O
[        U
5      PM>     nn
nUR                  UR                  " U6 5        Mw     S	R                  U5      $ s  snf s  snf s  snn
f )
zy
Inspired by:

- stackoverflow.com/a/8356620/593036
- stackoverflow.com/questions/9535954/printing-lists-as-tabular-data
c              3   J   #    U  H  n[        [        U5      5      v   M     g 7f)N)lenr\   ).0xs     r<   	<genexpr>_tabulate.<locals>.<genexpr>  s     /3ac#a&kk3s   !#      z{{:{}}} -N   z...
)zipmaxr,   get_terminal_sizecolumnsr   sumindexrh   r   r\   r   )rU   rV   col
col_widthsterminal_widthcol_to_minimize
row_formatlineswr_   r   	col_widthrow_format_argss                r<   r]   r]     s    <?;N;Ng;NO;NC#/3//;NJO--/77W9JKN
g,Z
(>
9$**3z?;#)#w<#j/)^;*83z?*JSQX\*Y\f\w*wJ'	 g,Z
(>
9
 s7|+33Z@JE	LL""G,-	LL""j$AjS1Wj$ABC !$C 4
 4 033q6{Y/FCF?Y]#e+CPQFR 4 	 
 	Z&&89  99U# P %B
s   G6G;=AH c                  d    [         R                  R                  5       n [        5       =nb  XS'   U $ )NHF_TOKEN)r,   r$   r-   r
   )r7   r    s     r<   r.   r.      s.    zz()',$r>   )	NNNNNNFNN)NN)FNNNN)NNNNNNNNNFNNNN)
NNNNNNNNNN)NNNNNNNNNNNNNNN)T__doc__r   r,   rM   dataclassesr   pathlibr   typingr   r   r   r   typerhuggingface_hubr	   r
   huggingface_hub.errorsr   huggingface_hub.utilsr   huggingface_hub.utils._dotenvr   
_cli_utilsr   r   r   
get_loggerr   loggerr   SUGGESTED_FLAVORSr\   ArgumentImageArgOptionImageOptr   	FlavorOptlistEnvOpt
SecretsOpt
EnvFileOptSecretsFileOpt
TimeoutOptbool	DetachOptNamespaceOptWithOpt	PythonOpt
SuspendOptConcurrencyOptScheduleArg	ScriptArgScriptArgsArg
CommandArgJobIdArgScheduledJobIdArgRepoOptjobs_clir   r=   rC   dictrT   intrd   r   r   r   uv_app	add_typerr   scheduled_appr   r   r   r   r   r   scheduled_uv_appr   r]   r.   )items   0r<   <module>r*     s  'R  	 	   3 3  4 1 ) 5 ; ; 
		H	%,9WMDZZ;=VZTZZMW  	NN' SM	LL= ]	LLcdhdmdmn  eA  dB  BC  D	 
T#Y	LL>
 T#Y	LL F
 SM	LL7
 SM	LL> SM	LLe
 	LLB	 SM	LLe T#Y	LL4 SM	LLD	 TN	LL0
 TN	LLG 	NNf 	NN3	 T#Y	NN' I	NN"
 	NN 	NN  SM	LLR ?@ 
%k* #'",,, 
, 	,
 , !, , , , , , 
, +,^ 
&89 #  
	 :T#s(^ d38n QU $0T%S/23 0d3i 0hWZm 0`d 0" 
$[) 	" 	 	1T=	=	
	
T= T= T= cQ	
	T=& 8	
	'T=2 
3T= *T=n 
)"TU #LS	&	
	L L L 
L VL 
(0 #777 7 
	7 17 
c	d   6  % VW "&#'"222 2 	2
 2 
2 2 2 !2 2 2 2 2 2 2  
!2 X2j #QR   ={  3 u#34
 "&#'"(@(@(@ (@ 	(@
  (@ 
(@ (@ (@ !(@ (@ (@ (@ (@ 
(@ 5(@V t"78 	" 	 	3M=	D	
	
M= M= M= cQ	
	M=& 8	
	'M=4 
5M= 9M=` y'cd #j S	0	
	j j j 
j ej$ x&>? #U'UU U 
	U @U y'HI #V'VV V 
	V JV x&HI #U'UU U 
	U JU !&PQ    (t  4 %&`a "&"&#'"#060606 06 	06
  06 06 06 06 
06 06 06 !06 06 06 06  !06" #06$ 
%06 b06lDeCHo./ $s)  6tCH~ m Xs   %Y<Y