U
    \e                     @  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 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r>d 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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
d9d?d@Z,ddAdBdCdDdEdFdGZ-dHdHdIdBdddJdKdLdMZ.d*d3d
dNdOdPZ/erhG dQdR dRejZ0n:erG dSdR dRejZ0n d dl1ZG dTdR dRej2j0ejZ0ere3Z4G dUdV dVee Z5n8zd dWl6m4Z4 W n" e7k
r   d dWl4m4Z4 Y nX e4Z5dS )X    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfN)	FieldInfo   )StrBytesIntFloat_T_ModelT)boundz2.zdate | StrBytesIntFloatr   )valuereturnc                 C  s   d S N r   r   r   0/tmp/pip-unpacked-wheel-d39zccgb/groq/_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r/   r   r   r   field_is_requiredV   s    r2   r   c                 C  s,   |   }tr(ddlm} ||kr$d S |S |S )Nr   )PydanticUndefined)get_defaultr,   Zpydantic_corer3   )r/   r   r3   r   r   r   field_get_default\   s    r5   c                 C  s   t r
| jS | jS r   )r,   
annotationZouter_type_r1   r   r   r   field_outer_typeg   s    r7   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    r9   zdict[str, FieldInfo]c                 C  s   t r
| jS | jS r   )r,   Zmodel_fieldsZ
__fields__r8   r   r   r   get_model_fieldss   s    r:   c                 C  s   t r|  S |  S r   )r,   
model_copycopyr8   r   r   r   r;   y   s    r;   indentzpydantic.BaseModelz
int | Nonestr)r+   r>   r   c                C  s   t r| j|dS | j|dS )Nr=   )r,   Zmodel_dump_jsonjson)r+   r>   r   r   r   
model_json   s    rA   Fexclude_unsetexclude_defaultsdict[str, Any])r+   rC   rD   r   c                C  s&   t r| j||dS td| j||dS )NrB   rE   )r,   
model_dumpr	   dict)r+   rC   rD   r   r   r   rF      s    rF   )r+   datar   c                 C  s   t r| |S | |S r   )r,   r-   r.   )r+   rH   r   r   r   model_parse   s    
rI   c                   @  s   e Zd ZdS GenericModelN__name__
__module____qualname__r   r   r   r   rK      s   rK   c                   @  s   e Zd ZdS rJ   rL   r   r   r   r   rK      s   c                   @  s   e Zd ZdS rJ   rL   r   r   r   r   rK      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)rQ   r   c                 C  s   d S r   r   )selfrQ   r   r   r   __init__   s    ztyped_cached_property.__init__Nr    r   )instanceownerr   c                 C  s   d S r   r   rT   rV   rW   r   r   r   __get__   s    ztyped_cached_property.__get__r*   r   c                 C  s   d S r   r   rX   r   r   r   rY      s    z	_T | Selfc                 C  s
   t  d S r   )NotImplementedErrorrX   r   r   r   rY      s    r   r?   )rW   namer   c                 C  s   d S r   r   )rT   rW   r[   r   r   r   __set_name__   s    z"typed_cached_property.__set_name__)rV   r   r   c                 C  s   d S r   r   )rT   rV   r   r   r   r   __set__   s    ztyped_cached_property.__set__)N)N)N)	rM   rN   rO   __annotations__rU   r
   rY   r\   r]   r   r   r   r   rP      s   
rP   )cached_property)8
__future__r   typingr   r   r   r   r   r   r	   r
   r   r   Ztyping_extensionsr   ZpydanticZpydantic.fieldsr   _typesr   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.   r2   r5   r7   r9   r:   r;   rA   rF   rI   rK   Zpydantic.genericsZgenericspropertyr_   rP   	functoolsImportErrorr   r   r   r   <module>   sj   (	
