
    LMh,9                        d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d
Zd
ZdZdZ  e j!        e"          Z# G d dee                   Z$ G d dee                   Z% G d dee                   Z& G d dee                   Z'de(de(ddfdZ)dedede*fdZ+dedede,e-e(         e.f         fdZ/dede(fdZ0dedee(         de(fdZ1dede(fd Z2dede(fd!Z3dede(fd"Z4dedee(         de(fd#Z5dedee(         de(fd$Z6dede(fd%Z7ded&e(de(fd'Z8dS )(    N)Optional)
thread_map)delete_from_cacheget_cached_archive_pathget_cached_pathload_from_cachemark_as_complete)KaggleApiV1Client)UnauthenticatedError)CompetitionHandleDatasetHandleModelHandleNotebookHandleResourceHandle)PackageScope)ResolvercurrentVersionNumberversionNumber   c                   p    e Zd ZdefdZ	 d
dddedee         dee         deeee	         f         fd	Z
dS )CompetitionHttpResolverreturnc                     dS NT self___s      W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/http_resolver.pyis_supportedz$CompetitionHttpResolver.is_supported!       t    NFforce_downloadhpathr%   c                V   t                      }t          ||          }|r|rt          ||           d }|                                s|r|d fS t	                      t          ||          }|rt          ||          }t          j        t          j	        
                    |          d           	 |                    ||||d          }n!# t          j        j        $ r
 |r|d fcY S  w xY w|s|r|d fS nt          |          }t!          |          }	t          j        t          j	        
                    |	          d           	 |                    ||	||          }nT# t          j        j        $ r= |r9t          j	                            |	          rt          j        |	           |d fcY S  w xY w|s9|r7t          j	                            |	          rt          j        |	           |d fS t'          |	|           t          j        |	           t)          ||           |d fS NTexist_okextract_auto_compressed_file)r
   r   r   has_credentialsr   r   )_build_competition_download_file_url_pathosmakedirsr'   dirnamedownload_filerequests
exceptionsConnectionError(_build_competition_download_all_url_pathr   existsremove_extract_archiver	   )
r   r&   r'   r%   
api_clientcached_pathout_pathurl_pathdownload_neededarchive_paths
             r    _resolvez CompetitionHttpResolver._resolve%   s    '((
%a.. 	> 	a&&&K))++ 	) )"D((&((("1d++ %	$@DIIHK11DAAAA",":":h;UY #; # # &6    -&,,,,
 # ){ )"D(( @BBH2155LK55EEEE",":":8\STVa"b"b&6    -w~~l33 0	,///&,,,, # ){ )7>>,// ,Il+++"D((\8444Il###D!!!~s%   3C C,*C,E$ $AF53F5N)__name__
__module____qualname__boolr!   r   r   strtupleintrA   r   r#   r    r   r       s            
 ;?8di8 8 8"8*23-8S[\`Sa8	sHSM!	"8 8 8 8 8 8r#   r   c                   p    e Zd ZdefdZ	 d
dddedee         dee         deeee	         f         fd	Z
dS )DatasetHttpResolverr   c                     dS r   r   r   s      r    r!   z DatasetHttpResolver.is_supporteda   r"   r#   NFr$   r&   r'   r%   c                   t                      }|                                s#|                    t          ||                    }t	          ||          }|r|s	||j        fS |r|rt          ||           t          ||          }t          ||          }|rMt          j
        t          j                            |          d           |                    |||d           n}t          |          }t          j
        t          j                            |          d           |                    |||           t          ||           t          j        |           t#          ||           ||j        fS r)   )r
   is_versionedwith_version_get_current_versionr   versionr    _build_dataset_download_url_pathr   r0   r1   r'   r2   r3   r   r:   r9   r	   )	r   r&   r'   r%   r;   dataset_pathr>   r=   r@   s	            r    rA   zDatasetHttpResolver._resolvee   s    '((
~~ 	D3JBBCCA&q$// 	' 	'** 	'n 	'a&&&3At<<"1d++  	$K11DAAAA$$XxY]$^^^^ 3155LK55EEEE $$X|Q???\8444 Il###D!!!""r#   rB   )rC   rD   rE   rF   r!   r   r   rG   rH   rI   rA   r   r#   r    rK   rK   `   s            
 7;%#`e%# %# %#%#&.sm%#OWX\~%#	sHSM!	"%# %# %# %# %# %#r#   rK   c                   p    e Zd ZdefdZ	 d
dddedee         dee         deeee	         f         fd	Z
dS )ModelHttpResolverr   c                     dS r   r   r   s      r    r!   zModelHttpResolver.is_supported   r"   r#   NFr$   r&   r'   r%   c                  	
 t                      	                                s#                    t          	                    t	          |          }|r|s	|j        fS |r|rt          |           t          |          t          |          
|rMt          j
        t          j                            
          d           	                    
d           nt          	          \  }}|r~t                    }t          j
        t          j                            |          d           	                    |           t!          |
           t          j        |           n6dt$          dd f	
