o
    i                     @  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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rudhddZdiddZdjddZdkdd Z dld!d"Z!dmd$d%Z"dmd&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#mZm"Z" erd d+lm'Z' nerdZ'nd d+lm'Z' dnd/d0Z(dod3d4Z)dpd6d7Z*dpd8d9Z+dqd;d<Z,drd>d?Z-d@dAdsdCdDZ.ddEdtdJdKZ/G dLdM dMed@dNZ0dd@d@dOdPddQdud\d]Z1dvd_d`Z2erG dadb dbejZ3nerd dl4ZG dcdb dbej5j3ejZ3n	G dddb dbejZ3er9e6Z7G dedf dfee Z8dS d dgl9m7Z7 e7Z8dS )w    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfLiteral	TypedDictN)	FieldInfo   )IncExStrBytesIntFloat_T_ModelT)boundz1.valuedate | StrBytesIntFloatreturnr   c                 C     d S N r   r   r   Z/home/livre-enfant/venv/lib/python3.10/site-packages/google/genai/_interactions/_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_union0   r    r+   c                 C  r   r   r   r&   r   r   r   
get_origin3   r    r,   type_c                 C  r   r   r   r-   r   r   r   is_literal_type6   r    r/   c                 C  r   r   r   r.   r   r   r   is_typeddict9   r    r0   )r'   r+   r,   r0   r/   )r   r"   )r'   r+   r,   r   r0   r"   r/   )
ConfigDictmodeltype[_ModelT]objectc                 C  s   t r
tt| |S | |S r   )PYDANTIC_V1r	   r   	parse_objmodel_validate)r2   r   r   r   r   r6   _   s   
r6   fieldr   c                 C  s   t r| jS |  S r   )r5   requiredis_requiredr8   r   r   r   field_is_requiredf   s   r<   r   c                 C  s,   |   }tr|S ddlm} ||krd S |S )Nr   )PydanticUndefined)get_defaultr5   pydantic_corer=   )r8   r   r=   r   r   r   field_get_defaultl   s   r@   c                 C     t r| jS | jS r   )r5   outer_type_
annotationr;   r   r   r   field_outer_typew      rD   type[pydantic.BaseModel]c                 C  rA   r   )r5   
__config__model_configr2   r   r   r   get_model_config}   rE   rJ   dict[str, FieldInfo]c                 C  rA   r   )r5   
__fields__model_fieldsrI   r   r   r   get_model_fields   rE   rN   FdeeprP   c                C     t r| j|dS | j|dS )NrO   )r5   copy
model_copy)r2   rP   r   r   r   rS         rS   indentpydantic.BaseModelrV   
int | Nonestrc                C  rQ   )NrU   )r5   jsonmodel_dump_json)r2   rV   r   r   r   
model_json   rT   r\   c                   @  s   e Zd ZU ded< dS )_ModelDumpKwargsr*   by_aliasN)__name__
__module____qualname____annotations__r   r   r   r   r]      s   
 r]   )totalTpython)excludeexclude_unsetexclude_defaultswarningsmoder^   re   IncEx | Nonerf   rg   rh   ri   Literal['json', 'python']r^   bool | Nonedict[str, Any]c                C  sb   t rt| dr#i }|d ur||d< | jd||||t rdn|d|S td| j|||t|dS )N
model_dumpr^   T)ri   re   rf   rg   rh   rm   )re   rf   rg   r^   r   )r5   hasattrrn   r	   dictr*   )r2   re   rf   rg   rh   ri   r^   kwargsr   r   r   rn      s&   

	rn   datac                 C  s   t r| |S | |S r   )r5   r6   r7   )r2   rr   r   r   r   model_parse   s   

rs   c                   @     e Zd ZdS GenericModelNr_   r`   ra   r   r   r   r   rv          rv   c                   @  rt   ru   rw   r   r   r   r   rv      rx   c                   @  rt   ru   rw   r   r   r   r   rv      rx   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   )selfr{   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__r4   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$   namerY   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__)r{   rz   r   r}   r   )r   r}   r   r)   r   r   )r   r4   r   r)   r   r   )r   r4   r   r)   r   r   )r   r$   r   rY   r   r}   )r   r4   r   r   r   r}   )	r_   r`   ra   rb   r   r
   r   r   r   r   r   r   r   ry      s   
 

ry   )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*   )r2   r3   r   r4   r   r   )r8   r   r   r*   )r8   r   r   r   )r2   rF   r   r   )r2   rF   r   rK   )r2   r   rP   r*   r   r   )r2   rW   rV   rX   r   rY   )r2   rW   re   rj   rf   r*   rg   r*   rh   r*   ri   rk   r^   rl   r   rm   )r2   r3   rr   r   r   r   ):
__future__r   typingr   r   r   r   r   r   r	   r
   r   r   typing_extensionsr   r   r   pydanticpydantic.fieldsr   _typesr   r   r   	BaseModelr   VERSION
startswithr5   r   r"   r'   r+   r,   r/   r0   pydantic.typingpydantic.datetime_parse_utilsr1   r6   r<   r@   rD   rJ   rN   rS   r\   r]   rn   rs   rv   pydantic.genericsgenericspropertyr   ry   	functoolsr   r   r   r   <module>   sn   (





$







