
    LMh                     ,   d Z ddlZddlmZmZ ddlmZ ddlmZ dZ	dZ
dZdZdZdZdZ ed	
           G d d                      Z ed	
           G d de                      Z ed	
           G d de                      Z ed	
           G d de                      Z ed	
           G d de                      Z G d de          Z G d de          ZdedefdZdedefdZdedefdZdedefdZdedefdZdedefd ZdS )!z$Functions to parse resource handles.    N)asdict	dataclass)Optional)get_kaggle_api_endpoint         T)frozenc                   4    e Zd Zej        defd            ZdS )ResourceHandlereturnc                     dS )z(Returns URL to the resource detail page.N selfs    P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/handle.pyto_urlzResourceHandle.to_url   s	     	    N)__name__
__module____qualname__abcabstractmethodstrr   r   r   r   r   r      s=              r   r   c                       e Zd ZU eed<   eed<   eed<   eed<   ee         ed<   defdZdedd fdZ	defd	Z
defd
ZdS )ModelHandleownermodel	framework	variationversionr   c                 *    | j         d uo
| j         dk    S Nr   r!   r   s    r   is_versionedzModelHandle.is_versioned$       |4'<DL1,<<r   c                 R    t          | j        | j        | j        | j        |          S )Nr   r   r   r    r!   )r   r   r   r   r    r   r!   s     r   with_versionzModelHandle.with_version'   s/    *DJ$.TXTbls
 
 
 	
r   c                     | j          d| j         d| j         d| j         }|                                 r| d| j         S |S )N/)r   r   r   r    r%   r!   r   
handle_strs     r   __str__zModelHandle.__str__,   s]    
SSTZSS$.SS4>SS
 	2 114<111r   c                     t                      }|                                 r,| d| j         d| j         d| j         d| j         d| j         S | d| j         d| j         d| j         d| j         	S )Nz/models/r,   )r   r%   r   r   r   r    r!   )r   endpoints     r   r   zModelHandle.to_url2   s    *,, 	drr
rrTZrr$.rrSWSarrdhdprrrcc
ccTZcc$.ccSWSacccr   N)r   r   r   r   __annotations__r   intboolr%   r*   r/   r   r   r   r   r   r      s         JJJJJJNNNNNNc]=d = = = =
C 
M 
 
 
 

    d d d d d d dr   r   c                   r    e Zd ZU eed<   eed<   dZee         ed<   defdZ	dedd fdZ
defdZdefd	ZdS )
DatasetHandler   datasetNr!   r   c                 *    | j         d uo
| j         dk    S r#   r$   r   s    r   r%   zDatasetHandle.is_versioned@   r&   r   c                 :    t          | j        | j        |          S )Nr   r7   r!   )r6   r   r7   r)   s     r   r*   zDatasetHandle.with_versionC   s    4:t|WUUUUr   c                 h    | j          d| j         }|                                 r| d| j         S |S Nr,   
/versions/)r   r7   r%   r!   r-   s     r   r/   zDatasetHandle.__str__F   sI    
33T\33
 	; ::DL:::r   c                     t                      }| d| j         d| j         }|                                 r| d| j         S |S )Nz
