
    -iv              $          d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZ ddlmZmZmZmZmZmZmZm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  ddl!m"Z" ddl#m$Z$m%Z%m&Z&  ej'        e(          Z)d eD             Z*dZ+ee, ej-        d          f         Z.eee,          ej/        d          f         Z0eee          ej/        dd1                    e*           d          f         Z2eee3e,                   ej/        ddd          f         Z4eee3e,                   ej/        ddd          f         Z5eee,          ej/        dd          f         Z6eee,          ej/        d          f         Z7eee,          ej/        d          f         Z8ee9 ej/        d d!d"          f         Z:eee,          ej/        d#          f         Z;eee3e,                   ej/        d$d%          f         Z<eee,          ej/        d&d'd(          f         Z=eee9          ej/        d)          f         Z>eee9          ej/        d*          f         Z?ee, ej-        d+          f         Z@ee, ej-        d,          f         ZAeee3e,                   ej-        d-          f         ZBee3e,          ej-        d.          f         ZCee, ej-        d/          f         ZDeee3e,                   ej-        d0          f         ZEee, ej-        d1          f         ZF e&d2          ZGeGH                    d3d4d5d6i7          	 	 	 	 	 	 	 	 	 dd9e.d:eCd;e4d<e5d=e6d>e7d?e2d@e8dAe:dBe;dCe$dDdfdE            ZIeGH                    dFdG          	 	 ddHeDdBe;dCe$dDdfdI            ZJdJeKe,e,f         dKeKe,e,f         dDe9fdLZLdMe3e3ee,eMf                           dNe3e,         dOe3e,         dPee,         dDdf
dQZNdReMdDdfdSZOdHe,dTeeKe,ef                  dUe3e,         dDeePe9e,e3e3ee,eMf                           f                  fdVZQeGH                    dWdX          	 	 	 ddYeEdBe;dCe$dDdfdZ            ZReGH                    d[d\          	 	 	 	 	 dd]ee9 ej/        d^d_d`          f         dBe;dCe$daeee3e,                   ej/        dbdcdd          f         deeee,          ej/        df          f         dDdfdg            ZSeGH                    dhdi          	 	 ddYee3e,          ej-        dj          f         dBe;dCe$dDdfdk            ZTeGH                    dldm          	 	 ddHeDdBe;dCe$dDdfdn            ZU e&do          ZVeGW                    eVdpq           eVH                    d3drd5d6i7          	 	 	 	 	 	 	 	 	 	 	 	 	 ddseAdteBd9e0d?e2d;e4d<e5d=e6d>e7d@e8dAe:dBe;dCe$due<dve=dDdfdw            ZX e&dx          ZYeGW                    eYdyq           eYH                    d3dzd5d6i7          	 	 	 	 	 	 	 	 	 	 dd{e@d9e.d:eCd|e>d}e?d;e4d<e5d=e6d>e7d?e2d@e8dBe;dCe$dDdfd~            ZZeYH                    d[d          	 	 	 	 	 dd]ee9 ej/        d^d_d          f         dBe;dCe$daeee3e,                   ej/        dbdcdd          f         deeee,          ej/        ddf          f         dDdfd            Z[eYH                    dhd          	 	 ddee3e,          ej-        d          f         dBe;dCe$dDdfd            Z\eYH                    dd          	 	 ddeFdBe;dCe$dDdfd            Z]eYH                    d|d          	 	 ddeFdBe;dCe$dDdfd            Z^eYH                    dd          	 	 ddeFdBe;dCe$dDdfd            Z_ e&d          Z`eYW                    e`dpq           e`H                    d3drd5d6i7          	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd{e@dseAdteBd|e>d}e?d9e0d?e2d;e4d<e5d=e6d>e7d@e8dBe;dCe$due<dve=dDdf"d            ZadMe3e3ee,eMf                           dNe3e,         dDe,fdZbdDee,e,f         fdZc ed          Zddeed         dedeed         f         deKdDdfdZedejf        jg        dedeed         f         de3eK         dDeed         fdZhdS )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>

    # Stream resources usage stats and metrics from a job
    hf jobs stats <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)EmptyQueue)	AnnotatedAnyCallableDictIterableOptionalTypeVarUnion)SpaceHardware	get_token)HfHubHTTPError)logging)_format_size)load_dotenv   )TokenOpt
