
    LMh                        d dl Z d dlmZ d dlmZmZ d dlZd dlmZm	Z	 d dl
mZ  e j        e          Z G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d dej                  Z G d dej                  Z G d de          Z G d de          Zd dej        dee	         ddfdZd dej        dee	         ddfdZdeeef         ddfdZ dS )!    N)
HTTPStatus)AnyOptional)CompetitionHandleResourceHandle)EXTRA_CONSOLE_BLOCKc                       e Zd ZdS )CredentialErrorN__name__
__module____qualname__     T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/exceptions.pyr
   r
              Dr   r
   c                       e Zd ZdS )KaggleEnvironmentErrorNr   r   r   r   r   r      r   r   r   c                       e Zd ZdS )ColabEnvironmentErrorNr   r   r   r   r   r      r   r   r   c                   :     e Zd Zddedee         ddf fdZ xZS )BackendErrorNmessage
error_codereturnc                 X    || _         t                                          |           d S N)r   super__init__)selfr   r   	__class__s      r   r   zBackendError.__init__   s(    $!!!!!r   r   )r   r   r   strr   intr   __classcell__r!   s   @r   r   r      s[        " " "# "$ " " " " " " " " " "r   r   c                       e Zd ZdS )NotFoundErrorNr   r   r   r   r'   r'      r   r   r'   c                       e Zd ZdS )DataCorruptionErrorNr   r   r   r   r)   r)   #   r   r   r)   c                   D     e Zd Zddedeej                 ddf fdZ xZS )KaggleApiHTTPErrorNr   responser   c                 N    t                                          ||           d S Nr,   r   r   r    r   r,   r!   s      r   r   zKaggleApiHTTPError.__init__(   &    844444r   r   	r   r   r   r"   r   requestsResponser   r$   r%   s   @r   r+   r+   '   `        5 5 5x8I/J 5VZ 5 5 5 5 5 5 5 5 5 5r   r+   c                   D     e Zd Zddedeej                 ddf fdZ xZS )ColabHTTPErrorNr   r,   r   c                 N    t                                          ||           d S r.   r0   r1   s      r   r   zColabHTTPError.__init__-   r2   r   r   r3   r%   s   @r   r8   r8   ,   r6   r   r8   c                   .     e Zd ZdZddeddf fdZ xZS )UnauthenticatedErrorz:Exception raised for errors in the authentication process.User is not authenticatedr   r   Nc                 J    t                                          |           d S r   r0   )r    r   r!   s     r   r   zUnauthenticatedError.__init__4   s!    !!!!!r   )r<   )r   r   r   __doc__r"   r   r$   r%   s   @r   r;   r;   1   sV        DD" " "d " " " " " " " " " "r   r;   c                       e Zd ZdS )UserCancelledErrorNr   r   r   r   r@   r@   8   r   r   r@   r,   resource_handler   c                    	 |                                   dS # t          j        $ r8}t          |          }d}	 |                                                     dd          }|rd| d}nG# t          j        j        $ r0}t          	                    d| i t                     Y d}~nd}~ww xY w|r|                                n| j        }| j        t          j        t          j        hv r6t#          |t$                    r| j         d| d	| d
}n| j         d| d| d}| j        t          j        k    r| j         d| d| d}t)          ||           |d}~ww xY w)
    Wrapper around `response.raise_for_status()` that provides nicer error messages
    See: https://requests.readthedocs.io/en/latest/api/#requests.Response.raise_for_status
     r   z*The server reported the following issues: 
z Server payload is not json. See )extraNE Client Error.

You don't have permission to access resource at URL: zu
Please make sure you are authenticated and have accepted the competition rules which can be found at this location: z/rulesz. zvPlease make sure you are authenticated if you are trying to access a private resource or a resource requiring consent.z+ Client Error.

Resource not found at URL: z@Please make sure you specified the correct resource identifiers.r/   )raise_for_statusr4   	HTTPErrorr"   jsonget
exceptionsJSONDecodeErrorloggerinfor   to_urlurlstatus_coder   UNAUTHORIZED	FORBIDDEN
isinstancer   	NOT_FOUNDr+   )r,   rA   er   server_error_messageexresource_urls          r   kaggle_api_raise_for_statusr[   <   s%   
)D!!##### 'D 'D 'Da&&!	`#+==??#6#6y"#E#E # m'lTh'l'l'l$"2 	` 	` 	`KK?2??G^J]G^K________	`3BT--///J$;Z=Q#RRR/+<== + L LLXL L 8D	L L L   + I ILXI I ,I I I  :#777' S S.:S S (S S S  !8<<<!CO'Ds>    E E0A+*E+B/?&B*%E*B//B,EE c                 2   	 |                                   dS # t          j        $ ro}t          |          }|r|                                n| j        }| j        t          j        t          j	        hv r| j         d| d}t          ||           |d}~ww xY w)rC   rG   zw
Please make sure you are authenticated if you are trying to access a private resource or a resource requiring consent.r/   N)rH   r4   rI   r"   rP   rQ   rR   r   rS   rT   r8   )r,   rA   rW   r   rZ   s        r   colab_raise_for_statusr]   m   s    
@!!##### @ @ @a&&3BT--///J$;Z=Q#RRR' & &HT& & &  Wx888a?@s    BA*BBc                    d|                      dd          cxk    rdk     s'n |                      dd          }t          |          d| v r=| d         dk    r3d| v rt          | d                   nd	}t          | d         |          d	S d	S )
z=
    Postprocesses the API response to check for errors.
       codei,  r   zNo error message providederrorrD   	errorCodeN)rK   r   r#   )r,   error_messager   s      r   process_post_responserd      s     8<<,,2222s2222 Y0KLL=)))	H		'!2b!8!83>(3J3JS+.///PT
8G,j999 
	!8!8r   r   )!logginghttpr   typingr   r   r4   kagglehub.handler   r   kagglehub.loggerr   	getLoggerr   rN   	Exceptionr
   r   r   r   r'   r)   rI   r+   r8   r;   r@   r5   r[   r]   dictr"   rd   r   r   r   <module>rm      s                           > > > > > > > > 0 0 0 0 0 0		8	$	$	 	 	 	 	i 	 	 		 	 	 	 	Y 	 	 		 	 	 	 	I 	 	 	" " " " "9 " " "	 	 	 	 	I 	 	 		 	 	 	 	) 	 	 	5 5 5 5 5+ 5 5 5
5 5 5 5 5X' 5 5 5
" " " " "9 " " "	 	 	 	 	 	 	 	.D .D(*; .DhWeNf .Drv .D .D .D .Db@ @X%6 @R`Ia @mq @ @ @ @.	:DcN 	:t 	: 	: 	: 	: 	: 	:r   