U
    &Jj                  	   @  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"nXe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"mZm!Z! er~d d*lm&Z& nerdZ&nd d*lm&Z& d+d,d
d-d.d/Z'd0dd1d2d3Z(d0d4d1d5d6Z)d0d4d1d7d8Z*d9d4d:d;d<Z+d9d=d:d>d?Z,d@dAd
dd
dBdCdDZ-ddEdFdGdHdIdJdKZ.dd@d@dLdMdNdFdOddddPdQdRdSdTZ/d+d4d
dUdVdWZ0er|G dXdY dYejZ1n:erd dl2ZG dZdY dYej3j1ejZ1nG d[dY dYejZ1ere4Z5G d\d] d]ee Z6nd d^l7m5Z5 e5Z6dS )_    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfLiteralN)	FieldInfo   )IncExStrBytesIntFloat_T_ModelT)boundz1.zdate | StrBytesIntFloatr   )valuereturnc                 C  s   d S N r   r   r   m/var/www/api.dyntland.com/public_html/python_social_comments/venv/lib/python3.8/site-packages/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   )r!   r%   r&   r   r*   r   r)   )
ConfigDictztype[_ModelT]object)modelr   r   c                 C  s"   t rtt| |S | |S d S r   )PYDANTIC_V1r	   r   	parse_objmodel_validate)r-   r   r   r   r   r/   P   s    r/   r   )fieldr   c                 C  s   t r
| jS |  S r   )r.   requiredZis_requiredr1   r   r   r   field_is_requiredW   s    r4   r   c                 C  s,   |   }tr|S ddlm} ||kr(d 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.   Zouter_type_
annotationr3   r   r   r   field_outer_typeh   s    r9   ztype[pydantic.BaseModel])r-   r   c                 C  s   t r
| jS | jS r   )r.   Z
__config__Zmodel_configr-   r   r   r   get_model_confign   s    r;   zdict[str, FieldInfo]c                 C  s   t r
| jS | jS r   )r.   Z
__fields__Zmodel_fieldsr:   r   r   r   get_model_fieldst   s    r<   Fdeep)r-   r>   r   c                C  s   t r| j|dS | j|dS )Nr=   )r.   copy
model_copy)r-   r>   r   r   r   r@   z   s    r@   indentzpydantic.BaseModelz
int | Nonestr)r-   rB   r   c                C  s   t r| j|dS | j|dS )NrA   )r.   jsonZmodel_dump_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 rt| dr*| j||||t r"dn|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    
rQ   c                   @  s   e Zd ZdS GenericModelN__name__
__module____qualname__r   r   r   r   rS      s    rS   c                   @  s   e Zd ZdS rR   rT   r   r   r   r   rS      s    c                   @  s   e Zd ZdS rR   rT   r   r   r   r   rS      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)rY   r   c                 C  s   d S r   r   )selfrY   r   r   r   __init__       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   ra   r   r   r   rb      s    z	_T | Selfc                 C  s
   t  d S r   )NotImplementedErrorra   r   r   r   rb      s    r   rC   )r`   namer   c                 C  s   d S r   r   )r\   r`   rd   r   r   r   __set_name__   r^   z"typed_cached_property.__set_name__)r_   r   r   c                 C  s   d S r   r   )r\   r_   r   r   r   r   __set__   r^   ztyped_cached_property.__set__)N)N)N)	rU   rV   rW   __annotations__r]   r
   rb   re   rf   r   r   r   r   rX      s   
rX   )cached_property)8
__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.typingZpydantic.datetime_parseZ_utilsr+   r/   r4   r7   r9   r;   r<   r@   rE   rM   rQ   rS   Zpydantic.genericsZgenericspropertyrh   rX   	functoolsr   r   r   r   <module>   sh   ($	
