
    R-j                    @   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j0                        Zej4                  j7                  d      Zerd2dZd3dZd4dZd5dZ d6dZ!d7dZ"d7d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#mZm"Z" erd dlm'Z' nerdZ'nd dlm'Z' d8dZ(d9dZ)d:dZ*d:dZ+d;dZ,d<dZ-ddd=d Z.dd!d>d"Z/ G d# d$ed%      Z0dddd&d'dd(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d?d)Z1d@d*Z2er G d+ d,ej0                        Z3nFer/d dl4Z G d- d,ejj                  jf                  ej0                        Z3n G d. d,ej0                        Z3ere6Z7 G d/ d0ee         Z8yd d1l9m7Z7 e7Z8y)A    )annotations)TYPE_CHECKINGAnyUnionGenericTypeVarCallablecastoverload)datedatetime)SelfLiteral	TypedDictN)	FieldInfo   )IncExStrBytesIntFloat_T_ModelT)boundz1.c                     y N values    p/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/google/genai/_interactions/_compat.py
parse_dater   '           c                     y r   r   r   s    r   parse_datetimer"   *   r   r    c                     y r   r   ts    r   get_argsr&   -   r   r    c                     y r   r   )tps    r   is_unionr)   0   r   r    c                     y r   r   r$   s    r   
get_originr+   3   r   r    c                     y r   r   type_s    r   is_literal_typer/   6   r   r    c                     y r   r   r-   s    r   is_typeddictr1   9   r   r    )r&   r)   r+   r1   r/   )r   r"   )r&   r)   r+   r   r1   r"   r/   )
ConfigDictc                n    t         rt        t        | j                  |            S | j	                  |      S r   )PYDANTIC_V1r
   r   	parse_objmodel_validate)modelr   s     r   r5   r5   _   s,    GU__U344##E**r    c                F    t         r| j                  S | j                         S r   )r4   requiredis_requiredfields    r   field_is_requiredr=   f   s    ~~r    c                N    | j                         }t        r|S ddlm} ||k(  ry |S )Nr   )PydanticUndefined)get_defaultr4   pydantic_corer?   )r<   r   r?   s      r   field_get_defaultrB   l   s,    E/!!Lr    c                >    t         r| j                  S | j                  S r   )r4   outer_type_
annotationr;   s    r   field_outer_typerF   w   s       r    c                >    t         r| j                  S | j                  S r   )r4   
__config__model_configr7   s    r   get_model_configrK   }       r    c                >    t         r| j                  S | j                  S r   )r4   
__fields__model_fieldsrJ   s    r   get_model_fieldsrP      rL   r    Fdeepc               V    t         r| j                  |      S | j                  |      S )NrQ   )r4   copy
model_copy)r7   rR   s     r   rU   rU      s*    zztz$$&&r    indentc               V    t         r| j                  |      S | j                  |      S )NrV   )r4   jsonmodel_dump_json)r7   rW   s     r   
model_jsonr[      s*    zzz((   //r    c                      e Zd ZU ded<   y)_ModelDumpKwargsboolby_aliasN)__name__
__module____qualname____annotations__r   r    r   r]   r]      s    Nr    r]   )totalTpython)excludeexclude_unsetexclude_defaultswarningsmoder_   c                   t         rt        | d      r)i }|||d<    | j                  d||||t         rdn|d|S t        d| j	                  |||t        |                  S )N
model_dumpr_   T)rj   rf   rg   rh   ri   dict[str, Any])rf   rg   rh   r_   r   )r4   hasattrrl   r
   dictr^   )r7   rf   rg   rh   ri   rj   r_   kwargss           r   rl   rl      s     GE<8#%!)F:u 
'-(Th
 
 	
 

=K[fjksft 	 	
 r    c                R    t         r| j                  |      S | j                  |      S r   )r4   r5   r6   )r7   datas     r   model_parsers      s%    t$$%%r    c                      e Zd ZyGenericModelNr`   ra   rb   r   r    r   rv   rv          r    rv   c                      e Zd Zyru   rw   r   r    r   rv   rv      rx   r    c                      e Zd Zyru   rw   r   r    r   rv   rv      rx   r    c                  l    e Zd ZU ded<   ded<   ddZeddd       Zeddd       Zddd	Zdd
ZddZy)typed_cached_propertyCallable[[Any], _T]funcz
str | Noneattrnamec                     y r   r   )selfr~   s     r   __init__ztyped_cached_property.__init__   s    sr    Nc                     y r   r   r   instanceowners      r   __get__ztyped_cached_property.__get__       SVr    c                     y r   r   r   s      r   r   ztyped_cached_property.__get__   r   r    c                    t               r   )NotImplementedErrorr   s      r   r   ztyped_cached_property.__get__   s    %''r    c                     y r   r   )r   r   names      r   __set_name__z"typed_cached_property.__set_name__   s    Sr    c                     y r   r   )r   r   r   s      r   __set__ztyped_cached_property.__set__   s    r    )r~   r}   returnNoner   )r   r   r   type[Any] | Noner   r   )r   objectr   r   r   r   )r   r   r   r   r   z	_T | Self)r   	type[Any]r   strr   r   )r   r   r   r   r   r   )	r`   ra   rb   rc   r   r   r   r   r   r   r    r   r|   r|      s>    !!B	V 
V	V 
V	( 	I 	Dr    r|   )cached_property)r   zdate | StrBytesIntFloatr   r   )r   z!Union[datetime, StrBytesIntFloat]r   r   )r%   r   r   ztuple[Any, ...])r(   r   r   r^   )r%   r   r   r   )r.   r   r   r^   )r7   type[_ModelT]r   r   r   r   )r<   r   r   r^   )r<   r   r   r   )r7   type[pydantic.BaseModel]r   r   )r7   r   r   zdict[str, FieldInfo])r7   r   rR   r^   r   r   )r7   pydantic.BaseModelrW   z
int | Noner   r   )r7   r   rf   zIncEx | Nonerg   r^   rh   r^   ri   r^   rj   zLiteral['json', 'python']r_   zbool | Noner   rm   )r7   r   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
startswithr4   r   r"   r&   r)   r+   r/   r1   pydantic.typingpydantic.datetime_parse_utilsr2   r5   r=   rB   rF   rK   rP   rU   r[   r]   rl   rs   rv   pydantic.genericsgenericspropertyr   r|   	functoolsr   r    r   <module>r      s    # X X X # 6 6  % +T]
)8#5#5
6 ))$/
 	
 	
 	gf	
 	
 	
 1
5+ 05 ' CG 0y  !"&.   	
   $  >& /x))/  S8,,998;M;MS
 	48--3 OD D( =+r    