get_hf_apityper_factoryc                 2    g | ]}|j         d k    |j         S )z	zero-a10g)value).0items     V/var/www/html/speakWrite/venv/lib/python3.11/site-packages/huggingface_hub/cli/jobs.py
<listcomp>r   R   s&    WWWDTZ;=V=VTZ=V=V=V    g?z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Job IDszScheduled Job IDzRun and manage Jobs on the Hub.runz	Run a Jobignore_unknown_optionsT)r!   context_settingsFimagecommandenvsecretsenv_filesecrets_fileflavortimeoutdetach	namespacetokenreturnc           	      p   i }|r_|                     t          t          |                                          t          j                                                             |pg D ]B}|                     t          |t          j                                                             Ci }t                      }|rC|                     t          t          |                                          |                     |pg D ]&}|                     t          ||                     't          |
          }|	                    | ||||||	          }t          d|j                    t          d|j                    |rd S |                    |j                  D ]}t          |           d S )Nenvironr1   )r'   r(   r)   r*   r-   r.   r0   Job started with ID: 	View at: job_id)updater   r   	read_textosr5   copy_get_extended_environr   run_jobprintidurlfetch_job_logs)r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   env_map	env_valuesecrets_mapextended_environsecretapijoblogs                      r   jobs_runrM      s    )+G [{4>>#;#;#=#=rzGXGXYYYZZZYB J J	{9bjoo6G6GHHHIIII,.K,.. b;tL'9'9'C'C'E'EO_```aaa-R J J;v7GHHHIIII
5
!
!
!C
++   C 

*#&
*
*+++	
cg

    !!!00  c



 r    logszFetch the logs of a Jobr:   c                 x    t          |          }|                    | |          D ]}t          |           d S Nr6   r:   r0   )r   rD   rA   )r:   r0   r1   rJ   rL   s        r   	jobs_logsrR   '  sM     5
!
!
!C!!9!EE  c



 r    job_propertiesfiltersc                 j   |                                 D ]\  }}|| vr dS d|v sd|v rX|                    dd                              dd          }t          j        d| d| |         t          j                  s dS l|                                | |                                         vr dS dS )	z5Check if scheduled job matches all specified filters.F*?z.*r#   ^$T)itemsreplaceresearch
IGNORECASElower)rS   rT   keypatternregex_patterns        r   _matches_filtersrc   2  s      Wn$$55'>>SG^^#OOC66>>sCHHM91111>#3FVV uu ]]__N3$7$=$=$?$???55 @4r    rowsheadersaliasesfmtc           	      
   |rb|}| D ][}|}t          |          D ]8\  }}d| d}	|	|v r)|                    |	t          ||                             }9t          |           \dS t          t	          | |                     dS )z,Print output according to the chosen format.z{{.z}})re   N)	enumerater[   strrA   	_tabulate)
rd   re   rf   rg   templaterowlineifieldplaceholders
             r   _print_outputrr   D  s      0 	 	CD%g.. B B51e111$&&<<SQ[[AAD$KKKK	 	 	ig.../////r    nc                 T    d}d}t          |           D ]}t          ||           d S )Nz[1Az[2K)end)rangerA   )rs   LINE_UP
LINE_CLEARro   s       r   _clear_linery   W  sA    GJ1XX ' 'g:&&&&&' 'r    metrics_streamtable_headersc              #     K   |D ]}| |d          dt          |d         dz  d          t          d|d         z  |d         z  d	           dt          |d                    d
t          |d                    dt          |d                    dt          |d                    dg}|d         rt          |d         t                    r|gdgt	          |          z  gt	          |d                   dz
  z  z   }t          |t          |d                             D ]s\  }}|d         |         }||d          dt          d|d         z  |d         z  d	           dt          |d                    d
