
    +h                    
   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	ddl
mZmZmZmZmZmZ ddlmZmZmZ ddZdd	dd
Zedd       Zedd       ZddZddZddZedd       Zedd       ZddZddZddZy)    )annotationsN)overload)	TypeGuard   )	FileTypesFileContentRequestFilesHttpxFileTypesHttpxFileContentHttpxRequestFiles)
is_tuple_tis_mapping_tis_sequence_tc                    t        | t              xsH t        | t              xs6 t        | t        j                        xs t        | t
        j                        S N)
isinstancebytestupleioIOBaseosPathLike)objs    @/var/www/html/venv/lib/python3.12/site-packages/openai/_files.pyis_file_contentr      sB    3v*S%"8vJsBII<VvZdehjljujuZv    )keyc               l    t        |       s)|d| dnd| d}t        | dt        |        d      d y )NzExpected entry at ``zExpected file input `zF to be bytes, an io.IOBase instance, PathLike or a tuple but received zL instead. See https://github.com/openai/openai-python/tree/main#file-uploads)r   RuntimeErrortype)r   r   prefixs      r   assert_is_file_contentr#      sb    314&se1-H]^a]ddeFfh\]abe]f\g  ht  u
	  r   c                     y r    filess    r   to_httpx_filesr(   $       r   c                     y r   r%   r&   s    r   r(   r(   )   r)   r   c                   | y t        |       r.| j                         D ci c]  \  }}|t        |       } }}| S t        |       r!| D cg c]  \  }}|t        |      f } }}| S t	        dt        |        d      c c}}w c c}}w )NzUnexpected file type input z, expected mapping or sequence)r   items_transform_filer   	TypeErrorr!   r'   r   files      r   r(   r(   .   s    }E=B[[]K	Tod++KK L 
u	?DE)#t#t,-EE L 5d5k]B`abb	 LEs   BBc                   t        |       rMt        | t        j                        r1t	        j
                  |       }|j                  |j                         fS | S t        |       r| d   t        | d         g| dd  S t        d      Nr   r      zCExpected file types input to be a FileContent type or to be a tuple)r   r   r   r   pathlibPathname
read_bytesr   _read_file_contentr.   r0   paths     r   r-   r-   <   sy    tdBKK(<<%DIIt011$Q+DG4@tABx@@
Y
[[r   c                    t        | t        j                        r#t        j                  |       j                         S | S r   )r   r   r   r4   r5   r7   r0   s    r   r8   r8   J   s-    $$||D!,,..Kr   c                   K   y wr   r%   r&   s    r   async_to_httpx_filesr>   P   	        c                   K   y wr   r%   r&   s    r   r>   r>   U   r?   r@   c                0  K   | y t        |       r6| j                         D ci c]  \  }}|t        |       d {    } }}| S t        |       r)| D cg c]  \  }}|t        |       d {   f } }}| S t	        d      7 Jc c}}w 7 c c}}w w)NzFUnexpected file type input {type(files)}, expected mapping or sequence)r   r,   _async_transform_filer   r.   r/   s      r   r>   r>   Z   s     }EINWIC1$777WW L 
u	KPQic4#24889QQ L `aa	 8W8QsJ   "BBBBBB.B/B6BBBBBc                @  K   t        |       rUt        | t        j                        r9t	        j
                  |       }|j                  |j                          d {   fS | S t        |       r!| d   t        | d          d {   g| dd  S t        d      7 >7 wr2   )r   r   r   r   anyior5   r6   r7   r   _async_read_file_contentr.   r9   s     r   rC   rC   h   s     tdBKK(::d#DIIT__%6677$Q7Q@@L48LL
Y
[[  7
 As$   ABB'BBBBc                   K   t        | t        j                        r+t        j                  |       j                          d {   S | S 7 wr   )r   r   r   rE   r5   r7   r<   s    r   rF   rF   v   s9     $$ZZ%00222K 3s   AAA
A)r   objectreturnzTypeGuard[FileContent])r   rH   r   z
str | NonerI   None)r'   rJ   rI   rJ   )r'   r	   rI   r   )r'   zRequestFiles | NonerI   zHttpxRequestFiles | None)r0   r   rI   r
   )r0   r   rI   r   )
__future__r   r   r   r4   typingr   typing_extensionsr   rE   _typesr   r   r	   r
   r   r   _utilsr   r   r   r   r#   r(   r-   r8   r>   rC   rF   r%   r   r   <module>rP      s    " 	 	   '   < ; >B  
 
 
 
\ 
 
 
 
\r   