U
    ·ÜŸjF  ã                	   @  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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�rFd 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�r†d d)lm'Z' ne�ršd 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?dKdLdMœdEdNddddOdPdQœdRdS„Z0d*d3d
dTœdUdV„Z1d*dWd
dTœdXdY„Z2d*dPd9œdZd[„Z3e�r¦G d\d]„ d]ejƒZ4n:e�rÀG d^d]„ d]ejƒZ4n d dl5ZG d_d]„ d]ej6j4ejƒZ4e�r e7Z8G d`da„ daee ƒZ9nd dbl:m8Z8 e8Z9dS )cé    )Úannotations)ÚTYPE_CHECKINGÚAnyÚUnionÚGenericÚTypeVarÚCallableÚcastÚoverload)ÚdateÚdatetime)ÚSelfÚLiteralN)Ú	FieldInfoé   )ÚIncExÚStrBytesIntFloatÚ_TÚ_ModelT)Úboundz2.zdate | StrBytesIntFloatr   )ÚvalueÚreturnc                 C  s   d S ©N© ©r   r   r   ú2/tmp/pip-unpacked-wheel-2qj3ofc_/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   r0   O   s    
r0   r   )Úfieldr   c                 C  s   t r|  ¡ S | jS r   )r.   Zis_requiredÚrequired©r1   r   r   r   Úfield_is_requiredV   s    r4   r   c                 C  s,   |   ¡ }tr(ddlm} ||kr$d S |S |S )Nr   )ÚPydanticUndefined)Úget_defaultr.   Zpydantic_corer5   )r1   r   r5   r   r   r   Úfield_get_default\   s    r7   c                 C  s   t r
| jS | jS r   )r.   Ú
annotationZouter_type_r3   r   r   r   Úfield_outer_typeg   s    r9   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__r:   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-   rB   r   c                C  s   t r| j|d�S | j|d�S )NrA   )r.   Zmodel_dump_jsonÚjson)r-   rB   r   r   r   Ú
model_json   s    rE   TÚpython)ÚexcludeÚexclude_unsetÚexclude_defaultsÚwarningsÚmodezIncEx | NonezLiteral[('json', 'python')]údict[str, Any])r-   rG   rH   rI   rJ   rK   r   c                C  s@   t st| dƒr*| j||||t r"|ndd�S td| j|||d�ƒS )NÚ
model_dumpT)rK   rG   rH   rI   rJ   rL   )rG   rH   rI   )r.   ÚhasattrrM   r	   Údict)r-   rG   rH   rI   rJ   rK   r   r   r   rM   …   s     	
úýþrM   )r-   Údatar   c                 C  s   t r|  |¡S |  |¡S r   )r.   r/   r0   ©r-   rP   r   r   r   Úmodel_parse¡   s    
rR   zstr | bytesc                 C  s   t r|  |¡S |  |¡S r   )r.   Zmodel_validate_jsonZ	parse_rawrQ   r   r   r   Úmodel_parse_json§   s    
rS   c                 C  s   t r|  ¡ S |  ¡ S r   )r.   Úmodel_json_schemaZschemar:   r   r   r   rT   ­   s    rT   c                   @  s   e Zd ZdS ©ÚGenericModelN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   rV   ¶   s    rV   c                   @  s   e Zd ZdS rU   rW   r   r   r   r   rV   ½   s    c                   @  s   e Zd ZdS rU   rW   r   r   r   r   rV   Â   s    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)r\   r   c                 C  s   d S r   r   )Úselfr\   r   r   r   Ú__init__Õ   ó    ztyped_cached_property.__init__Nr"   r   )ÚinstanceÚownerr   c                 C  s   d S r   r   ©r_   rb   rc   r   r   r   Ú__get__×   s    ztyped_cached_property.__get__r,   r   c                 C  s   d S r   r   rd   r   r   r   re   Ú   s    z	_T | Selfc                 C  s
   t ƒ ‚d S r   )ÚNotImplementedErrorrd   r   r   r   re   Ý   s    r   rC   )rc   Únamer   c                 C  s   d S r   r   )r_   rc   rg   r   r   r   Ú__set_name__à   ra   z"typed_cached_property.__set_name__)rb   r   r   c                 C  s   d S r   r   )r_   rb   r   r   r   r   Ú__set__ã   ra   ztyped_cached_property.__set__)N)N)N)	rX   rY   rZ   Ú__annotations__r`   r
   re   rh   ri   r   r   r   r   r[   Ñ   s   
r[   )Úcached_property);Ú
__future__r   Útypingr   r   r   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   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+   r0   r4   r7   r9   r;   r<   r?   rE   rM   rR   rS   rT   rV   Zpydantic.genericsZgenericsÚpropertyrk   r[   Ú	functoolsr   r   r   r   Ú<module>   sn   (	ù