t          |d                    dgz  }tn)|dgt	          |          t	          |          z
  z  z  }|g}d| |fV  d| g fV  d S )Ncpu_usage_pct%cpu_millicoresg     @@r   d   memory_used_bytesmemory_total_bytes   zB / Brx_bpszbps / tx_bpsbpsgpus utilizationN/AFT)roundr   
isinstancedictlenzipsorted)r:   rz   r{   metricsrm   rd   gpu_idgpus           r   _get_jobs_stats_rowsr   ^  sA      " " "'***'*+f4a88S7#677'BV:WWYZ[[^^^G$7899mm|GThLi?j?jmmmGH-..ZZl78CT6U6UZZZ
 6? 	z'&/4@@ 	5RD3s88O,GFO0D0Dq0HIID"4)@)@AA  Vfof-=),,,S3':#;;cBV>WWYZ[[^^^#C(;$<==mm<PSThPiCjCjmmm  E7c-003s88;<<C5DVT!!!!!

r    statsz7Fetch the resource usage statistics and metrics of Jobsjob_idsc                    t          |                                          d         |  d                               D             } t          |           dk    rt	          d           d S g dg d}t
          j                            t          |                     5 }i | D ]"}|g}|d	 d
d          D             z  }|g|<   #t          j                    }fdD             }t          ||d            fd| D             }	t          |t          |	          D ]\  }
}}|
r                    |d            n||<   t          j                    }||z
  t          k    rAt          dt          |          z              fdD             }t          ||d            |}	 d d d            d S # 1 swxY w Y   d S )Nr6   namec                 J    g | ] }|j         r|j         j        nd dv |j        !S )UNKNOWNRUNNINGUPDATING)statusstagerB   r   rK   s     r   r   zjobs_stats.<locals>.<listcomp>  sA     
 
 
$'J=
  IBYYY FYYYr    r0   r   zNo running jobs found)	JOB IDzCPU %zNUM CPUzMEM %z	MEM USAGEzNET I/Oz
