
    LMhAE              
          d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlZd dlZd dlmZ d dlmZ d dlmZ d dlZd d	lmZmZ d d
lmZmZ d dlmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3m4Z4m5Z5 dZ6dZ7dZ8dZ9dZ:dZ;ej<        dej=        dej>        diZ?de@fdZA ejB        eC          ZD G d d          ZEdejF        deGfdZHdejF        de@d eId!eeI         ddf
d"ZJd.dejF        d#e1d$ee@         deGfd%ZKd&ZLd'ZM G d( d)          ZN G d* d+          ZO G d, d-ejP        jQ                  ZRdS )/    N)datetimetimezone)Path)Optional)urljoinurlparse)parse)HTTPBasicAuth)tqdm)delete_from_cacheget_cached_archive_path)get_kaggle_api_endpointget_kaggle_credentials)KaggleDatasetAdapter)"KAGGLE_DATA_PROXY_URL_ENV_VAR_NAME!KAGGLE_TOKEN_KEY_DIR_ENV_VAR_NAMEis_in_colab_notebookis_in_kaggle_notebookread_kaggle_build_datesearch_lib_in_call_stack)	BackendErrorColabEnvironmentErrorCredentialErrorDataCorruptionErrorKaggleEnvironmentErrorNotFoundErrorcolab_raise_for_statuskaggle_api_raise_for_statusprocess_post_response)CompetitionHandleResourceHandle)get_md5_checksum_from_responseto_b64_digestupdate_hash_from_filei         zAccept-Rangesi  z}The X-Goog-Hash header indicated a MD5 checksum of:

  {}

but the actual MD5 checksum of the downloaded contents was:

  {}
hugging_face_data_loaderpandas_data_loaderpolars_data_loaderreturnc                  &   dt           j         g} dD ]*}t          |          }||                     |            n+t	          j                    D ]}|j        dk    rt	          j        |j                  }|r*t          |d          r|j
                            d          sTd|j        j        v r|j        j        d         nd}|r+|t          v r"|                     t          |                     nt                      r't                      }|                     d|            nTt!                      rFt#          j        d	          }t#          j        d
          rdnd}|                     d| |            d                    |           S )zxIdentifies the user agent based on available system information.

    Returns:
        str: user agent information.
    z
kagglehub/)	keras_hub	keras_nlpkeras_cvkeras	torchtuneNdataset_load__name__zkagglehub.datasetsadapterzkkb/COLAB_RELEASE_TAGTBE_RUNTIME_ADDRz-managedz
-unmanagedzcolab/ )	kagglehub__version__r   appendinspectstackfunction	getmoduleframehasattrr2   
startswithf_localsADAPTER_TO_USER_AGENT_MAPr   r   r   osgetenvjoin)	user_agentsliblib_info
frame_infomoduler3   
build_date	colab_tagruntime_suffixs	            Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/clients.pyget_user_agentrO   F   s    8	 5778KK  +C00x(((E  
 moo  
.00":#344 	WVZ88 	@Z@Z[o@p@p 	 ;DzGWG`:`:`*"+I66fj 	w";;;8ABBBE A+--
.*..////			 AI122	')y1C'D'DV,?I?~??@@@88K       c                       e Zd ZdZddZdej        ddfdZddede	e
         defd	Zded
edefdZ	 	 ddddedede	e
         de	e         dedefdZdefdZde	ej        j                 fdZdedefdZdS )KaggleApiV1Clientzapi/v1r*   Nc                 R    t                      | _        t                      | _        d S N)r   credentialsr   endpointselfs    rN   __init__zKaggleApiV1Client.__init__t   s!    133/11rP   responsec                     |j                             d          }|rQt          t          j                  }t          |          }||k    r%t
                              d| d| d           d S d S d S )NzX-Kaggle-HubVersionzMWarning: Looks like you're using an outdated `kagglehub` version (installed: z4), please consider upgrading to the latest version (z).)headersgetr	   r7   r8   loggerinfo)rX   rZ   latest_version_strcurrent_versionlatest_versions        rN   _check_for_version_updatez+KaggleApiV1Client._check_for_version_updatex   s    %-112GHH 	#I$9::O"#566N//[ds [ [HV[ [ [    		 	 0/rP   pathresource_handlec                 Z   |                      |          }t          j        |dt                      i|                                 t
          t          f          5 }t          ||           |                     |           |	                                cd d d            S # 1 swxY w Y   d S )N
User-Agent)r\   authtimeout)

