o
    pkj0                  	   @   s  d Z ddlmZ ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZ ddlZddlmZ ddlZddlmZmZ ddlmZ dd	lmZmZmZmZ d
efddZdd Zd
efddZdd Zd
efddZ dd Z!dd Z"dedefddZ#dSdededefdd Z$d!Z%dTd"eded#e&defd$d%Z'd"eded&e&defd'd(Z(d"e
ded&e&defd)d*Z)ded&e&defd+d,Z*d-d. Z+d/d0 Z,d1e-defd2d3Z.d4ej/de0fd5d6Z1d4ej/de0fd7d8Z2d4ej/de3fd9d:Z4d4ej/de3fd;d<Z5d=ededefd>d?Z6d=ededefd@dAZ7dedefdBdCZ8dDedefdEdFZ9dedefdGdHZ:dedefdIdJZ;dedefdKdLZ<d=edefdMdNZ=ej>dOe0deedPf fdQdRZ?dS )UzACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    )DecimalN)AnyDictIterableListMappingTupleUnionget_args)
get_origin)
ConfigDictcreate_model)	from_json   )	BaseModelNullableOptionalNullableUnsetas_strc                        fdd}|S )Nc                    s@   | d u rd S t | tr| S t | tstd rt| S t| S )NzExpected Decimal object)
isinstancer   r   
ValueErrorstrfloatdr    b/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/google/genai/_gaos/utils/serializers.py	serialize#   s   

z$serialize_decimal.<locals>.serializer   r   r   r   r   r   serialize_decimal"      r!   c                 C   sB   | d u rd S t | ttfr| S t | tttfstdtt| S )NzExpected string, int or float)r   r   r   r   intr   r   r   r   r   r   validate_decimal1   s   r$   c                    r   )Nc                    <   | d u rd S t | tr| S t | tstd rt| S | S )NzExpected float)r   r   r   r   r   fr   r   r   r   ?      

z"serialize_float.<locals>.serializer   r    r   r   r   serialize_float>   r"   r)   c                 C   8   | d u rd S t | ttfr| S t | tstdt| S NzExpected string)r   r   r   r   r   r&   r   r   r   validate_floatM      
r,   c                    r   )Nc                    r%   )NzExpected int)r   r   r#   r   r   )ir   r   r   r   [   r(   z serialize_int.<locals>.serializer   r    r   r   r   serialize_intZ   r"   r/   c                 C   r*   r+   )r   r#   r   r   r   )br   r   r   validate_inti   r-   r1   c                    r   )Nc                    s&   | d u rd S  | krt d  | S )Nz	Expected )r   )cvr   r   validatew   s
   z validate_const.<locals>.validater   )r4   r5   r   r3   r   validate_constv   s   	r6   typreturnc                 C   s   t t| |ddS )NFcoerce_iterables)	unmarshalr   )rawr7   r   r   r   unmarshal_json   s   r=   Tr:   c                 C   s8   |rt | |} td|dftdddd}|| d}|jS )NUnmarshaller.Tpopulate_by_namearbitrary_types_allowedbody
__config__rC   )_coerce_iterables_for_typer   r   rC   )valr7   r:   unmarshallermr   r   r   r;      s   