GPU UTIL %z	GPU MEM %zGPU MEM USAGE)	rB   r}   r   memory_used_bytes_pct!memory_used_bytes_and_total_bytesrx_bps_and_tx_bpsgpu_utilizationgpu_memory_used_bytes_pct%gpu_memory_used_bytes_and_total_bytesc                 &    g | ]}d |v sd|v rdndS )/USAGEz-- / --z-- )r   headers     r   r   zjobs_stats.<locals>.<listcomp>  s/    pppTZ#--7f3D3DII4pppr    r   c                 *    g | ]}|         D ]}|S r   r   r   r:   rm   rows_per_job_ids      r   r   zjobs_stats.<locals>.<listcomp>  s,    [[[f?SYCZ[[Cc[[[[r    c                 F    g | ]}|                     |           dS )rQ   )r:   rz   r{   )fetch_job_metrics)r   r:   rJ   r0   r{   s     r   r   zjobs_stats.<locals>.<listcomp>  sO     
 
 
 	 !"%"7"7vQZ"7"["[!. 
 
 
r    )kwargs_listr   c                 *    g | ]}|         D ]}|S r   r   r   s      r   r   zjobs_stats.<locals>.<listcomp>  s,    cccf?[aKbccCcccccr    )r   whoami	list_jobsr   rA   multiprocessingpool
ThreadPooltimerr   iflatmap_unorderedr   popSTATS_UPDATE_MIN_INTERVALry   )r   r0   r1   headers_aliasesr   r:   rm   last_update_time
total_rowsr   donerd   nowrJ   r   r{   s    `           @@@r   
jobs_statsr   z  s    5
!
!
!CJJLL(	
 
}}y}99
 
 

 7||q%&&&
 
 
M
 
 
O 
		(	(W	6	6 '$BD 	, 	,F*0Cpp^klmlnln^oppppC'*eOF##9;;[[[[[[[
j-$GGG
 
 
 
 
 
 "
 
 
 #5T;O]h"i"i"i 
	' 
	'D&$ /##FD1111*.')++C%%)BBBAJ/000ccccccc
j-$OOO#& 
	'%' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   +D	GG	G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                 j   	 t          |          }|                    |          }g d}g d}g }	i }
|pg D ]J}d|v r1|                    dd          \  }}||
|                                <   7t	          d| d           K|D ]}|j        r|j        j        nd	}| s|d
vr|j        }|j        pd}|j	        pg }|rd
                    |          nd}|j        r|j                            d          nd}|||                                |d}t          ||
          s|	                    |||||g           |	sL|
r4dd
                    d |
                                D                        nd}t	          d|            d S t!          |	|||           d S # t"          $ r}t	          d|            Y d }~d S d }~wt$          t&          t(          f$ r}t	          d|            Y d }~d S d }~wt*          $ r2}t	          dt-          |          j         d|            Y d }~d S d }~ww xY w)Nr6   r   )r   IMAGE/SPACECOMMANDCREATEDSTATUS)rB   r'   r(   createdr   =r   )Warning: Ignoring invalid filter format ''. Use key=value format.r   r   r    %Y-%m-%d %H:%M:%S)rB   r'   r   r(    matching filters: r"   c                 "    g | ]\  }}| d | S r   r   r   kvs      r   r   zjobs_ps.<locals>.<listcomp>  &    0X0X0X1A0X0X0Xr    r   zNo jobs foundzError fetching jobs data: zError processing jobs data: Unexpected error - : )r   r   splitr_   rA   r   r   rB   docker_imager(   join
created_atstrftimerc   appendrZ   rr   r   KeyError
ValueError	TypeError	Exceptiontype__name__)r   r0   r1   r   r   rJ   jobsr{   r   rd   rT   fr`   r   rK   r   r:   image_or_spacecmdcommand_strr   propsfilters_msges                           r   jobs_psr     s   6;=u%%%}}y}11QQQIII,."$2 	_ 	_AaxxWWS!__
U',		$$]!]]]^^^^ 	S 	SC),BSZ%%F 6)@@@VF !-6N +#C+.9#((3---EK JMb001DEEE]bJ "NfllnnalmmE#E733  KKj&QRRRR  	_fn[dii0X0X0X0X0X&Y&Y[[[ln  /+//000FdM?FCCCCC 0 0 0.1../////////j), 2 2 20Q00111111111 = = =;DGG$4;;;;<<<<<<<<<=s6   FF F 
H2)GH2G33H2 'H--H2inspectz0Display detailed information on one or more JobszThe jobs to inspectc                     t          |          fd| D             }t          t          j        d |D             dt                               d S )Nr6   c                 >    g | ]}                     |           S )rQ   )inspect_job)r   r:   rJ   r0   s     r   r   z jobs_inspect.<locals>.<listcomp>&  s)    VVVFCOO6YO??VVVr    c                 ,    g | ]}t          |          S r   r   r   s     r   r   z jobs_inspect.<locals>.<listcomp>'  s    222cfSkk222r       indentdefaultr   rA   jsondumpsrj   )r   r0   r1   r   rJ   s    `  @r   jobs_inspectr     sf     5
!
!
!CVVVVVgVVVD	$*22T2221c
J
J
JKKKKKr    cancelzCancel a Jobc                 T    t          |          }|                    | |           d S rP   )r   
cancel_job)r:   r0   r1   rJ   s       r   jobs_cancelr  *  s0     5
!
!
!CNN&IN66666r    zERun UV scripts (Python with inline dependencies) on HF infrastructureuv)r   z8Run a UV script (local file or URL) on HF infrastructurescriptscript_argswith_pythonc                 z   i }|r_|                     t          t          |                                          t          j                                                             |pg D ]B}|                     t          |t          j                                                             Ci }t                      }|rC|                     t          t          |                                          |                     |pg D ]&}|                     t          ||                     't          |          }|	                    | |pg ||||||||

  
        }t          d|j                    t          d|j                    |	rd S |                    |j                  D ]}t          |           d S )Nr4   r6   )
r  r  dependenciesr  r'   r)   r*   r-   r.   r0   r7   r8   r9   )r;   r   r   r<   r=   r5   r>   r?   r   
run_uv_jobrA   rB   rC   rD   )r  r  r'   r-   r)   r*   r+   r,   r.   r/   r0   r1   r  r  rE   rF   rG   rH   rI   rJ   rK   rL   s                         r   jobs_uv_runr  8  s   * )+G [{4>>#;#;#=#=rzGXGXYYYZZZYB J J	{9bjoo6G6GHHHIIII,.K,.. b;tL'9'9'C'C'E'EO_```aaa-R J J;v7GHHHIIII
5
!
!
!C
..%2   C 

