U
    ~fh                     @  s  d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z	ddl
mZ ddlmZ er`ddlmZ d	d
dddddddddg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G d(d deZ G d)d deZ!G d*d de"Z#dS )+    )annotations)TYPE_CHECKINGAnyOptionalcast)LiteralN   )is_dict)construct_type)ChatCompletionBadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorLengthFinishReasonErrorContentFilterFinishReasonErrorInvalidWebhookSignatureErrorc                   @  s   e Zd ZdS )OpenAIErrorN__name__
__module____qualname__ r   r   6/tmp/pip-unpacked-wheel-rjiviquo/openai/_exceptions.pyr      s   r   c                      sb   e Zd ZU ded< ded< ded< dZded	< dZded
< ded< ddddd fddZ  ZS )APIErrorstrmessagehttpx.Requestrequestobject | NonebodyNzOptional[str]codeparamtypeNone)r    r"   r$   returnc                  s   t  | || _|| _|| _t|r~tttt	t
 |dd| _tttt	t
 |dd| _tttt
|dd| _nd | _d | _d | _d S )Nr%   )type_valuer&   r'   )super__init__r"   r    r$   r	   r   r   r
   r   r   getr%   r&   r'   )selfr    r"   r$   	__class__r   r   r-   6   s    zAPIError.__init__)r   r   r   __annotations__r%   r&   r-   __classcell__r   r   r0   r   r   #   s   
r   c                      s@   e Zd ZU ded< ded< dddddd	d
 fddZ  ZS )APIResponseValidationErrorhttpx.Responseresponseintstatus_codeNr    r#   
str | Noner(   )r6   r$   r    r)   c                  s*   t  j|pd|j|d || _|j| _d S )Nz1Data returned by API invalid for expected schema.r$   )r,   r-   r"   r6   r8   )r/   r6   r$   r    r0   r   r   r-   J   s    z#APIResponseValidationError.__init__r   r   r   r2   r-   r3   r   r   r0   r   r4   F   s   
r4   c                      sF   e Zd ZU dZded< ded< ded< ddd	d
d fddZ  ZS )APIStatusErrorz<Raised when an API response has a status code of 4xx or 5xx.r5   r6   r7   r8   r:   
request_idr   r#   r(   )r    r6   r$   r)   c                  s4   t  j||j|d || _|j| _|jd| _d S )Nr;   zx-request-id)r,   r-   r"   r6   r8   headersr.   r>   )r/   r    r6   r$   r0   r   r   r-   W   s    zAPIStatusError.__init__)r   r   r   __doc__r2   r-   r3   r   r   r0   r   r=   P   s
   
r=   c                      s,   e Zd Zdddddd fddZ  ZS )	APIConnectionErrorzConnection error.r9   r   r!   r(   )r    r"   r)   c                  s   t  j||d d d S )Nr;   r,   r-   )r/   r    r"   r0   r   r   r-   _   s    zAPIConnectionError.__init__r   r   r   r-   r3   r   r   r0   r   rA   ^   s   rA   c                      s$   e Zd Zddd fddZ  ZS )APITimeoutErrorr!   r(   )r"   r)   c                   s   t  jd|d d S )NzRequest timed out.)r    r"   rB   )r/   r"   r0   r   r   r-   d   s    zAPITimeoutError.__init__rC   r   r   r0   r   rD   c   s   rD   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[400]r8   Nr   r   r   r8   r2   r   r   r   r   r   h   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[401]r8   NrE   r   r   r   r   r   l   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[403]r8   NrE   r   r   r   r   r   p   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[404]r8   NrE   r   r   r   r   r   t   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[409]r8   NrE   r   r   r   r   r   x   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[422]r8   NrE   r   r   r   r   r   |   s   
c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[429]r8   NrE   r   r   r   r   r      s   
c                   @  s   e Zd ZdS )r   Nr   r   r   r   r   r      s   c                      s.   e Zd ZU ded< ddd fddZ  ZS )r   r   
completionr(   )rF   r)   c                  s0   d}|j r|d|j  7 }t | || _d S )Nz@Could not parse response content as the length limit was reachedz - )usager,   r-   rF   )r/   rF   msgr0   r   r   r-      s
    z LengthFinishReasonError.__init__r<   r   r   r0   r   r      s   
c                      s"   e Zd Zdd fddZ  ZS )r   r(   )r)   c                   s   t  d d S )NzRCould not parse response content as the request was rejected by the content filterrB   )r/   r0   r   r   r-      s    z'ContentFilterFinishReasonError.__init__rC   r   r   r0   r   r      s   c                   @  s   e Zd ZdZdS )r   zqRaised when a webhook signature is invalid, meaning the computed signature does not match the expected signature.N)r   r   r   r@   r   r   r   r   r      s   )$
__future__r   typingr   r   r   r   Ztyping_extensionsr   Zhttpx_utilsr	   Z_modelsr
   Z
types.chatr   __all__	Exceptionr   r   r4   r=   rA   rD   r   r   r   r   r   r   r   r   r   r   
ValueErrorr   r   r   r   r   <module>   sH   #