fd}t'          ||dt)          |           dd	
           t+          |           
j        fS )NTr*   r,   filer   c                     dz   | z   }t          j        t           j                            |          d                               dz   | z   |           d S )N/Tr*   )r0   r1   r'   r2   r3   )rX   file_out_pathr;   r&   r=   r>   s     r    _inner_download_filez8ModelHttpResolver._resolve.<locals>._inner_download_file   s\    $,sNT$9MK > >NNNN,,X^d-BMSTUUUUUr#   zDownloading z files   )descmax_workers)r
   rN   rO   rP   r   rQ   r   _build_model_download_url_pathr   r0   r1   r'   r2   r3   _list_filesr   r:   r9   rG   r   lenr	   )r   r&   r'   r%   
model_pathfileshas_morer@   r\   r;   r=   r>   s    `       @@@r    rA   zModelHttpResolver._resolve   s     '((
~~ 	D3JBBCCA$Q--
 	'n 	'qy(( 	'N 	'a&&&1!T::"1d++  !	K11DAAAA$$XxY]$^^^^
 !,J : :UH 6q99BGOOL99DIIII ((<CCC x888 	,''''Vs Vt V V V V V V V V V
 (:E

::: !	    	D!!!""r#   rB   )rC   rD   rE   rF   r!   r   r   rG   rH   rI   rA   r   r#   r    rU   rU      s            
 596#^c6# 6# 6#6#$,SM6#MUVZ^6#	sHSM!	"6# 6# 6# 6# 6# 6#r#   rU   c                       e Zd ZdefdZ	 ddddedee         dee         deeee	         f         fd	Z
d
ededeee         ef         fdZdS )NotebookOutputHttpResolverr   c                     dS r   r   r   s      r    r!   z'NotebookOutputHttpResolver.is_supported   r"   r#   NFr$   r&   r'   r%   c                   t                      }|                                s#|                    t          ||                    }t	          ||          }|r|s	||j        fS |r|rt          ||           t          ||          }t          ||          }|rMt          j
        t          j                            |          d           |                    |||d           n}t          |          }t          j
        t          j                            |          d           |                    |||           t          ||           t          j        |           t#          ||           ||j        fS r)   )r
   rN   rO   rP   r   rQ   r   !_build_notebook_download_url_pathr   r0   r1   r'   r2   r3   r   r:   r9   r	   )	r   r&   r'   r%   r;   notebook_pathr>   r=   r@   s	            r    rA   z#NotebookOutputHttpResolver._resolve   s}    '((
~~ 	D3JBBCCA'400 	' 	' !)++ 	'~ 	'a&&&4Q=="1d++ 	$K11DAAAA$$XxY]$^^^^ 3155LK55EEEE $$X|Q???\8444 Il###D!!!""r#   r;   c                     d|j          d|j         dt           }|                    ||          }d|vrd}t	          |          d |d         D             }d|v o|d         dk    }||fS )	Nzkernels/output/list/rZ   z?page_size=rd   zTInvalid ApiListKernelSessionOutput API response. Expected to include a 'files' fieldc                 D    g | ]}|d                               d          S )fileNamerZ   )lstrip).0fs     r    
<listcomp>z:NotebookOutputHttpResolver._list_files.<locals>.<listcomp>   s*    KKKq:%%c**KKKr#   nextPageToken )ownernotebookMAX_NUM_FILES_DIRECT_DOWNLOADget
ValueError)r   r;   r&   queryjson_responsemsgrd   re   s           r    ra   z&NotebookOutputHttpResolver._list_files   s    gqwggggHegg"ua00-''hCS//!KKM'4JKKK"m3\o8VZ\8\x  r#   rB   )rC   rD   rE   rF   r!   r   r   rG   rH   rI   rA   r
   listra   r   r#   r    rg   rg      s            
 8<$#af$# $# $#$#'/}$#PXY]P^$#	sHSM!	"$# $# $# $#L
!&7 
!N 
!uUYZ]U^`dUdOe 
! 
! 
! 
! 
! 
!r#   rg   r@   r=   r   c                    t          j        |d           t                              d           t	          j        |           rDt	          j        |           5 }|                    |           d d d            d S # 1 swxY w Y   d S t          j	        |           rEt          j
        | d          5 }|                    |           d d d            d S # 1 swxY w Y   d S d}t          |          )NTr*   zExtracting files...rzUnsupported archive type.)r0   r1   loggerinfotarfile