*#&
*
*+++	
cg

    !!!00  c



 r    z,Create and manage scheduled Jobs on the Hub.	scheduledzSchedule a Jobschedulesuspendconcurrencyc                    i }|r_|                     t          t          |                                          t          j                                                             |pg D ]B}|                     t          |t          j                                                             Ci }t                      }|rC|                     t          t          |                                          |                     |pg D ]&}|                     t          ||                     't          |          }|	                    ||| |||||	|
|
  
        }t          d|j                    d S )Nr4   r6   )
r'   r(   r  r  r  r)   r*   r-   r.   r0   Scheduled Job created with ID: )r;   r   r   r<   r=   r5   r>   r?   r   create_scheduled_jobrA   rB   )r  r'   r(   r  r  r)   r*   r+   r,   r-   r.   r0   r1   rE   rF   rG   rH   rI   rJ   scheduled_jobs                       r   scheduled_runr  t  s     )+G [{4>>#;#;#=#=rzGXGXYYYZZZYB J J	{9bjoo6G6GHHHIIII,.K,.. b;tL'9'9'C'C'E'EO_```aaa-R J J;v7GHHHIIII
5
!
!
!C,, -  M 

>M,<
>
>?????r    zList scheduled Jobsz1Show all scheduled Jobs (default hides suspended)z--formatc           
         	 t          |          }|                    |          }g d}g d}g }	i }
|pg D ]J}d|v r1|                    dd          \  }}||
|                                <   7t	          d| d           K|D ]}|j        pd	}| s|r|j        }|j        pd
}|j        j	        pd
}|j        j
        pg }|rd                    |          nd
}|j        j        r$|j        j        j                            d          nd
}|j        j        r|j        j                            d          nd
}||t#          |          |d}t%          ||
          s|	                    |||||||g           |	sL|
r4dd                    d |
                                D                        nd}t	          d|            d S t+          |	|||           d S # t,          $ r}t	          d|            Y d }~d S d }~wt.          t0          t2          f$ r}t	          d|            Y d }~d S d }~wt4          $ r2}t	          dt7          |          j         d|            Y d }~d S d }~ww xY w)Nr6   r   )IDSCHEDULEr   r   zLAST RUNzNEXT RUNSUSPEND)rB   r  r'   r(   lastnextr  r   r   r   r   Fr   r   r   )rB   r'   r  r(   r   r"   c                 "    g | ]\  }}| d | S r   r   r   s      r   r   z scheduled_ps.<locals>.<listcomp>  r   r    r   zNo scheduled jobs foundz$Error fetching scheduled jobs data: z&Error processing scheduled jobs data: r   r   )r   list_scheduled_jobsr   r_   rA   r  rB   r  job_specr   r(   r   r   last_jobatr   next_job_run_atrj   rc   r   rZ   rr   r   r   r   r   r   r   r   )r   r0   r1   r   r   rJ   scheduled_jobsr{   r   rd   rT   r   r`   r   r  r  sj_idr  r   r   r   last_job_atr   r   r   r   s                             r   scheduled_psr$    sH   83=u%%%0090EEggg[[[,."$2 	_ 	_AaxxWWS!__
