a
    _g                     @  sl  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 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)TYPE_CHECKINGAnyOptionalcast)LiteralN   )is_dict)construct_type)ChatCompletion)
BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorLengthFinishReasonErrorContentFilterFinishReasonErrorc                   @  s   e Zd ZdS )OpenAIErrorN__name__
__module____qualname__ r   r   `/var/www/html/cobodadashboardai.evdpl.com/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,   5   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'   )r5   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!   r5   r7   )r.   r5   r#   r   r/   r   r   r,   I   s    z#APIResponseValidationError.__init__r   r   r   r1   r,   r2   r   r   r/   r   r3   E   s   
r3   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.r4   r5   r6   r7   r9   
request_idr   r"   r'   )r   r5   r#   r(   c                  s4   t  j||j|d || _|j| _|jd| _d S )Nr:   zx-request-id)r+   r,   r!   r5   r7   headersr-   r=   )r.   r   r5   r#   r/   r   r   r,   V   s    zAPIStatusError.__init__)r   r   r   __doc__r1   r,   r2   r   r   r/   r   r<   O   s
   
r<   c                      s,   e Zd Zdddddd fddZ  ZS )	APIConnectionErrorzConnection error.r8   r   r    r'   )r   r!   r(   c                  s   t  j||d d d S )Nr:   r+   r,   )r.   r   r!   r/   r   r   r,   ^   s    zAPIConnectionError.__init__r   r   r   r,   r2   r   r   r/   r   r@   ]   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!   rA   )r.   r!   r/   r   r   r,   c   s    zAPITimeoutError.__init__rB   r   r   r/   r   rC   b   s   rC   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[400]r7   Nr   r   r   r7   r1   r   r   r   r   r   g   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[401]r7   NrD   r   r   r   r   r   k   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[403]r7   NrD   r   r   r   r   r   o   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[404]r7   NrD   r   r   r   r   r   s   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[409]r7   NrD   r   r   r   r   r   w   s   
r   c                   @  s   e Zd ZU dZded< dS )r   i  zLiteral[422]r7   NrD   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[429]r7   NrD   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U ded< ddd fddZ  ZS )r   r   
completionr'   )rE   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,   rE   )r.   rE   msgr/   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'   )r(   c                   s   t  d d S )NzRCould not parse response content as the request was rejected by the content filterrA   )r.   r/   r   r   r,      s    z'ContentFilterFinishReasonError.__init__rB   r   r   r/   r   r      s   r   )"
__future__r   typingr   r   r   r   Ztyping_extensionsr   Zhttpx_utilsr	   Z_modelsr
   Z
types.chatr   __all__	Exceptionr   r   r3   r<   r@   rC   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s0   #
