o
    ùT·jÎ  ã                   @  sX   d dl mZ d dlmZmZ ddlmZmZmZm	Z	m
Z
 ddlmZ 		dddd„ZdS )é    )Úannotations)ÚMappingÚcasté   )ÚBodyÚOmitÚNotGivenÚ	FileTypesÚRequestFiles)Úopenapi_dumpsNÚbodyÚobjectÚ
extra_bodyúBody | NoneÚ	encodingsúMapping[str, tuple[str, bool]]Úraw_body_fieldú
str | NoneÚexisting_filesúRequestFiles | NoneÚreturnúGtuple[dict[str, object] | None, RequestFiles | None, bytes | None, str]c                 C  sZ  t | tƒs	tdƒ‚|durt |tƒstdƒ‚ttttf | ƒ}ttttf |p(i ƒ}dd„ i |¥|¥ ¡ D ƒ}|s^|dur^t|ƒ|hkr^|| }t |tƒsQtdƒ‚dd| d¡|| d fS t	t |tƒrh| ¡ n|pkg ƒ}	| ¡ D ]3\}
\}}|
|vr|qq| 
|
¡}|rˆt|ƒ}nt |tƒs•td	|
›d
�ƒ‚| d¡}|	 |
d||ff¡ qq|p¨d|	ddfS )zNPrepare explicitly encoded form fields without flattening their JSON contents.z(Multipart request body must be a mappingNz&Multipart extra_body must be a mappingc                 S  s$   i | ]\}}t |ttfƒs||“qS © )Ú
isinstancer   r   )Ú.0ÚkeyÚvaluer   r   úT/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/openai/_multipart.pyÚ
<dictcomp>   s   $ z$encode_multipart.<locals>.<dictcomp>z*Raw multipart alternative must be a stringzutf-8r   zMultipart field z must be a stringzmultipart/form-data)r   r   Ú	TypeErrorr   Ústrr   ÚitemsÚsetÚencodeÚlistÚpopr   Úappend)r   r   r   r   r   ÚoriginalÚ	overridesÚmergedr   ÚfilesÚnameÚcontent_typeÚas_jsonÚdatar   r   r   Úencode_multipart   s4   

ÿ



r/   )NN)r   r   r   r   r   r   r   r   r   r   r   r   )Ú
__future__r   Útypingr   r   Ú_typesr   r   r   r	   r
   Ú_utils._jsonr   r/   r   r   r   r   Ú<module>   s   û