U',		$$]!]]]^^^^+ 	o 	oM#+4uG 7 !$E$-6H*3@IEN(06BC+.9#((3---EK !'0$-099:MNNN  !'7$4==>QRRR 
 !>c'll_jkkE#E733 KK.+{Tcelmnnnn 	_fn[dii0X0X0X0X0X&Y&Y[[[ln  9K99:::FdM?FCCCCC : : :8Q88999999999j), < < <:q::;;;;;;;;; = = =;DGG$4;;;;<<<<<<<<<=s6   GG 	G 
I0'G??I0H11I0>'I++I0z:Display detailed information on one or more scheduled Jobsscheduled_job_idszThe scheduled jobs to inspectc                     t          |          fd| D             }t          t          j        d |D             dt                               d S )Nr6   c                 >    g | ]}                     |           S )scheduled_job_idr0   )inspect_scheduled_job)r   r)  rJ   r0   s     r   r   z%scheduled_inspect.<locals>.<listcomp>  s=        	!!3Cy!YY  r    c                 ,    g | ]}t          |          S r   r   )r   r  s     r   r   z%scheduled_inspect.<locals>.<listcomp>  s     PPPf]++PPPr    r   r   r   )r%  r0   r1   r!  rJ   s    `  @r   scheduled_inspectr,    s{     5
!
!
!C     1  N 
$*PPPPPYZdg
h
h
hiiiiir    deletezDelete a scheduled Jobr)  c                 T    t          |          }|                    | |           d S Nr6   r(  )r   delete_scheduled_jobr)  r0   r1   rJ   s       r   scheduled_deleter2    4     5
!
!
!C.>)TTTTTr    zSuspend (pause) a scheduled Jobc                 T    t          |          }|                    | |           d S r/  )r   suspend_scheduled_jobr1  s       r   scheduled_suspendr6    s4     5
!
!
!C/?9UUUUUr    resumez Resume (unpause) a scheduled Jobc                 T    t          |          }|                    | |           d S r/  )r   resume_scheduled_jobr1  s       r   scheduled_resumer:    r3  r    z(Schedule UV scripts on HF infrastructurec                    i }|	r_|                     t          t          |	                                          t          j                                                             |pg D ]B}|                     t          |t          j                                                             Ci }t                      }|
rC|                     t          t          |
                                          |                     |pg D ]&}|                     t          ||                     't          |          }|	                    ||pg | ||||||||||          }t          d|j                    d S )Nr4   r6   )r  r  r  r  r  r	  r  r'   r)   r*   r-   r.   r0   r  )r;   r   r   r<   r=   r5   r>   r?   r   create_scheduled_uv_jobrA   rB   )r  r  r  r  r  r'   r-   r)   r*   r+   r,   r.   r0   r1   r  r  rE   rF   rG   rH   rI   rJ   rK   s                          r   scheduled_uv_runr=  '  s   . )+G [{4>>#;#;#=#=rzGXGXYYYZZZYB J J	{9bjoo6G6GHHHIIII,.K,.. b;tL'9'9'C'C'E'EO_```aaa-R J J;v7GHHHIIII
5
!
!
!C

%
%%2 &  C 