r;   @   value_depthc                 C   sN   zt | |ddW S  ty&   z	t| ||W  Y S  ty%   |  Y  Y S w w )NTr9   )r;   	Exception_construct_lenient)rK   r7   rL   r   r   r   construct_unvalidated   s   rO   depthc           	         s   t kr| S | d u rd S t|}t|}t|r(t|}|r&t| |d  S | S t|radd t|D }d }|D ]}z	t| | W   S  tyX } z|}W Y d }~q9d }~ww |d ur_|| S t|rt	| t
svtd|dt| t|rt|d nt fdd| D S t|rt	| tstd|dt| tt|dkrt|d nt fd	d
|  D S t|rt	| tstd|dt| t| | S | S )Nr   c                 S   s   g | ]
}|t d ur|qS Ntype.0argr   r   r   
<listcomp>       z&_construct_lenient.<locals>.<listcomp>zexpected list for z, got c                    s   g | ]
}t | d  qS    rO   rU   item)rP   	item_typer   r   rW      rX   zexpected mapping for rZ   c                    s"   i | ]\}}|t | d  qS rY   r[   )rU   keyr]   )rP   
value_typer   r   
<dictcomp>   s    z&_construct_lenient.<locals>.<dictcomp>) _CONSTRUCT_UNVALIDATED_MAX_DEPTH_resolve_type_aliasr   _is_annotated_typer
   rN   is_unionrM   _is_list_typer   list	TypeErrorrS   r   _is_mapping_typer   lenitems_is_pydantic_model_type_construct_model_lenient)	rK   r7   rP   originargsvariantslast_errvarianter   )rP   r^   r`   r   rN      sP   

 
rN   c                 C   s   i }t  }|j D ]H\}}d }|jd ur|j| v r|j}n|| v r$|}| }|d ur>|| t| | ||d ||< q
| rJt||||< q
|j	dd||< q
|  D ]\}	}
|	|vrg|	|vrg|
||	< qW|j
di |S )NrZ   T)call_default_factoryr   )setmodel_fieldsrk   aliasrebuild_annotationaddrO   is_required_default_for_requiredget_defaultmodel_construct)rK   r7   rP   fieldsconsumednamefieldwire_key
annotationr_   r]   r   r   r   rm      s(   
rm   c              	   C   s   t | } t| }t|rt| }|rt|d |S d S t|rCtd t| v r)d S t| D ]}zt||W   S  ty@   Y q-w d S |tkrSt	| rSt
i | |d S d S )Nr   rZ   )rc   r   rd   r
   r{   re   rS   rM   rb   rl   rm   )r7   rP   rn   ro   rr   r   r   r   r{      s$   r{   c                 C   sr   t |r
| d u r
dS td|dftdddd}|| d}|jdddd	}t|d
kr,dS tj|tt| ddS )Nnull
Marshaller.Tr?   rB   rE   json)by_aliasmodeexclude_noner    ),:)
separators)	is_nullabler   r   
model_dumprj   r   dumpsnextiter)rG   r7   
marshallerrI   r   r   r   r   marshal_json  s   

r   c                 C   sh   t | }|tu s|tu rdS |tustd t| vrdS t| D ]}t |tu s.t |tu r1 dS q dS )NTF)r   r   r   r	   rS   r
   )r   rn   rV   r   r   r   r     s   r   objc                       t  fddtdD S )zX
    Returns True if the given object is a typing.Union or typing_extensions.Union.
    c                 3       | ]} |u V  qd S rQ   r   rU   
typing_objr   r   r   	<genexpr>.  s    
zis_union.<locals>.<genexpr>r	   any_get_typing_objects_by_name_ofr   r   r   r   re   *  s   re   streamc                 C   s   d |  S )Nr   )join	iter_textr   r   r   r   stream_to_text3  s   r   c                    s    d dd |  2 I d H S )Nr   c                    s   g | z3 d H W }|q6 S rQ   r   )rU   chunkr   r   r   rW   8  s    z(stream_to_text_async.<locals>.<listcomp>)r   
aiter_textr   r   r   r   stream_to_text_async7  s   r   c                 C   s   | j S rQ   )contentr   r   r   r   stream_to_bytes;  s   r   c                    s   |   I d H S rQ   )areadr   r   r   r   stream_to_bytes_async?  s   r   datac                 C   s   t | s	t| |S t| |S rQ   )_contains_pydantic_modelr;   rF   )r   r7   r   r   r   get_pydantic_modelC  s   

r   c                    s  | d u st | ttfr| S t|}t|}t|r(t|}|r&t| |d S | S t|rGdd t|D D ]}t| |}|| urD|  S q5| S t	|rrt|rUt|d nt
 t | ttttfrb| S t | trp fdd| D S | S t|rtt|dkrt|d nt
t | trfdd|  D S | S t|rt | trd }|j D ]8\}}|j}||jfD ]+}	|	d ur|	| v r|d u r| |	 n||	 }
t|
|}||
ur|d u rt| }|||	< qq|d ur|S | S | S )	Nr   c                 s   s     | ]}|t d ur|V  qd S rQ   rR   rT   r   r   r   r   V  s    z-_coerce_iterables_for_type.<locals>.<genexpr>c                    s   g | ]}t | qS r   rF   r\   )r^   r   r   rW   a  s    z._coerce_iterables_for_type.<locals>.<listcomp>rZ   c                    s   i | ]
\}}|t | qS r   r   )rU   r_   rK   )r`   r   r   ra   g  s    
z._coerce_iterables_for_type.<locals>.<dictcomp>)r   r   r   rc   r   rd   r
   rF   re   rf   r   r   bytes	bytearrayr   r   ri   rj   rk   rl   rv   r   rw   dict)r   r7   rn   ro   rV   coerced
field_namer   
field_typer_   rK   coerced_valuer   )r^   r`   r   rF   J  sX   

 


rF   c                 C   s   t | d| S )N	__value__)getattrr7   r   r   r   rc   ~  s   rc   rn   c                    r   )Nc                 3   r   rQ   r   r   rn   r   r   r     s
    
z%_is_annotated_type.<locals>.<genexpr>	Annotatedr   r   r   r   r   rd     s   rd   c                 C   s   t | } | tu pt| tu S rQ   )rc   rg   r   r   r   r   r   rf     s   rf   c                 C   s<   t | } t| }ttttf }| tttfv p|tt|fv S rQ   )rc   r   r   r   r   r   )r7   rn   mapping_originr   r   r   ri     s   ri   c                 C   s   t | to	t| tS rQ   )r   rS   
issubclassr   r   r   r   r   rl     s   rl   c                 C   sN   t | trdS t | trtdd | D S t | tr%tdd |  D S dS )NTc                 s       | ]}t |V  qd S rQ   r   r\   r   r   r   r         z+_contains_pydantic_model.<locals>.<genexpr>c                 s   r   rQ   r   )rU   rK   r   r   r   r     r   F)r   r   r   r   r   values)r   r   r   r   r     s   


r   r   .c                    s0   t  fddttfD }|std |S )z
    Get typing objects by name from typing and typing_extensions.
    Reference: https://typing-extensions.readthedocs.io/en/latest/#runtime-use-of-types
    c                 3   s$    | ]}t | rt| V  qd S rQ   )hasattrr   )rU   moduler   r   r   r     s    
z1_get_typing_objects_by_name_of.<locals>.<genexpr>z:Neither typing nor typing_extensions has an object called )tupletypingtyping_extensionsr   )r   resultr   r   r   r     s   r   )T)r   )@__doc__decimalr   	functoolsr   r   r   r   r   r   r   r   r	   r
   r   r   httpxpydanticr   r   pydantic_corer   types.basemodelr   r   r   r   boolr!   r$   r)   r,   r/   r1   r6   r=   r;   rb   r#   rO   rN   rm   r{   r   r   objectre   Responser   r   r   r   r   r   r   rF   rc   rd   rf   ri   rl   r   cacher   r   r   r   r   <module>   sV   (
2	4 