a
    !f                     @  s  d dl mZ d dlmZmZmZmZmZ d dlm	Z	mZ d dl
Z
d dlmZ ddlmZ ede
jd	Ze
jd
ZerdddddZdddddZdddddZdddddZdddddZddd d!d"Zddd d#d$ZnerDd d%lmZ d d&lmZ d d'lmZ d d(lmZ d d)lmZ d d*lmZ d d+lmZ nTd d%lmZ d d&lmZ d d'lmZ d d(lmZ d d)lmZ d d*lmZ d d+lmZ erd d,l
mZ nerd d,l
mZ ndZd-d.dd/d0d1Z d2dd3d4d5Z!d2d6d3d7d8Z"d2d6d3d9d:Z#d;d6d<d=d>Z$d;d?d<d@dAZ%ddd<dBdCZ&ddDdEdFdGdHdIdJZ'dKdKdLdEdddMdNdOdPZ(d-d6ddQdRdSZ)erG dTdU dUe
jZ*n:erG dVdU dUe
jZ*n d dl+Z
G dWdU dUe
j,j*e
jZ*dS )X    )annotations)TYPE_CHECKINGAnyUnionTypeVarcast)datedatetimeN)	FieldInfo   )StrBytesIntFloat_ModelT)boundz2.zdate | StrBytesIntFloatr   )valuereturnc                 C  s   d S N r   r   r   O/var/www/html/python-backend/venv/lib/python3.9/site-packages/openai/_compat.py
parse_date   s    r   z!Union[datetime, StrBytesIntFloat]r	   c                 C  s   d S r   r   r   r   r   r   parse_datetime   s    r   z	type[Any]ztuple[Any, ...])tr   c                 C  s   d S r   r   r   r   r   r   get_args   s    r   ztype[Any] | Nonebool)tpr   c                 C  s   d S r   r   )r   r   r   r   is_union    s    r   c                 C  s   d S r   r   r   r   r   r   
get_origin#   s    r   )type_r   c                 C  s   d S r   r   r   r   r   r   is_literal_type&   s    r    c                 C  s   d S r   r   r   r   r   r   is_typeddict)   s    r!   )r   )r   )r   )r!   )r    )r   )r   )
ConfigDictztype[_ModelT]object)modelr   r   c                 C  s"   t r| |S tt| |S d S r   )PYDANTIC_V2model_validater   r   	parse_obj)r$   r   r   r   r   r'   K   s    
r'   r
   )fieldr   c                 C  s   t r|  S | jS r   )r%   Zis_requiredrequiredr(   r   r   r   field_is_requiredR   s    r+   r   c                 C  s,   |   }tr(ddlm} ||kr$d S |S |S )Nr   )PydanticUndefined)get_defaultr%   Zpydantic_corer,   )r(   r   r,   r   r   r   field_get_defaultX   s    r.   c                 C  s   t r
| jS | jS r   )r%   
annotationZouter_type_r*   r   r   r   field_outer_typec   s    r0   ztype[pydantic.BaseModel])r$   r   c                 C  s   t r
| jS | jS r   )r%   Zmodel_configZ
__config__r$   r   r   r   get_model_configi   s    r2   zdict[str, FieldInfo]c                 C  s   t r
| jS | jS r   )r%   Zmodel_fieldsZ
__fields__r1   r   r   r   get_model_fieldso   s    r3   c                 C  s   t r|  S |  S r   )r%   
model_copycopyr1   r   r   r   r4   u   s    r4   indentzpydantic.BaseModelz
int | Nonestr)r$   r7   r   c                C  s   t r| j|dS | j|dS )Nr6   )r%   Zmodel_dump_jsonjson)r$   r7   r   r   r   
model_json{   s    r:   Fexclude_unsetexclude_defaultsdict[str, Any])r$   r<   r=   r   c                C  s&   t r| j||dS td| j||dS )Nr;   r>   )r%   
model_dumpr   dict)r$   r<   r=   r   r   r   r?      s    r?   )r$   datar   c                 C  s   t r| |S | |S r   )r%   r&   r'   )r$   rA   r   r   r   model_parse   s    
rB   c                   @  s   e Zd ZdS GenericModelN__name__
__module____qualname__r   r   r   r   rD      s   rD   c                   @  s   e Zd ZdS rC   rE   r   r   r   r   rD      s   c                   @  s   e Zd ZdS rC   rE   r   r   r   r   rD      s   )-
__future__r   typingr   r   r   r   r   r	   r   ZpydanticZpydantic.fieldsr
   _typesr   Z	BaseModelr   VERSION
startswithr%   r   r   r   r   r   r    r!   Zpydantic.v1.typingZpydantic.v1.datetime_parseZpydantic.typingZpydantic.datetime_parser"   r'   r+   r.   r0   r2   r3   r4   r:   r?   rB   rD   Zpydantic.genericsZgenericsr   r   r   r   <module>   sj   	