4CF
4
455555r    c                    d t          g | |R  D             }t          t          j                    j        t          |          dz            }t          |          t          |          z   |k    r|                    t          |                    }||xx         dz  cc<   t          |          t          |          z   |k    r.|t          |          z
  t          |          z
  ||         z   ||<   t          |          t          |          z   |k     dt          |          z  j        | }g }|	                     |j        |            |	                     |j        d |D                         | D ]9}d t          ||          D             }|	                     |j        |            :d
                    |          S )z
    Inspired by:

    - stackoverflow.com/a/8356620/593036
    - stackoverflow.com/questions/9535954/printing-lists-as-tabular-data
    c                 @    g | ]}t          d  |D                       S )c              3   N   K   | ] }t          t          |                    V  !d S Nr   rj   )r   xs     r   	<genexpr>z'_tabulate.<locals>.<listcomp>.<genexpr>g  s.      //ac#a&&kk//////r    )max)r   cols     r   r   z_tabulate.<locals>.<listcomp>g  s/    OOOC#//3/////OOOr       r   z{{:{}}} c                     g | ]}d |z  S )-r   )r   ws     r   r   z_tabulate.<locals>.<listcomp>q  s    $A$A$AS1W$A$A$Ar    c                     g | ]Q\  }}t          t          |                    |k    rt          |          d |dz
           dz   nt          |          RS )N   z...rB  )r   rC  	col_widths      r   r   z_tabulate.<locals>.<listcomp>s  sf     
 
 
9 033q66{{Y/F/FCFF?Y]?#e++CPQFF
 
 
r    
)r   rE  r=   get_terminal_sizecolumnsr   sumindexr   r   r   )	rd   re   
col_widthsterminal_widthcol_to_minimize
row_formatlinesrm   row_format_argss	            r   rk   rk   `  s    PO3;N;Ng;N;N;NOOOJ-//7W9JKKN
g,,Z
(>
9
9$**3z??;;?###)###w<<#j//)^;;*83z??*JSQX\\*Y\fgv\w*wJ'	 g,,Z
(>
9
9
 4*s7||+3Z@JE	LL""G,---	LL""$A$Aj$A$A$ABCCC : :
 
 #C 4 4
 
 
 	&Z&8999999Ur    c                  l    t           j                                        } t                      x}|| d<   | S )NHF_TOKEN)r=   r5   r>   r   )rH   r1   s     r   r?   r?   {  s4    z(()',$r    Tqueuefunc.kwargsc                 F     |di |D ]}|                      |           d S )Nr   )put)r\  r]  r^  results       r   _write_generator_to_queuerb    s<    $....  		& r    r   r   c             #      K   t                       fd|D             }	 	 	                     d          V  n?# t          $ r2 t          d |D                       r                                rY nY nw xY wZn# t
          $ r Y nw xY w	 d |D              dS # t          j        $ r Y dS w xY w# 	 d |D              w # t          j        $ r Y w w xY wxY w)a;  
    Takes a function that returns an iterable of items, and run it in parallel using threads to return the flattened iterable of items as they arrive.

    This is inspired by those three `map()` variants, and is the mix of all three:

    * `imap()`: like `map()` but returns an iterable instead of a list of results
    * `imap_unordered()`: like `imap()` but the output is sorted by time of arrival
    * `flatmap()`: like `map()` but given a function which returns a list, `flatmap()` returns the flattened list that is the concatenation of all the output lists
    c                 L    g | ] }                     t          |f          !S r   )apply_asyncrb  )r   r^  r]  r   r\  s     r   r   z&iflatmap_unordered.<locals>.<listcomp>  s2    rrr\bT%%&?%vAVWWrrrr    T皙?r.   c              3   >   K   | ]}|                                 V  d S rA  )readyr   async_results     r   rD  z%iflatmap_unordered.<locals>.<genexpr>  s.      NN|))++NNNNNNr    c                 :    g | ]}|                     d           S )rf  rg  )getrj  s     r   r   z&iflatmap_unordered.<locals>.<listcomp>  s)    NNN\d++NNNr    N)r   rm  r   r   emptyKeyboardInterruptr   TimeoutError)r   r]  r   async_resultsr\  s   ``  @r   r   r     sf      ggErrrrrrfqrrrM	iii------   NNNNNNN SXS^S^S`S` E	
    	NNNNNNNN+ 	 	 	DD		NNNNNNN+ 	 	 	D	s   B A  B  7A<7B ;A<<B  B6 
BB6 BB6 B   B32B36C8CCCCCC)	NNNNNNFNN)NN)NNN)FNNNN)NNNNNNNNFNNNN)
NNNNNNNNNN)NNNNNNNNNNNNNN)i__doc__r   r   multiprocessing.poolr=   r\   r   dataclassesr   pathlibr   r\  r   r   typingr   r	   r
   r   r   r   r   r   typerhuggingface_hubr   r   huggingface_hub.errorsr   huggingface_hub.utilsr   $huggingface_hub.utils._cache_managerr   huggingface_hub.utils._dotenvr   
_cli_utilsr   r   r   
get_loggerr   loggerSUGGESTED_FLAVORSr   rj   ArgumentImageArgOptionImageOptr   	FlavorOptlistEnvOpt
SecretsOpt
EnvFileOptSecretsFileOpt
TimeoutOptbool	DetachOptNamespaceOptWithOpt	PythonOpt
SuspendOptConcurrencyOptScheduleArg	ScriptArgScriptArgsArg
CommandArgJobIdArg	JobIdsArgScheduledJobIdArgjobs_clir(   rM   rR   r   rc   intrr   ry   tupler   r   r   r   r  uv_app	add_typerr  scheduled_appr  r$  r,  r2  r6  r:  scheduled_uv_appr=  rk   r?   r[  rb  r   r   r   r   r    r   <module>r     s  * *X          				 				                      U U U U U U U U U U U U U U U U U U U U  4 4 4 4 4 4 4 4 1 1 1 1 1 1 ) ) ) ) ) ) = = = = = = 5 5 5 5 5 5 ; ; ; ; ; ; ; ; ; ; 
	H	%	%WWMWWW   EN'   SMEL=   ]EL Ddhdmdmn  eA  eA  D  D  D  	 
T#YEL>  
 T#YEL F  
 SMEL7  
 SMEL>   SMELe  
 ELB  	 SMELe   T#YEL4   SMELD  	 TNEL0  
 TNELG   ENf   EN3  	 T#YEN'   IEN"  
 EN   T#YEN  	 EN    =?@@@ 
%k=UW[<\]] #'", ,,, 
, 	,
 , !, , , , , , 
, , , ^],^ 
&899 #   
	   :9T#s(^ d38n QU    $0
tE#s(O$
%004S	0DHI0T\]`Ta0	0 0 0 0&'3 '4 ' ' ' '!)$sCx.!9JNs)eD#tDsCx$9::;<   8 
' YZZ"C' C'C'C' C' 
	C' C' C' [ZC'L 