_build_urlrequestsr]   rO   	_get_authDEFAULT_CONNECT_TIMEOUTDEFAULT_READ_TIMEOUTr   rc   json)rX   rd   re   urlrZ   s        rN   r]   zKaggleApiV1Client.get   s    ood##\!>#3#34!!,.BC	
 
 
 	#
 '/BBB**8444==??	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   9B  B$'B$datac                    |                      |          }t          j        |dt                      i||                                 t
          t          f          5 }|                                 |                                }t          |           | 
                    |           |cd d d            S # 1 swxY w Y   d S )Nrg   )r\   ro   rh   ri   )rj   rk   postrO   rl   rm   rn   raise_for_statusro   r   rc   )rX   rd   rq   rp   rZ   response_dicts         rN   rs   zKaggleApiV1Client.post   s    ood##]!>#3#34!!,.BC
 
 
 	! %%'''$MMOOM!-000**8444 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AB66B:=B:F)extract_auto_compressed_fileout_filecached_pathrv   c                    |                      |          }t          j        |dt                      id|                                 t
          t          f          5 }t          ||           d|j        v rt          |j        d                   nd}d}	t          |t                    rt          |||          s	 ddd           dS t          |          }
|
rt          j                    nd}t!          |          r:|r7t"          j                            |          rt"          j                            |          }	t+          ||           |	|k    r,t,                              d|	 d	           	 ddd           dS t,                              d
|	 d||	z
   d           t          j        |j        d|                                 t
          t          fdd|	 di          5 }t,                              d
| d|	 d| d           t3          |||	||           ddd           n# 1 swxY w Y   n1t,                              d| d           t3          |||	||           |rQt5          |          }||
k    r<t#          j        |           t9          t:                              |
|                    t?          |          j                             d          d         }t?          |j                  j                             d          d         }|r| d|k    rtC          j"        |          rt,                              d| d           | d}t#          j#        ||           tC          j$        |d          5 }|%                    |t"          j        &                    |                     ddd           n# 1 swxY w Y   t#          j        |           	 ddd           dS # 1 swxY w Y   dS )a  
        Issues a call to kaggle api and downloads files. For competition downloads,
        call may return early if local cache is newer than the last time the file was modified.

        Returns:
        bool:  If downloading remote was necessary
        rg   T)r\   streamrh   ri   zContent-LengthNr   FzDownload already complete (z bytes).zResuming download from z bytes (z bytes left)...Rangezbytes=-)rz   rh   ri   r\   z (/z) bytes left.zDownloading from z...z.zipzExtracting zip of r)'rj   rk   r]   rO   rl   rm   rn   r   r\   int
isinstancer    _download_neededr"   hashlibmd5_is_resumablerC   rd   isfilegetsizer$   r^   r_   rp   _download_filer#   remover   _CHECKSUM_MISMATCH_MSG_TEMPLATEformatr   splitzipfile
is_zipfilerenameZipFileextractdirname)rX   rd   rw   re   rx   rv   rp   rZ   
total_size	size_readexpected_md5_hashhash_objectresumed_responseactual_md5_hashexpected_downloded_file_nameactual_downloaded_file_namerenamed_auto_compressed_pathfs                     rN   download_filezKaggleApiV1Client.download_file   sd     ood##\!>#3#34!!,.BC
 
 
 F	 '/BBBDTX`XhDhDhX-.>?@@@nrJI/+<== FV/;G G  F	 F	 F	 F	 F	 F	 F	 F	" !?x H H+<F'+---$KX&& W: W"'..:R:R WGOOH55	%k8<<<
**KK Qi Q Q QRRR5F	 F	 F	 F	 F	 F	 F	 F	8 pippV_I_pppqqq \L))46JK$&;y&;&;&;<   c &KK f# f f f fZ f f fggg"#3Xy*Vabbbc c c c c c c c c c c c c c c 8888999x9j+VVV "/"<"<"&777Ih'''-7>>?PRabb   ,4H+=+=+B+H+H+M+Mb+Q(*28<*@*@*E*K*KC*P*PQS*T',83999=XXX&x00 Y R1MRRRSSS2:/@/@/@,	($@AAA_%A3GG W1II:BGOOH<U<UVVVW W W W W W W W W W W W W W W 	6777MF	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	 F	sj   AO3B-O3A&O3'8H+O3+H/	/O32H/	3EO34O:O3O
	
O3O
	O33O7:O7c                 .    |                                  d uS rT   )rl   rW   s    rN   has_credentialsz!KaggleApiV1Client.has_credentials   s    ~~t++rP   c                     | j         r$t          | j         j        | j         j                  S t	                      rt                      S d S rT   rU   r
   usernamekeyr   KaggleTokenAuthrW   s    rN   rl   zKaggleApiV1Client._get_auth   H     	% !1!:D<L<PQQQ"$$ 	%"$$$trP   c                 J    t          | j        t          j         d|           S )Nr}   )r   rV   rR   	BASE_PATH)rX   rd   s     rN   rj   zKaggleApiV1Client._build_url  s&    t}):)D&M&Mt&M&MNNNrP   r*   NrT   )NN)r2   
