o
    ̳i"                     @   sr  d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZ d dlmZmZmZ d dlmZ d dlmZ e eZded	ed
dfddZ	d"dddedededB dedB d
df
ddZ	d#dddededededB d
df
ddZ	d#dddedededB dededB d
dfddZded	ed
dfddZ ded	ed
dfddZ!ded	ed
edB fd d!Z"dS )$    N)
HTTPStatus)ApiCreateModelInstanceRequest!ApiCreateModelInstanceRequestBody$ApiCreateModelInstanceVersionRequest(ApiCreateModelInstanceVersionRequestBodyApiCreateModelRequestApiDeleteModelRequestApiGetModelRequestCreateModelSigningTokenRequest)BackendErrorbuild_kaggle_client)KaggleApiHTTPErrorhandle_callhandle_mutate_call)UploadDirectoryInfo)ModelHandle
owner_slug
model_slugreturnc                    sn   t  * t | _|_|_d_t fdd td| d W d    d S 1 s0w   Y  d S )NTc                          j jS N)modelsmodel_api_clientcreate_model 
api_clientrr   L/home/ubuntu/.local/lib/python3.10/site-packages/kagglehub/models_helpers.py<lambda>       z_create_model.<locals>.<lambda>Model 'z
' Created.)	r   r   r   slugtitle
is_privater   loggerinfo)r   r   r   r   r   _create_model   s   "r'   Fsigstoremodel_handle
upload_dirlicense_namer)   c                   s   |  }t L t | j_| j_t _| j	j_
|  j_|jj_|jj_|j_|d ur8|j_t fdd td|    W d    d S 1 sVw   Y  d S )Nc                      r   r   )r   r   create_model_instancer   r   r   r   r   7   r    z(_create_model_instance.<locals>.<lambda>zKYour model instance has been created.
Files are being processed...
See at: )to_protor   r   ownerr   modelr   r   body	variationinstance_slugframework_enum	frameworkfilesdirectoriesr)   r,   r   r%   r&   to_url)r*   r+   r,   r)   upload_protor   r   r   _create_model_instance"   s$   


"r:    version_notesc                   s   |  }t F t | j_| j_|  _| j	_
t _|j_|jj_|jj_|j_t fdd td|    W d    d S 1 sPw   Y  d S )Nc                      r   r   )r   r   create_model_instance_versionr   r   r   r   r   R   r    z0_create_model_instance_version.<locals>.<lambda>zSYour model instance version has been created.
Files are being processed...
See at: )r.   r   r   r/   r   r0   r   r4   r5   r2   r3   r   r1   r<   r6   r7   r)   r   r%   r&   r8   )r*   r+   r<   r)   r9   r   r   r   _create_model_instance_version>   s&   


"r>   r6   c             
   C   s`   zt | |||d W d S  ty/ } z|jtjkr"t| |||d n|W Y d }~d S d }~ww )Nr(   )r:   r   
error_coder   CONFLICTr>   )r*   r6   r,   r<   r)   er   r   r    create_model_instance_or_versionY   s   rB   c              
      s   z*t   t | _|_t fdd W d    W d S 1 s#w   Y  W d S  tyd } z.|jd urW|jjtj	ksE|jjtj
krWtd| d|  d t| | n|W Y d }~d S d }~w tyq } z|d }~ww )Nc                      r   r   )r   r   	get_modelr   r   r   r   r   q   r    z)create_model_if_missing.<locals>.<lambda>r!   z2' does not exist or access is forbidden for user 'z '. Creating or handling Model...)r   r	   r   r   r   r   responsestatus_coder   	NOT_FOUND	FORBIDDENr%   r&   r'   	Exceptionr   r   rA   r   r   r   create_model_if_missingk   s,   &
rJ   c              
      s   z*t   t | _|_t fdd W d    W d S 1 s#w   Y  W d S  tyX } z"|jd urK|jjtj	krKt
d| d|  d n|W Y d }~d S d }~ww )Nc                      r   r   )r   r   delete_modelr   r   r   r   r      r    zdelete_model.<locals>.<lambda>zCould not delete Model '' for user 'z'...)r   r   r   r   r   r   rD   rE   r   rF   r%   r&   rI   r   r   r   rK      s   &rK   c              
      s   z,t   t | _|_t fdd}|jW  d   W S 1 s%w   Y  W dS  tyW } z|jdurL|jjt	j
krLtd| d|  d W Y d}~dS d}~ww )zFReturns a JWT for signing if authorized for /{owner_slug}/{model_slug}c                      r   r   )r   r   create_model_signing_tokenr   r   r   r   r      r    zsigning_token.<locals>.<lambda>Nz'Could not get Signing token for Model 'rL   z'. Skipping signing...r;   )r   r
   r   r   r   id_tokenr   rD   rE   r   rF   r%   r&   )r   r   rD   rA   r   r   r   signing_token   s    (rO   r   )r;   )#logginghttpr   (kagglesdk.models.types.model_api_servicer   r   r   r   r   r   r	   r
   kagglehub.clientsr   r   kagglehub.exceptionsr   r   r   kagglehub.gcs_uploadr   kagglehub.handler   	getLogger__name__r%   strr'   boolr:   r>   rB   rJ   rK   rO   r   r   r   r   <module>   sp    (