$[)) 	" 	 	1U= U=	=	
 	
 	
	
U= U= U= cQ	
 	
 	
	U=& 8	
 	
 	
	'U=2 
3U= U= U= *)U=p 
)"TUU #L LS	&	
 	
 	
	L L L 
L L L VUL 
(00 #7 777 7 
	7 7 7 107 
c	d	d	d   6  % % % 		C.5    "&#'"0 000 0 	0
 
0 0 0 !0 0 0 0 0 0 0 
0 0 0 
0f #QRRR   ={  3 3 3 u#3G_aeFfgg
 "&#'"(@ (@(@(@ (@ 	(@
  (@ 
(@ (@ (@ !(@ (@ (@ (@ (@ 
(@ (@ (@ hg(@V t"788 	" 	 	3N= N=	D	
 	
 	
	
N= N= N= cQ	
 	
 	
	N=& 8	
 	
 	
	'N=4 
5N= N= N= 98N=b y'cdd #j j S	0	
 	
 	
	j j j 
j j j edj$ x&>?? #U U'UU U 
	U U U @?U y'HII #V V'VV V 
	V V V JIV x&HII #U U'UU U 
	U U U JIU !=&PQQQ    (t  4 4 4 		C.5    "&"&#'"!.6 .6.6.6 .6 	.6
  .6 .6 .6 
.6 .6 .6 !.6 .6 .6 .6 .6  !.6" 
#.6 .6 .6 
.6hDeCHo./ $s)     6tCH~     GCLLU1X Xc8A;>N5O Y] bf    



)
3#
$ d	
 a[     r    