__module____qualname__r   rY   rk   Responserc   strr   r!   dictr]   rs   boolr   r   rh   AuthBaserl   rj    rP   rN   rR   rR   q   s       I2 2 2 2	(2C 	 	 	 	 	
# 
# 
#h~.F 
#RV 
# 
# 
# 
#! !D !T ! ! ! !& 59%)W .3W W WW W ".1	W
 c]W '+W 
W W W Wr, , , , ,8HM$:;    Os Os O O O O O OrP   rR   rZ   c                 J    t           | j        v o| j        t                    dk    S )Nbytes)ACCEPT_RANGE_HTTP_HEADERr\   )rZ   s    rN   r   r     s$    #x'77qH<LMe<fjq<qqrP   rw   r   r   c                    |dk    rdnd}|t          ||ddd          5 }t          ||          5 }|                     t                    D ]h}|                    |           |r|                    |           t          ||t          z             }|                    t          |                     i	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S t          ||          5 }|                     t                    D ].}|                    |           |r|                    |           /	 d d d            d S # 1 swxY w Y   d S )Nr   abwbBTi   )totalinitialunit
unit_scaleunit_divisor)r   openiter_content
CHUNK_SIZEwriteupdateminlen)	rZ   rw   r   r   r   	open_modeprogress_barr   chunks	            rN   r   r   	  s8    "A4I
ICD_cddd 	4hth	** 4a%22:>> 4 4EGGENNN" 2#**5111 #J	J0F G GI ''E

333344 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 (I&& 	.!!..z:: . . .&&u---.	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.sH   CBC7CC	C
C	CC"C8A
EEEhrx   c                    |sdS | j                             d          }|Tt          ||           t          |          }t	          j        t          j                            |          d           dS t          j	        | j         d         d          
                    t          j                  }t          j                            |          }|rt          j        t          j                            |          t          j                  }||k    }|rTt          ||           t          |          }t	          j        t          j                            |          d           dS dS t          ||           t          |          }t	          j        t          j                            |          d           dS )	z|
    Determine if a download is needed based on timestamp and cached path.

    Returns:
        bool: download needed.
    TzLast-ModifiedN)exist_okz%a, %d %b %Y %H:%M:%S %Z)tzinfo)tzF)r\   r]   r   r   rC   makedirsrd   r   r   strptimereplacer   utcexistsfromtimestampgetmtime)	rZ   r   rx   last_modifiedarchive_pathremote_datefile_exists
local_datedownload_neededs	            rN   r   r   "  s     t$((99M![))).q11
BGOOL11DAAAAt'(8(IKeffnn< o 
 
 '..--K +BG,<,<[,I,Ihl[[[
%3 	a---2155LK55EEEE4ua%%%*1--LK--====4rP   KAGGLE_USER_SECRETS_TOKENKAGGLE_DATA_PROXY_TOKENc            	       J    e Zd ZdZd	dZeeffdedede	e
e
f         defdZdS )
KaggleJwtClientz/kaggle-jwt-handler/r*   Nc                 p   t          j        t                    | _        | j        dt           d}t	          |          t          j        t
                    }|dt
           }t          |          t          j        t                    }|dt           }t          |          dd| |d| _        d S )NThe  should be set.zOA JWT Token is required to call Kaggle, but none found in environment variable zVA Data Proxy Token is required to call Kaggle, but none found in environment variable application/jsonBearer )Content-typezX-Kaggle-AuthorizationzX-KAGGLE-PROXY-DATA)	rC   rD   r   rV   r   KAGGLE_JWT_TOKEN_ENV_VAR_NAMEr   $KAGGLE_DATA_PROXY_TOKEN_ENV_VAR_NAMEr\   )rX   msg	jwt_tokendata_proxy_tokens       rN   rY   zKaggleJwtClient.__init__X  s    	"DEE= L;LLLC(---I;<<	Z:WZ Z  "#&&&9%IJJ#a:^a a  "#&&& /&;	&;&;#3
 
