a
    f                     @  sX  d dl mZ d dl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 g d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)AnyOptionalcast)LiteralN   )is_dict)construct_type)
BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorLengthFinishReasonErrorContentFilterFinishReasonErrorc                   @  s   e Zd ZdS )OpenAIErrorN__name__
__module____qualname__ r   r   K/var/www/ai-form-bot/venv/lib/python3.9/site-packages/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*   2   s    zAPIError.__init__)r   r   r   __annotations__r"   r#   r*   __classcell__r   r   r-   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%   )r3   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   r3   r5   )r,   r3   r!   r   r-   r   r   r*   F   s    z#APIResponseValidationError.__init__)r   r   r   r/   r*   r0   r   r   r-   r   r1   B   s   
r1   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.r2   r3   r4   r5   r7   
request_idr   r    r%   )r   r3   r!   r&   c                  s4   t  j||j|d || _|j| _|jd| _d S )Nr8   zx-request-id)r)   r*   r   r3   r5   headersr+   r:   )r,   r   r3   r!   r-   r   r   r*   S   s    zAPIStatusError.__init__)r   r   r   __doc__r/   r*   r0   r   r   r-   r   r9   L   s
   
r9   c                      s,   e Zd Zdddddd fddZ  ZS )	APIConnectionErrorzConnection error.r6   r   r   r%   )r   r   r&   c                  s   t  j||d d d S )Nr8   r)   r*   )r,   r   r   r-   r   r   r*   [   s    zAPIConnectionError.__init__r   r   r   r*   r0   r   r   r-   r   r=   Z   s   r=   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   r>   )r,   r   r-   r   r   r*   `   s    zAPITimeoutError.__init__r?   r   r   r-   r   r@   _   s   r@   c                   @  s   e Zd ZU dZded< dS )r
   i  zLiteral[400]r5   Nr   r   r   r5   r/   r   r   r   r   r
   d   s   
r
   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[401]r5   NrA   r   r   r   r   r   h   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[403]r5   NrA   r   r   r   r   r   l   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[404]r5   NrA   r   r   r   r   r   p   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[409]r5   NrA   r   r   r   r   r   t   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[422]r5   NrA   r   r   r   r   r   x   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[429]r5   NrA   r   r   r   r   r   |   s   
r   c                   @  s   e Zd ZdS )r   Nr   r   r   r   r   r      s   r   c                      s"   e Zd Zdd fddZ  ZS )r   r%   r&   c                   s   t  d d S )Nz@Could not parse response content as the length limit was reachedr>   r,   r-   r   r   r*      s    z LengthFinishReasonError.__init__r?   r   r   r-   r   r      s   r   c                      s"   e Zd Zdd fddZ  ZS )r   r%   rB   c                   s   t  d d S )NzRCould not parse response content as the request was rejected by the content filterr>   rC   r-   r   r   r*      s    z'ContentFilterFinishReasonError.__init__r?   r   r   r-   r   r      s   r   )
__future__r   typingr   r   r   typing_extensionsr   ZhttpxZ_utilsr   Z_modelsr	   __all__	Exceptionr   r   r1   r9   r=   r@   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s,   #