is_tarfileopen
extractallzipfile
is_zipfileZipFilery   )r@   r=   rq   r|   s       r    r:   r:     sk   K4((((
KK%&&&,'' \,'' 	#1LL"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#		L	)	) _\3// 	#1LL"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# *oos$   A<<B B 2CCCr;   r&   c                    t          j        |          }||S t          |t                    rS|                     t          |          |          }t          |vrdt           d}t          |          |t                   S t          |t                    rS|                     t          |          |          }t          |vrdt           d}t          |          |t                   S t          |t                    r_|                     t          |          |          }t          |d         vrdt           d}t          |          |d         t                   S d| }t          |          )Nz=Invalid GetModelInstance API response. Expected to include a z fieldz7Invalid GetDataset API response. Expected to include a metadataz6Invalid GetKernel API response. Expected to include a zInvalid ResourceHandle type )r   get_version
isinstancer   rx   _build_get_instance_url_pathMODEL_INSTANCE_VERSION_FIELDry   r   _build_get_dataset_url_pathDATASET_CURRENT_VERSION_FIELDr   _build_get_notebook_url_pathNOTEBOOK_CURRENT_VERSION_FIELD)r;   r&   version_from_package_scoper{   r|   s        r    rP   rP     sj   !-!9!!<!<!-))![!! "'CA'F'FJJ'}<<vRnvvvCS//!9::	A}	%	% "'B1'E'EqII(==qLiqqqCS//!:;;	A~	&	& 
"'CA'F'FJJ)z1JJJqKiqqqCS//!Z()GHH 1Q00oor#   c                     |                      t          |          |          }d|vrd}t          |          g }|d         D ]}|                    |d                    d|v o|d         dk    }||fS )Nrd   zWInvalid ListModelInstanceVersionFiles API response. Expected to include a 'files' fieldnamers   rt   )rx   1_build_list_model_instance_version_files_url_pathry   append)r;   r&   r{   r|   rd   rq   re   s          r    ra   ra   6  s    NN#TUV#W#WYZ[[Mm##gooE7#    QvY-/XM/4RVX4XH8r#   c           	      H    d| j          d| j         d| j         d| j         d	S )Nmodels/rZ   z/get)ru   model	framework	variationr&   s    r    r   r   E  s3    HQWHHqwHHHHq{HHHHr#   r'   c                     |                                  sd}t          |          d| j         d| j         d| j         d| j         d| j         d}|r| d| S |S )NNo version providedr   rZ   z	/download)rN   ry   ru   r   r   r   rQ   r&   r'   r|   base_urls       r    r`   r`   I  s    >> #oo]]]17]]Q[]]1;]]]]]H ##T###r#   c                     |                                  sd}t          |          d| j         d| j         d| j         d| j         d| j         dt           S )Nr   r   rZ   z/files?page_size=)rN   ry   ru   r   r   r   rQ   rw   )r&   r|   s     r    r   r   U  s    >> #oo,QW , ,qw , , , ,q{ , ,QY , ,), , ,r#   c                 &    d| j          d| j         S )Nzdatasets/view/rZ   )ru   datasetr   s    r    r   r   ^  s    1AG11ai111r#   c                 &    d| j          d| j         S )Nzkernels/pull?user_name=z&kernel_slug=)ru   rv   r   s    r    r   r   b  s    GQWGG1:GGGr#   c                     |                                  sd}t          |          d| j         d| j         d| j         }|r| d| S |S )Nr   zdatasets/download/rZ   z?dataset_version_number=z&file_name=)rN   ry   ru   r   rQ   r   s       r    rR   rR   f  sk    >> #oo\AG\\ai\\QRQZ\\H --t---r#   c                     |                                  sd}t          |          d| j         d| j         d| j         }|r| d| S |S )Nr   zkernels/output/download/rZ   z?version_number=z&file_path=)rN   ry   ru   rv   rQ   r   s       r    rj   rj   r  sk    >> #oo[!'[[AJ[[PQPY[[H --t---r#   c                     d| j          S )Nzcompetitions/data/download-all/competitionr   s    r    r7   r7   ~  s    <Q]<<<r#   rX   c                     d| j          d| S )Nzcompetitions/data/download/rZ   r   )r&   rX   s     r    r/   r/     s    ??????r#   )9loggingr0   r   r   typingr   r4   tqdm.contrib.concurrentr   kagglehub.cacher   r   r   r   r	   kagglehub.clientsr
   kagglehub.exceptionsr   kagglehub.handler   r   r   r   r   kagglehub.packagesr   kagglehub.resolverr   r   r   r   rw   	getLoggerrC   r   r   rK   rU   rg   rG   r:   rI   rP   rH   r}   rF   ra   r   r`   r   r   r   rR   rj   r7   r/   r   r#   r    <module>r      s    				          . . . . . .              0 / / / / / 5 5 5 5 5 5 j j j j j j j j j j j j j j + + + + + + ' ' ' ' ' ' 6 !7 .  " 		8	$	$= = = = =h'89 = = =@*# *# *# *# *#(=1 *# *# *#Z;# ;# ;# ;# ;#- ;# ;# ;#|5! 5! 5! 5! 5!.!9 5! 5! 5!p3 # $      %6  >  c        F- + %S	SWBX    IK IC I I I I	k 	# 	3 	 	 	 	, , , , , ,2= 2S 2 2 2 2HN Hs H H H H	 	Xc] 	s 	 	 	 		 	x} 	QT 	 	 	 	=0A =c = = = =@1B @# @RU @ @ @ @ @ @r#   