U
    $FZhT  ã                   @   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                   @   s   e Zd ZdZdS )ÚErrorzBase error for this module.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r
   r
   ú]/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/googleapiclient/errors.pyr      s   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}zÌzt | j d¡¡‰ W n" tjk
rB   | j d¡‰ Y nX tˆ tƒr†ˆ d d }t	‡ fdd„dD ƒdƒ}|rÒˆ d | | _
nLtˆ tƒrÌtˆ ƒdkrÌˆ d }|d d }d	|d krÒ|d d	 | _
nˆ | _
W n tttfk
rî   Y nX |d
krüd}| ¡ S )z=Calculate the reason for the error from the response content.zutf-8ÚerrorÚmessagec                 3   s   | ]}|ˆ d  k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   Zerror_detail_keywordZfirst_errorr
   r!   r   r   5   s6    

þú
zHttpError._get_reasonc                 C   sR   | 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 d 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   r2   Ú__str__r
   r
   r
   r   r   #   s   	
"r   c                   @   s   e Zd ZdZdS )ÚInvalidJsonErrorz&The JSON returned could not be parsed.Nr   r
   r
   r
   r   r7   k   s   r7   c                   @   s   e Zd ZdZdS )ÚUnknownFileTypez File type unknown or unexpected.Nr   r
   r
   r
   r   r8   q   s   r8   c                   @   s   e Zd ZdZdS )ÚUnknownLinkTypez Link type unknown or unexpected.Nr   r
   r
   r
   r   r9   w   s   r9   c                   @   s   e Zd ZdZdS )ÚUnknownApiNameOrVersionz)No API with that name and version exists.Nr   r
   r
   r
   r   r:   }   s   r:   c                   @   s   e Zd ZdZdS )ÚUnacceptableMimeTypeErrorz4That is an unacceptable mimetype for this operation.Nr   r
   r
   r
   r   r;   ƒ   s   r;   c                   @   s   e Zd ZdZdS )ÚMediaUploadSizeErrorz+Media is larger than the method can accept.Nr   r
   r
   r
   r   r<   ‰   s   r<   c                   @   s   e Zd ZdZdS )ÚResumableUploadErrorz'Error occurred during resumable upload.Nr   r
   r
   r
   r   r=      s   r=   c                   @   s   e Zd ZdZdS )ÚInvalidChunkSizeErrorz!The given chunksize is not valid.Nr   r
   r
   r
   r   r>   •   s   r>   c                   @   s   e Zd ZdZdS )ÚInvalidNotificationErrorz$The channel Notification is invalid.Nr   r
   r
   r
   r   r?   ›   s   r?   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 )N)r   r   r   )r   r   r   r   r
   r
   r   r   ¤   s    zBatchError.__init__c                 C   s2   t | jdd ƒd krd| j S d| jj| jf S d S )Nr   z<BatchError "%s">z<BatchError %s "%s">)Úgetattrr   r   r   r   r
   r
   r   r2   ª   s    
zBatchError.__repr__)NN)	r   r   r   r	   r3   r4   r   r2   r6   r
   r
   r
   r   r@   ¡   s
   r@   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)ÚsuperrC   r   )r   ZmethodId©Ú	__class__r
   r   r   ¶   s    
ÿzUnexpectedMethodError.__init__)N)r   r   r   r	   r3   r4   r   Ú__classcell__r
   r
   rG   r   rC   ³   s   rC   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 )rE   zExpected: [%s] - Provided: [%s]N)rF   rJ   r   )r   ÚexpectedÚprovidedrG   r
   r   r   Á   s    

ÿzUnexpectedBodyError.__init__)r   r   r   r	   r   rI   r
   r
   rG   r   rJ   ¾   s   rJ   )r	   Ú
__future__r   Ú
__author__r'   Zgoogleapiclientr   r3   Ú	Exceptionr   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rC   rJ   r
   r
   r
   r   Ú<module>   s$   H