/datasets/r,   r=   )r   r   r7   r%   r!   r   r1   base_urls      r   r   zDatasetHandle.to_urlL   s[    *,,EE$*EEt|EE 	988$,888r   r   r   r   r   r2   r!   r   r3   r4   r%   r*   r/   r   r   r   r   r6   r6   :   s         JJJLLL!GXc]!!!=d = = = =VC VO V V V V          r   r6   c                   2    e Zd ZU eed<   defdZdefdZdS )CompetitionHandlecompetitionr   c                     | j          }|S )NrD   r-   s     r   r/   zCompetitionHandle.__str__X   s    (*
r   c                 :    t                      }| d| j         }|S )Nz/competitions/)r   rD   r?   s      r   r   zCompetitionHandle.to_url\   s(    *,,@@d.>@@r   N)r   r   r   r   r2   r/   r   r   r   r   rC   rC   T   sX                   r   rC   c                   r    e Zd ZU eed<   eed<   dZee         ed<   defdZ	dedd fdZ
defdZdefd	ZdS )
NotebookHandler   notebookNr!   r   c                 *    | j         d uo
| j         dk    S r#   r$   r   s    r   r%   zNotebookHandle.is_versionedh   r&   r   c                 :    t          | j        | j        |          S )Nr   rJ   r!   )rI   r   rJ   r)   s     r   r*   zNotebookHandle.with_versionk   s    DJPWXXXXr   c                 h    | j          d| j         }|                                 r| d| j         S |S r<   )r   rJ   r%   r!   r-   s     r   r/   zNotebookHandle.__str__n   sI    
44T]44
 	; ::DL:::r   c                     t                      }| d| j         d| j         }|                                 r| d| j         S |S )Nz/code/r,   r=   )r   r   rJ   r%   r!   r?   s      r   r   zNotebookHandle.to_urlt   s[    *,,BBdjBB4=BB 	988$,888r   rA   r   r   r   rI   rI   b   s         JJJMMM!GXc]!!!=d = = = =YC Y,< Y Y Y Y          r   rI   c                       e Zd ZdS )UtilityScriptHandleN)r   r   r   r   r   r   rQ   rQ   |   s        Dr   rQ   c                       e Zd Zdedd fdZdS )PackageHandler!   r   c                 B    t          |           }||d<   t          di |S )Nr!   r   )r   rS   )r   r!   kwargss      r   r*   zPackageHandle.with_version   s+    #y&&v&&&r   N)r   r   r   r3   r*   r   r   r   rS   rS      s6        'C 'O ' ' ' ' ' 'r   rS   handler   c                    |                      d          }t          |          t          k    rb	 t          |d                   }n-# t          $ r }d|d          }t	          |          |d }~ww xY wt          |d         |d         |          S t          |          t          k    rt          |d         |d         d           S d|  }t	          |          )Nr,      Invalid version number: r      r:   zInvalid dataset handle: )splitlenNUM_VERSIONED_DATASET_PARTSr3   
ValueErrorr6   NUM_UNVERSIONED_DATASET_PARTSrV   partsr!   errmsgs        r   parse_dataset_handlerd      s    LLE
5zz000	+%(mmGG 	+ 	+ 	+7U1X77CS//s*	+ (!H
 
 
 	

 
U4	4	4 (!H
 
 
 	
 .V
-
-C
S//   A 
A/A**A/c                    |                      d          }t          |          t          k    rp	 t          |d                   }n-# t          $ r }d|d          }t	          |          |d }~ww xY wt          |d         |d         |d         |d         |          S t          |          t          k    r,t          |d         |d         |d         |d         d           S d	|  }t	          |          )
Nr,   r   rY   r   rZ   r   rX   r(   zInvalid model handle: )r[   r\   NUM_VERSIONED_MODEL_PARTSr3   r^   r   NUM_UNVERSIONED_MODEL_PARTSr`   s        r   parse_model_handleri      s   LLE
5zz...	+%(mmGG 	+ 	+ 	+7U1X77CS//s*	+ ((AhAh
 
 
 	
 
U2	2	2 ((AhAh
 
 
 	
 ,6
+
+C
S//re   c                 R    d| v rd|  }t          |          t          |           S )Nr,   zInvalid competition handle: rF   )r^   rC   )rV   rc   s     r   parse_competition_handlerk      s5    
f}}5V55oo0000r   c                    |                      d          }t          |          t          k    rb	 t          |d                   }n-# t          $ r }d|d          }t	          |          |d }~ww xY wt          |d         |d         |          S t          |          t          k    rt          |d         |d         d           S d|  }t	          |          )Nr,   rX   rY   r   rZ   rM   zInvalid notebook handle: )r[   r\   NUM_VERSIONED_NOTEBOOK_PARTSr3   r^   rI   NUM_UNVERSIONED_NOTEBOOK_PARTSr`   s        r   parse_notebook_handlero      s    LLE
5zz111	+%(mmGG 	+ 	+ 	+7U1X77CS//s*	+ (1X
 
 
 	
 
U5	5	5 (1X
 
 
 	
 /f
.
.C
S//re   c                 R    t          |           }t          di t          |          S Nr   )ro   rQ   r   rV   notebook_handles     r   parse_utility_script_handlert      s+    +F33O99!8!8999r   c                 R    t          |           }t          di t          |          S rq   )ro   rS   r   rr   s     r   parse_package_handlerv      s+    +F33O336/22333r   )__doc__r   dataclassesr   r   typingr   kagglehub.configr   r]   r_   rg   rh   rm   rn   r   r   r6   rC   rI   rQ   rS   r   rd   ri   rk   ro   rt   rv   r   r   r   <module>r{      s   * * 



 ) ) ) ) ) ) ) )       4 4 4 4 4 4  !     !"    $        $d d d d d. d d d: $    N   2 $
 
 
 
 
 
 
 
 $    ^   2	 	 	 	 	. 	 	 	' ' ' ' 'N ' ' '     :s {    D1S 1-> 1 1 1 1# .    <: :0C : : : :
4 4 4 4 4 4 4 4r   