o
    ~j6hT                     @   s  d Z ddlmZ dZddlZddlmZ G dd deZ	G dd	 d	e	Z
G d
d de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de
ZG dd de	ZG dd de	ZG dd de
ZG dd de	ZG d d! d!e	ZdS )"z_Errors for the library.

All exceptions defined by the library
should be defined in this file.
    )absolute_importz$jcgregorio@google.com (Joe Gregorio)N)_helpersc                   @      e Zd ZdZdS )ErrorzBase error for this module.N__name__
__module____qualname____doc__ r   r   e/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/googleapiclient/errors.pyr          r   c                   @   sD   e Zd ZdZeddddZedd Zdd	 Z	d
d Z
e
ZdS )	HttpErrorz$HTTP data was invalid or unexpected.   Nc                 C   s8   || _ t|tstd|| _|| _d| _|  | _d S )NzHTTP content should be bytes )	resp
isinstancebytes	TypeErrorcontenturierror_details_get_reasonreason)selfr   r   r   r   r   r   __init__&   s   
zHttpError.__init__c                 C   s   | j jS )z6Return the HTTP status code from the response content.)r   statusr   r   r   r   status_code0   s   zHttpError.status_codec              
      s   | j j}zezt| jd W n tjy    | jd Y nw t trB d d }t	 fdddD d}|rA d | | _
n&t tret dkre d }|d d }d	|d v rd|d d	 | _
n | _
W n tttfyu   Y nw |d
u r|d}| S )z=Calculate the reason for the error from the response content.zutf-8errormessagec                 3   s     | ]}| d  v r|V  qdS )r   Nr   ).0kwdatar   r   	<genexpr>A   s    z(HttpError._get_reason.<locals>.<genexpr>)detaildetailserrorsr    r   r   r'   N)r   r   jsonloadsr   decodeJSONDecodeErrorr   dictnextr   listlen
ValueErrorKeyErrorr   strip)r   r   error_detail_keywordfirst_errorr   r#   r   r   5   s@   

zHttpError._get_reasonc                 C   sN   | j rd| jj| j| j| j f S | jrd| jj| j| jf S d| jj| jf S )Nz><HttpError %s when requesting %s returned "%s". Details: "%s">z/<HttpError %s when requesting %s returned "%s">z<HttpError %s "%s">)r   r   r   r   r   r   r   r   r   __repr__W   s   zHttpError.__repr__N)r   r   r	   r
   util
positionalr   propertyr   r   r6   __str__r   r   r   r   r   #   s    	
"r   c                   @   r   )InvalidJsonErrorz&The JSON returned could not be parsed.Nr   r   r   r   r   r<   k   r   r<   c                   @   r   )UnknownFileTypez File type unknown or unexpected.Nr   r   r   r   r   r=   q   r   r=   c                   @   r   )UnknownLinkTypez Link type unknown or unexpected.Nr   r   r   r   r   r>   w   r   r>   c                   @   r   )UnknownApiNameOrVersionz)No API with that name and version exists.Nr   r   r   r   r   r?   }   r   r?   c                   @   r   )UnacceptableMimeTypeErrorz4That is an unacceptable mimetype for this operation.Nr   r   r   r   r   r@      r   r@   c                   @   r   )MediaUploadSizeErrorz+Media is larger than the method can accept.Nr   r   r   r   r   rA      r   rA   c                   @   r   )ResumableUploadErrorz'Error occurred during resumable upload.Nr   r   r   r   r   rB      r   rB   c                   @   r   )InvalidChunkSizeErrorz!The given chunksize is not valid.Nr   r   r   r   r   rC      r   rC   c                   @   r   )InvalidNotificationErrorz$The channel Notification is invalid.Nr   r   r   r   r   rD      r   rD   c                   @   s0   e Zd ZdZeddddZdd ZeZdS )	
BatchErrorz'Error occurred during batch operations.   Nc                 C   s   || _ || _|| _d S r7   )r   r   r   )r   r   r   r   r   r   r   r      s   
zBatchError.__init__c                 C   s.   t | jdd d u rd| j S d| jj| jf S )Nr   z<BatchError "%s">z<BatchError %s "%s">)getattrr   r   r   r   r   r   r   r6      s   
zBatchError.__repr__)NN)	r   r   r	   r
   r8   r9   r   r6   r;   r   r   r   r   rE      s    rE   c                       s,   e Zd ZdZedd fdd	Z  ZS )UnexpectedMethodErrorz;Exception raised by RequestMockBuilder on unexpected calls.   Nc                    s   t t| d|  dS ))Constructor for an UnexpectedMethodError.zReceived unexpected call %sN)superrH   r   )r   methodId	__class__r   r   r      s   
zUnexpectedMethodError.__init__r7   )r   r   r	   r
   r8   r9   r   __classcell__r   r   rM   r   rH      s    rH   c                       s    e Zd ZdZ fddZ  ZS )UnexpectedBodyErrorz<Exception raised by RequestMockBuilder on unexpected bodies.c                    s   t t| d||f  dS )rJ   zExpected: [%s] - Provided: [%s]N)rK   rP   r   )r   expectedprovidedrM   r   r   r      s   

zUnexpectedBodyError.__init__)r   r   r	   r
   r   rO   r   r   rM   r   rP      s    rP   )r
   
__future__r   
__author__r)   googleapiclientr   r8   	Exceptionr   r   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rH   rP   r   r   r   r   <module>   s&   H