o
    i                     @   s   d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZ ddlmZmZ d	ed
edededeeee f f
ddZdededeeeeef eeef f fddZdedeeef fddZdS )zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    )AnyDictget_type_hintsListTuple)	BaseModel)	FieldInfo   )marshal_json)FormMetadataMultipartFormMetadatafind_field_metadata)_is_set_val_to_string
field_nameexplodeobj	delimiterformc                 C   s  t |s|S t|trZg }|jj}|D ]6}|| }|jd ur!|jn|}	|	dkr(qt||}
t |
s2q|r<t|
g||	< q||	 | t|
  qt	|dkrX|
|g|| < |S t|trg }| D ] \}}t |snqe|rxt|g||< qe|| | t|  qet	|dkr|
|g|| < |S t|trg }|D ]"}t |sq|r| |vrg || < ||  t| q|t| qt	|dkr|
dd |D g|| < |S t|g|| < |S )N r   c                 S   s   g | ]}t |qS  )str).0itemr   r   _/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/mistralai_gcp/utils/forms.py
<listcomp>R   s    z"_populate_form.<locals>.<listcomp>)r   
isinstancer   	__class__model_fieldsaliasgetattrr   appendlenjoinr   itemsr   )r   r   r   r   r   r$   
obj_fieldsname	obj_fieldobj_field_namevalkeyvaluer   r   r   _populate_form   sZ   

!

r,   
media_typerequestreturnc                 C   s  i }i }t |tstd|jj}t|j}|D ]}|| }t||}t|s(qt|t	}	|	s0q|j
r6|j
n|}
|	jr|jj}d}d }d }|D ]*}|| }t|t	}|d u rWqG|jrat||d }qG|dkrlt||d }qGt||}qG|dksz|d u r~td|d ur|||f||
< q||f||
< q|	jrd t||| df||
< qt |trg }|D ]}t|sq|t| q|||
d < qt|||
< q| ||fS )Nzinvalid request body typer   content_typez invalid multipart/form-data filezapplication/jsonz[])r   r   	TypeErrorr   r   r   r    r   r   r   r   filecontent
ValueErrorjsonr
   r   r!   r   )r-   r.   r   filesrequest_fieldsrequest_field_typesr&   fieldr)   field_metadataf_namefile_fields	file_namer3   r0   file_field_name
file_fieldfile_metadatavaluesr+   r   r   r   serialize_multipart_formY   sb   







rB   datac                 C   s  i }t | tr\| jj}t| j}|D ]G}|| }t| |}t|s"qt|t}|d u r,q|j	d ur4|j	n|}|j
rDt||| g||< q|jdkrSt||j|d| qtd| |S t | trw|  D ]\}	}
t|
rtt|
g||	< qe|S tdt|  d)Nr   ,zInvalid form style for field zInvalid request body type z for form data)r   r   r   r   r   r    r   r   r   r   r5   r
   styler,   r   r4   r   r$   r   r1   type)rC   r   data_fieldsdata_field_typesr&   r9   r)   metadatar;   r*   r+   r   r   r   serialize_form_data   s@   





rJ   N)__doc__typingr   r   r   r   r   pydanticr   pydantic.fieldsr   serializersr
   rI   r   r   r   rA   r   r   r   boolr,   rB   rJ   r   r   r   r   <module>   s4    
B
J