a
    f                     @  s.  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mZ d dlmZ d dlZd dlmZ ddlmZmZ ed	Zed
ejdZejdZer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 ddd"d%d&Z!n`erBd d'l"mZmZmZm!Z!m Z  d d(l#mZmZ n,d d'l$mZmZmZm!Z!m Z  d d(l%mZmZ erd d)lm&Z& nerd d)lm&Z& ndZ&d*d+d
d,d-d.Z'd/dd0d1d2Z(d/d3d0d4d5Z)d/d3d0d6d7Z*d8d3d9d:d;Z+d8d<d9d=d>Z,d?d@d
dd
dAdBdCZ-ddDdEdFdGdHdIdJZ.dd?d?dKdEdLdddMdNdOdPZ/d*d3d
dQdRdSZ0d*dTd
dQdUdVZ1d*dMd9dWdXZ2erG dYdZ dZejZ3n:erG d[dZ dZejZ3n d dl4ZG d\dZ dZej5j3ejZ3ere6Z7G d]d^ d^ee Z8n6zd d_l9m7Z7 W n  e:y$   d d_l7m7Z7 Y n0 e7Z8dS )`    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfN)	FieldInfo   )IncExStrBytesIntFloat_T_ModelT)boundz2.zdate | StrBytesIntFloatr   )valuereturnc                 C  s   d S N r   r   r   G/var/www/ai-form-bot/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   	type[Any]ztuple[Any, ...])tr   c                 C  s   d S r   r   r   r   r   r   get_args   s    r    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/   O   s    
r/   r   )fieldr   c                 C  s   t r|  S | jS r   )r-   Zis_requiredrequiredr0   r   r   r   field_is_requiredV   s    r3   r   c                 C  s,   |   }tr(ddlm} ||kr$d S |S |S )Nr   )PydanticUndefined)get_defaultr-   Zpydantic_corer4   )r0   r   r4   r   r   r   field_get_default\   s    r6   c                 C  s   t r
| jS | jS r   )r-   
annotationZouter_type_r2   r   r   r   field_outer_typeg   s    r8   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_configm   s    r:   zdict[str, FieldInfo]c                 C  s   t r
| jS | jS r   )r-   Zmodel_fieldsZ
__fields__r9   r   r   r   get_model_fieldss   s    r;   Fdeep)r,   r=   r   c                C  s   t r| j|dS | j|dS )Nr<   )r-   
model_copycopy)r,   r=   r   r   r   r>   y   s    r>   indentzpydantic.BaseModelz
int | Nonestr)r,   rA   r   c                C  s   t r| j|dS | j|dS )Nr@   )r-   Zmodel_dump_jsonjson)r,   rA   r   r   r   
model_json   s    rD   excludeexclude_unsetexclude_defaultsr   dict[str, Any])r,   rF   rG   rH   r   c                C  s*   t r| j|||dS td| j|||dS )NrE   rI   )r-   
model_dumpr	   dict)r,   rF   rG   rH   r   r   r   rJ      s    rJ   )r,   datar   c                 C  s   t r| |S | |S r   )r-   r.   r/   r,   rL   r   r   r   model_parse   s    
rN   zstr | bytesc                 C  s   t r| |S | |S r   )r-   Zmodel_validate_jsonZ	parse_rawrM   r   r   r   model_parse_json   s    
rO   c                 C  s   t r|  S |  S r   )r-   model_json_schemaZschemar9   r   r   r   rP      s    rP   c                   @  s   e Zd ZdS GenericModelN__name__
__module____qualname__r   r   r   r   rR          rR   c                   @  s   e Zd ZdS rQ   rS   r   r   r   r   rR      rW   c                   @  s   e Zd ZdS rQ   rS   r   r   r   r   rR      rW   c                   @  s   e Zd ZU ded< ded< dddddZeddd
ddddZeddd
ddddZddd
ddddZddddddZddddddZd	S )typed_cached_propertyzCallable[[Any], _T]funcz
str | NoneattrnameNone)rY   r   c                 C  s   d S r   r   )selfrY   r   r   r   __init__   rW   ztyped_cached_property.__init__Nr!   r   )instanceownerr   c                 C  s   d S r   r   r\   r^   r_   r   r   r   __get__   s    ztyped_cached_property.__get__r+   r   c                 C  s   d S r   r   r`   r   r   r   ra      s    z	_T | Selfc                 C  s
   t  d S r   )NotImplementedErrorr`   r   r   r   ra      s    r   rB   )r_   namer   c                 C  s   d S r   r   )r\   r_   rc   r   r   r   __set_name__   rW   z"typed_cached_property.__set_name__)r^   r   r   c                 C  s   d S r   r   )r\   r^   r   r   r   r   __set__   rW   ztyped_cached_property.__set__)N)N)N)	rT   rU   rV   __annotations__r]   r
   ra   rd   re   r   r   r   r   rX      s   
rX   )cached_property);
__future__r   typingr   r   r   r   r   r   r	   r
   r   r   typing_extensionsr   ZpydanticZpydantic.fieldsr   _typesr   r   r   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/   r3   r6   r8   r:   r;   r>   rD   rJ   rN   rO   rP   rR   Zpydantic.genericsZgenericspropertyrg   rX   	functoolsImportErrorr   r   r   r   <module>   sp   (	
