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eeef fddZdededeeeeef e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   a/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/mistralai_azure/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,   file_objreturnc                 C   s   | j j}d}d}d}|D ]*}|| }t|t}|du rq|jr&t| |d}q|dkr1t| |d}qt| |}q|dks?|du rCtd|||fS )z@Extract file name, content, and content type from a file object.r   Ncontent_typez invalid multipart/form-data file)r   r   r   r   contentr    
ValueError)r-   file_fields	file_namer0   r/   file_field_name
file_fieldfile_metadatar   r   r   _extract_file_propertiesY   s"   

r7   
media_typerequestc              	   C   s  i }g }t |tstd|jj}t|j}|D ]}|| }t||}t|s(qt|t	}	|	s0q|j
r6|j
n|}
|	jrt |trn|D ]*}t|sIqBt|\}}}|d ura||
d |||ff qB||
d ||ff qBqt|\}}}|d ur||
|||ff q||
||ff q|	jr||
d t||| dff qt |trg }|D ]}t|sq|t| q|||
d < qt|||
< q| ||fS )Nzinvalid request body typez[]zapplication/json)r   r   	TypeErrorr   r   r   r    r   r   r   r   filer   r7   r!   jsonr
   r   )r8   r9   r   filesrequest_fieldsrequest_field_typesr&   fieldr)   field_metadataf_namer-   r3   r0   r/   valuesr+   r   r   r   serialize_multipart_formu   sX   







rD   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   r<   r
   styler,   r   r1   r   r$   r   r:   type)rE   r   data_fieldsdata_field_typesr&   r@   r)   metadatarB   r*   r+   r   r   r   serialize_form_data   s@   





rL   N)__doc__typingr   r   r   r   r   pydanticr   pydantic.fieldsr   serializersr
   rK   r   r   r   rC   r   r   r   boolr,   r7   rD   rL   r   r   r   r   <module>   s6    
B 
C