rP   request_namerq   ri   c           	         | j          t          j         | }t          j        || j        t          t          j        |          d          |          5 }|	                                 |                                }d|vrd}t          |          |d         sd|j        }t          |          d|vrd}t          |          |d         cd d d            S # 1 swxY w Y   d S )Nzutf-8)r\   rq   ri   wasSuccessfulz+'wasSuccessful' field missing from responsezPOST failed with: resultz$'result' field missing from response)rV   r   r   rk   rs   r\   r   ro   dumpsrt   r   text)rX   r   rq   ri   rp   rZ   json_responser   s           rN   rs   zKaggleJwtClient.posts  sH    I 9I<II]Ltz$''11	
 
 
 	+
 %%'''$MMOOMm33C"3''' 1 (<8=<<"3'''},,<"3''' *#	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   A;CC!$C!r   )r2   r   r   r   rY   rm   rn   r   r   tuplefloatrs   r   rP   rN   r   r   U  s        &I
 
 
 
> )@AU'V	+ ++ + ue|$	+
 
+ + + + + +rP   r   c            
           e Zd ZdZdZdZdZdZdZdZ	ddZ
dd	ed
edee         dee         fdZdeej        j                 fdZdS )ColabClientz/kagglehub/models/is_supportedz /kagglehub/datasets/is_supportedz/kagglehub/models/mountz/kagglehub/datasets/mountr5   r*   Nc                     t          j        | j                  | _        | j        d| j         d}t	          |          t                      | _        ddi| _        d S )Nr   r   r   r   )rC   rD   TBE_RUNTIME_ADDR_ENV_VAR_NAMErV   r   r   rU   r\   )rX   r   s     rN   rY   zColabClient.__init__  s^    	$"DEE= L;LLLC',,,133&(:;rP   rq   handle_pathre   c                    d| j          | }t          j        |t          j        |          |                                 | j        t          t          f          5 }|j	        t          k    rt                      t          ||           |j        r |                                cd d d            S 	 d d d            n# 1 swxY w Y   d S )Nzhttp://)rq   rh   r\   ri   )rV   rk   rs   ro   r   rl   r\   rm   rn   status_codeHTTP_STATUS_404r   r   r   )rX   rq   r   re   rp   rZ   s         rN   rs   zColabClient.post  s   44{44]D!!!!L,.BC
 
 
 	' #66#oo%"8_===} '}}	' 	' 	' 	' 	' 	' 	' 	''	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ts   A	B>>CCc                     | j         r$t          | j         j        | j         j                  S t	                      rt                      S d S rT   r   rW   s    rN   rl   zColabClient._get_auth  r   rP   r   rT   )r2   r   r   IS_SUPPORTED_PATHIS_MODEL_SUPPORTED_PATHIS_DATASET_SUPPORTED_PATH
MOUNT_PATHMODEL_MOUNT_PATHDATASET_MOUNT_PATHr   rY   r   r   r   r!   rs   rk   rh   r   rl   r   rP   rN   r   r     s        8> B*J04 %7!< < < <  C (>BZ fnosft     8HM$:;      rP   r   c                   $    e Zd Zdej        fdZdS )r   r   c                 :   t           j                            t                    }|rZt	          |          }|                                r5|                                                    dd          }d| |j        d<   |S t          
                    d           |S )N
 r   AuthorizationzlExpected Token in notebook environment. Skipping token assignment.Notebook auth might not function properly.)rC   environr]   r   r   r   	read_textr   r\   r^   warning)rX   r   	token_dir
token_pathtokens        rN   __call__zKaggleTokenAuth.__call__  s    JNN#DEE	 	iJ  "" ?",,..66tR@@->u->->	/*H9	
 	
 	
 rP   N)r2   r   r   rk   PreparedRequestr  r   rP   rN   r   r     s2        (2      rP   r   rT   )Sr   r:   ro   loggingrC   r   r   r   pathlibr   typingr   urllib.parser   r   rk   requests.authpackaging.versionr	   r
   r   r7   kagglehub.cacher   r   kagglehub.configr   r   kagglehub.datasets_enumsr   kagglehub.envr   r   r   r   r   r   kagglehub.exceptionsr   r   r   r   r   r   r   r   r   kagglehub.handler    r!   kagglehub.integrityr"   r#   r$   r   rm   rn   r   r   r   HUGGING_FACEPANDASPOLARSrB   r   rO   	getLoggerr2   r^   rR   r   r   r   r   r   r   r   r   r   r   rh   r   r   r   rP   rN   <module>r     s        				  ' ' ' ' ' ' ' '             * * * * * * * *      # # # # # # ' ' ' ' ' '           F F F F F F F F L L L L L L L L 9 9 9 9 9 9               
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ? > > > > > > > d d d d d d d d d d
   * #  %'A!5!5 $! $! $! $! $!N 
	8	$	$QO QO QO QO QO QO QO QOhrH- r$ r r r r... . 	. 
. . . .2+ +x0 +^ +RZ[^R_ +ko + + + +^ !< '@ $6+ 6+ 6+ 6+ 6+ 6+ 6+ 6+r) ) ) ) ) ) ) )X    hm,     rP   