o
    #`^h                     @  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rqddddZdeddZdfddZdgdd Zdhd!d"Zdid$d%Z did&d'Z!n/erd 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&djd.d/Z'dkd2d3Z(dld5d6Z)dld7d8Z*dmd:d;Z+dnd=d>Z,d?d@dodBdCZ-ddDdpdIdJZ.dd?d?dKdLdqdSdTZ/drdVdWZ0dsdYdZZ1dtd[d\Z2er	G d]d^ d^ejZ3nerG d_d^ d^ejZ3nd dl4ZG d`d^ d^ej5j3ejZ3er7e6Z7G dadb dbee Z8dS zd dcl9m7Z7 W n e:yO   d dcl7m7Z7 Y nw e7Z8dS )u    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfN)	FieldInfo   )IncExStrBytesIntFloat_T_ModelT)boundz2.valuedate | StrBytesIntFloatreturnr   c                 C     d S N r   r   r   L/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/openai/_compat.py
parse_date      r   !Union[datetime, StrBytesIntFloat]r   c                 C  r   r   r   r   r   r   r   parse_datetime   r   r    t	type[Any]tuple[Any, ...]c                 C  r   r   r   r!   r   r   r   get_args   r   r%   tptype[Any] | Noneboolc                 C  r   r   r   )r&   r   r   r   is_union"   r   r)   c                 C  r   r   r   r$   r   r   r   
get_origin%   r   r*   type_c                 C  r   r   r   r+   r   r   r   is_literal_type(   r   r-   c                 C  r   r   r   r,   r   r   r   is_typeddict+   r   r.   )r%   r)   r*   r.   r-   )r   r    )
ConfigDictmodeltype[_ModelT]objectc                 C  s   t r| |S tt| |S r   )PYDANTIC_V2model_validater	   r   	parse_obj)r0   r   r   r   r   r5   O   s   
r5   fieldr   c                 C  s   t r|  S | jS r   )r3   is_requiredrequiredr6   r   r   r   field_is_requiredV   s   r:   r   c                 C  s,   |   }trddlm} ||krd S |S |S )Nr   )PydanticUndefined)get_defaultr3   pydantic_corer;   )r6   r   r;   r   r   r   field_get_default\   s   r>   c                 C     t r| jS | jS r   )r3   
annotationouter_type_r9   r   r   r   field_outer_typeg      rB   type[pydantic.BaseModel]c                 C  r?   r   )r3   model_config
__config__r0   r   r   r   get_model_configm   rC   rH   dict[str, FieldInfo]c                 C  r?   r   )r3   model_fields
__fields__rG   r   r   r   get_model_fieldss   rC   rL   FdeeprN   c                C     t r| j|dS | j|dS )NrM   )r3   
model_copycopy)r0   rN   r   r   r   rP   y      rP   indentpydantic.BaseModelrT   
int | Nonestrc                C  rO   )NrS   )r3   model_dump_jsonjson)r0   rT   r   r   r   
model_json   rR   rZ   Texcludeexclude_unsetexclude_defaultswarningsr\   r   r]   r^   r_   dict[str, Any]c                C  s,   t r| j||||dS td| j|||dS )Nr[   r`   )r\   r]   r^   )r3   
model_dumpr	   dict)r0   r\   r]   r^   r_   r   r   r   ra      s   ra   datac                 C     t r| |S | |S r   )r3   r4   r5   r0   rc   r   r   r   model_parse      

rf   str | bytesc                 C  rd   r   )r3   model_validate_json	parse_rawre   r   r   r   model_parse_json   rg   rk   c                 C  s   t r|  S |  S r   )r3   model_json_schemaschemarG   r   r   r   rl      s   rl   c                   @     e Zd ZdS GenericModelN__name__
__module____qualname__r   r   r   r   rp          rp   c                   @  rn   ro   rq   r   r   r   r   rp      ru   c                   @  rn   ro   rq   r   r   r   r   rp      ru   c                   @  sh   e Zd ZU ded< ded< dddZeddddZedd ddZdd!ddZd"ddZd#ddZd	S )$typed_cached_propertyCallable[[Any], _T]funcz
str | Noneattrnamer   Nonec                 C  r   r   r   )selfrx   r   r   r   __init__       ztyped_cached_property.__init__Ninstanceownerr'   r   c                 C  r   r   r   r{   r~   r   r   r   r   __get__   r   ztyped_cached_property.__get__r2   r   c                 C  r   r   r   r   r   r   r   r      r   	_T | Selfc                 C  s   t  r   )NotImplementedErrorr   r   r   r   r      s   r"   namerW   c                 C  r   r   r   )r{   r   r   r   r   r   __set_name__   r}   z"typed_cached_property.__set_name__r   c                 C  r   r   r   )r{   r~   r   r   r   r   __set__   r}   ztyped_cached_property.__set__)rx   rw   r   rz   r   )r~   rz   r   r'   r   r   )r~   r2   r   r'   r   r   )r~   r2   r   r'   r   r   )r   r"   r   rW   r   rz   )r~   r2   r   r   r   rz   )	rr   rs   rt   __annotations__r|   r
   r   r   r   r   r   r   r   rv      s   
 

rv   )cached_property)r   r   r   r   )r   r   r   r   )r!   r"   r   r#   )r&   r'   r   r(   )r!   r"   r   r'   )r+   r"   r   r(   )r0   r1   r   r2   r   r   )r6   r   r   r(   )r6   r   r   r   )r0   rD   r   r   )r0   rD   r   rI   )r0   r   rN   r(   r   r   )r0   rU   rT   rV   r   rW   )r0   rU   r\   r   r]   r(   r^   r(   r_   r(   r   r`   )r0   r1   rc   r   r   r   )r0   r1   rc   rh   r   r   )r0   r1   r   r`   );
__future__r   typingr   r   r   r   r   r   r	   r
   r   r   typing_extensionsr   pydanticpydantic.fieldsr   _typesr   r   r   	BaseModelr   VERSION
startswithr3   r   r    r%   r)   r*   r-   r.   pydantic.v1.typingpydantic.v1.datetime_parsepydantic.typingpydantic.datetime_parser/   r5   r:   r>   rB   rH   rL   rP   rZ   ra   rf   rk   rl   rp   pydantic.genericsgenericspropertyr   rv   	functoolsImportErrorr   r   r   r   <module>   sv    (











	



