o
    <i+                     @   s   d dl mZ d dl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mZm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dedeeee f ddfddZdS )    )JSONDecodeError)Literal)FieldValidationError)	HTTPError)AuthorizationExpiredErrorBadRequestErrorForbiddenError
OAuthError	RESTErrorServerErrorServiceUnavailableErrorUnauthorizedError)IcebergBaseModelc                   @   s   e Zd ZU e Zeed< e Zeed< eddZe	dB ed< eddZ
edB ed< eddZedB ed< eddZedB ed< dS )	TokenResponseaccess_token
token_typeN)default
expires_inissued_token_typerefresh_tokenscope)__name__
__module____qualname__r   r   str__annotations__r   r   intr   r   r    r   r   \/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/pyiceberg/catalog/rest/response.pyr   $   s   
 r   c                   @   s8   e Zd ZU e Zeed< e Zeed< e Ze	ed< dS )ErrorResponseMessagemessagetypecodeN)
r   r   r   r   r!   r   r   r"   r#   r   r   r   r   r   r    -   s   
 r    c                   @   s   e Zd ZU e Zeed< dS )ErrorResponseerrorN)r   r   r   r   r%   r    r   r   r   r   r   r$   3   s   
 r$   c                   @   s:   e Zd ZU ed ed< dZedB ed< dZedB ed< dS )OAuthErrorResponse)invalid_requestinvalid_clientinvalid_grantunauthorized_clientunsupported_grant_typeinvalid_scoper%   Nerror_description	error_uri)r   r   r   r   r   r-   r   r.   r   r   r   r   r&   7   s   
 r&   excerror_handlerreturnNc           
   
   C   s  | j d u r	td| j j}||v r|| }nB|dkrt}n;|dkr$t}n4|dkr+t}n-|dkr2t}n&|dkr9t}n|dkr@t}n|dkrGt	}nd	|  krQd
k rVn nt
}nt}z=|tkrt| j j}t|j}|j }ru|d| 7 }|j }r|d| d7 }nt| j jj}|j d|j }W nA ty   d| j j d| j j }Y n- ty } z!ddd | D }	d| j j d| j j d|	 }W Y d }~nd }~ww ||| )NzDid not receive a responsei  i  i  i  i  i  i  i  iX  z: z ()z
RESTError z!: Could not decode json payload: z, c                 s   s    | ]}|d  V  qdS )msgNr   ).0errr   r   r   	<genexpr>l   s    z+_handle_non_200_response.<locals>.<genexpr>z$: Received unexpected JSON Payload: z
, errors: )response
ValueErrorstatus_coder   r   r	   r   r   NotImplementedErrorr   r   r
   r&   model_validate_jsontextr   r%   r-   r.   r$   r"   r!   r   r   joinerrors)
r/   r0   r#   	exceptionr%   r7   descriptionurieerrsr   r   r   _handle_non_200_response?   sT   




*
rD   )jsonr   typingr   pydanticr   r   requestsr   pyiceberg.exceptionsr   r   r	   r
   r   r   r   r   pyiceberg.typedefr   r   r    r$   r&   dictr   r"   	ExceptionrD   r   r   r   r   <module>   s   (
	&