
    ;3h                    L   d dl mZ d dlZd dlZd dlmZmZ d dlZd dlm	Z	 d dl
mZ d dlZ ej                         Zej                   j#                  ed      Zej                   j#                  ej                   j'                  e      d      Z	 	 	 	 	 	 ddZdd	Z	 	 d	 	 	 dd
Zy)    )annotationsN)	AnnotatedOptional)print)Optionz	README.mdzdeploy_space_action.yamlc                |   i }t         j                  j                  t              }| t	        d| d      xs |} t        |       }|| k7  rt        d| d       ||d<   |t        j                  t              D ]  }t         j                  j                  t        |      }t         j                  j                  |      r|j                  d      sXt        |dd	      5 }|j                         }d
|v r|}	 d d d         n	 d d d         t	        d|rd| dnd d      xs |}|rt         j                  j                  |      st        d      ||d<   d|d<   t        j                   |d<   t#        j$                  t&        |       t	        ddj                  d t"        j(                  D               d      xs d|d<   i }	t	        d      dk(  r$	 t	        d      }
|
snt	        d|
 d      }||	|
<   #|	|d <   t         j                  j                  t        d!      }t         j                  j                  |      sWt	        d"      j+                         dk(  r;	 t	        d#      }|sn,t        |d$d%      5 }|j-                  |d&z          d d d        :t	        d'      j+                         dk(  rt	        d(      xs d)}t         j                  j                  t        d*      }t        j.                  t         j                  j1                  |      d+       t        t2        d%      5 }|j                         }d d d        j5                  d,|      }t        |d-d%      5 }|j-                  |       d d d        t        d.       |S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   <xY w)/NzEnter Spaces app title [z]: zFormatted to z. titlez.pyzutf-8ignore)encodingerrorszimport gradiozEnter Gradio app file [] z: zFailed to find Gradio app file.app_filegradiosdksdk_versionzEnter Spaces hardware (z, c              3  4   K   | ]  }|j                     y w)N)value).0hardwares     `/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/gradio/cli/commands/deploy_space.py	<genexpr>z.add_configuration_to_readme.<locals>.<genexpr><   s     /m8/ms   z) [cpu-basic]: z	cpu-basicr   zAny Spaces secrets (y/n) [n]: yTz(Enter secret name (leave blank to end): zEnter secret value for secretszrequirements.txtz)Create requirements.txt file? (y/n) [n]: z)Enter a dependency (leave blank to end): a)r   
zGCreate Github Action to automatically update Space on 'git push'? [n]: zEnter branch to track [main]: mainz".github/workflows/update_space.yml)exist_okz$branchwzGithub Action created. Add your Hugging Face write token (from https://huggingface.co/settings/tokens) as an Actions Secret named 'hf_token' to your GitHub repository. This can be set in your repository's settings page.)ospathbasenamerepo_directoryinputformat_titler   listdirjoinisfileendswithopenreadexistsFileNotFoundErrorgr__version__huggingface_hubmetadata_savereadme_fileSpaceHardwarelowerwritemakedirsdirnamegithub_action_templatereplace)r	   r   configurationdir_nameformatted_titlefile	file_pathfcontentr   secret_namesecret_valuerequirements_filerequirementtrack_branchgithub_action_filegithub_action_contents                    r   add_configuration_to_readmerI      s    Mww/H}0
#>?K8"5)O%o.b12,M'JJ~. 		D^T:I77>>),DMM%4Hi'(C q&&("g-#H	 - 		 *hQxj?B*OrRS  	 277>>(3 ABB (M*#M%#%>>M- !!+}= 	%dii/mOlOl/m&m%nn}~	
 	 	 * G-.#5 JKK #:;-r!JKL#/GK    'M)^5GHGGNN,-=>DDF#M KLK'w? ,1d*+,	  	U	

%'	
 =>H&WW\\@
 	BGGOO$67$G(7; 	-q$%FFH!	- 5 = =i V$cG< 	+GG)*	+ 	 j	
 I X, ,	- 	-	+ 	+s0    N:N,N&%N2N	N#&N/2N;c                    | j                  dd      } t        j                  dd|       } t        j                  dd|       } | j                  d      r| dd  } | j                  d      r| S )	N _z[^a-zA-Z0-9\-._]r   z-+-.   )r:   resub
startswith)r	   s    r   r&   r&   o   se    MM#s#EFF&E2EFF4e$E


3
ab	 

3
L    c           	     N   t        j                  d      dk(  ry t        j                         }d }d}	 |j	                         }|d   d   d   dk7  rd}|r1t        d	       t        j                  d
       |j	                         }d }t         j                  j                  t              r	 t        j                  t              }|t        dt         d       t        | |      }t        j                  |d   ddd|j!                  d            j"                  }|j%                  |dt               |j!                  d      r2|d   j'                         D ]  \  }}t        j(                  |||        t        d|        y # t
        $ r d}Y Aw xY w# t        $ r Y w xY w)NSYSTEMspacesFauthaccessTokenroler6   Tz2Need 'write' access token to create a Spaces repo.)add_to_git_credentialzCreating new Spaces Repo in 'z<'. Collecting metadata, press Enter to accept default value.r	   r   spacer   )	space_sdk	repo_typer   space_hardware)repo_idr]   folder_pathr   z1Space available at https://huggingface.co/spaces/)r!   getenvr1   HfApiwhoamiOSErrorr   loginr"   r-   r3   metadata_load
ValueErrorr$   rI   create_repogetr_   upload_folderitemsadd_space_secret)	r	   r   hf_apirc   re   r;   space_idrB   rC   s	            r   deployro   x   s    			(x'""$FFE&>-(0G;E BCE:!%M	ww~~k"	+99+FM +N+;;wx	
 4

 **g$((4 g  "  
 #)6y)A)G)G)I 	R%K,,X{LQ	R	=hZ
HIM    		s#    F ,F FF	F$#F$)r	   
str | Noner   rp   returndict)r	   str)NN)r	   z9Annotated[Optional[str], Option(help='Spaces app title')]r   zGAnnotated[Optional[str], Option(help='File containing the Gradio app')])
__future__r   r!   rP   typingr   r   r1   richr   typerr   r   r/   getcwdr$   r"   r(   r3   r8   __file__r9   rI   r&   ro    rS   r   <module>r{      s    " 	 	 &    ggll>;7GGOOH9 
XXX 
Xv HL 		8JD8J8JrS   