
    tniN                     D   d 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mZ ddlmZ  ej        dd	
          d             Ze                    d           ej        dddedd           ej        ddd ej        dgd          dd           ej        dddedd           ej        dddd d!          d"                                                             Ze                    d#          d$             Ze                    d%          d&             ZdS )'z#
Runpod | CLI | Project | Commands
    N)prompt)get_user   )create_new_projectcreate_project_endpointstart_project)validate_project_nameprojectz+Create, deploy, and manage Runpod projects.)helpc                      dS )z%Create and deploy projects on Runpod.N r       _/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/runpod/cli/groups/project/commands.pyproject_clir      s      r   newz--namez-nproject_namezThe project name.)typedefaultr   z--typez-t
model_typellama2Fcase_sensitivezThe type of Hugging Face model.z--modelz-m
model_namez@The name of the Hugging Face model. (e.g. meta-llama/Llama-2-7b)z--initz-iinit_current_dirT)is_flagr   c           	         t                      d         }t          |          dk    r<t          j        d           t          j        d           t	          j        d           t          j        d           |r0t          j                            t          j	                              } | t          j
        dt          	          } t          |            d
 }t          t          ||                    }ddddd|dg}t          |          d         }t          j
        dt          j        g dd          d          }t          j
        dt          j        g dd          d          }	t          j        d           t          j        d           t          j        d|             t          j        d|            t          j        d|            t          j        d|	            t          j        d           t          j        d           t          j        dd !           t%          | |||	|||           t          j        d"|  d#           t          j        d           t          j        d$           dS )%zCreate a new project.networkVolumesr   z$You do not have any network volumes.zVPlease create a network volume (https://console.runpod.io/user/storage) and try again.r   zCreating a new project...Nz   > Enter the project name)r   c                 `    | d          d| d          d| d          d| d          d| d         d	S )
Nidz: namez (sizez GB, dataCenterId))r    valuer   )vols    r   print_net_volz)new_project_wizard.<locals>.print_net_vol@   sM    4y[[CK[[3v;[[SEX[[[Y
 
 	
r   rawlistz	volume-id z   > Select a Network Volume:)r   r    qmarkamarkmessagechoicesz=   > Select a CUDA version, or press enter to use the default)z11.1.111.8.0z12.1.0Fr   r-   )r   r   z?   > Select a Python version, or press enter to use the default)z3.8z3.93.10z3.11r.   zProject Summary:z   - Project Name: z    - Runpod Network Storage ID: z   - CUDA Version: z   - Python Version: z5The project will be created in the current directory.Do you want to continue?TabortzProject z created successfully!zMFrom your project root run `runpod project start` to start a development pod.)r   lenclickechosysexitospathbasenamegetcwdr   strr	   listmap
cli_selectChoiceconfirmr   )
r   r   r   r   network_volumesr&   	questionsrunpod_volume_idcuda_versionpython_versions
             r   new_project_wizardrF      s   . jj!12O
?q  
9:::
d	
 	
 	
 		J*+++ 5w''	44|$ALLL,'''
 
 
 3}o>>??O 6&	
 	
	I "),,[9<G\888OOO  L \I\888OOO  N 
JrNNN	J!"""	J3\33444	JD2BDDEEE	J3\33444	J7~77888	JrNNN	JFGGG	M,D9999   
J>,>>>???	JrNNN	JW    r   startc                     t          j        d           t          j        d           t          j        d           t          j        d           t          j        dd           t          j        d           t                       d	S )
z<
    Start the project development pod from runpod.toml
    z\Starting the project will create a development pod on Runpod, if one does not already exist.zI    - You will be charged based on the GPU type specified in runpod.toml.z=    - When you are finished close the connection with CTRL+C.r(   r/   Tr0   z#Starting project development pod...N)r3   r4   r@   r   r   r   r   start_project_podrI   }   s    
 
Jf   
JS   
JNOOO	JrNNN	M,D9999	J4555OOOOOr   deployc                  0   t          j        d           t                      } t          j        d|             t          j        d           t          j        d|  d           t          j        d|  d           t          j        d|  d           dS )	zDeploy the project to Runpod.zDeploying project...z,Project deployed successfully! Endpoint ID: z!The following urls are available:z    - https://api.runpod.ai/v2/z/runsyncz/runz/healthN)r3   r4   r   )endpoint_ids    r   deploy_projectrM      s     
J%&&&)++K	JKkKKLLL	J2333	JFFFFGGG	JBBBBCCC	JEEEEFFFFFr   )__doc__r7   r5   r3   
InquirerPyr   r>   runpodr   	functionsr   r   r   helpersr	   groupr   commandoptionr;   r?   rF   rI   rM   r   r   r   <module>rV      s    
			 



  + + + + + +       Q Q Q Q Q Q Q Q Q Q * * * * * * YJKKK0 0 LK0
 UdNdAT   	xj	7	7	7	*   		K   h0$NNNM M ON    *Mb W  ( X
G 
G 
G 
G 
Gr   