
    OYhf0                       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mZ ddlmZmZmZ dd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Base64FileInputHttpxFileContentHttpxRequestFiles)
is_tuple_tis_mapping_tis_sequence_tc                n    t        | t        j                        xs t        | t        j                        S N)
isinstanceioIOBaseosPathLikeobjs    L/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/openai/_files.pyis_base64_file_inputr      s#    c299%EC)EE    c                    t        | t              xsH t        | t              xs6 t        | t        j                        xs t        | t
        j                        S r   )r   bytestupler   r   r   r   r   s    r   is_file_contentr       sB    3v*S%"8vJsBII<VvZdehjljujuZvr   )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,   3   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_contentr2   r4   paths     r   r1   r1   A   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   r8   r9   r;   r4   s    r   r<   r<   O   s-    $$||D!,,..Kr   c                   K   y wr   r)   r*   s    r   async_to_httpx_filesrB   U   	        c                   K   y wr   r)   r*   s    r   rB   rB   Z   rC   rD   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   r0   _async_transform_filer   r2   r3   s      r   rB   rB   _   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r6   )r    r   r   r   anyior9   r:   r;   r   _async_read_file_contentr2   r=   s     r   rG   rG   m   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   rI   r9   r;   r@   s    r   rJ   rJ   {   s9     $$ZZ%00222K 3s   AAA
A)r   objectreturnzTypeGuard[Base64FileInput])r   rL   rM   zTypeGuard[FileContent])r   rL   r!   z
str | NonerM   None)r+   rN   rM   rN   )r+   r	   rM   r   )r+   zRequestFiles | NonerM   zHttpxRequestFiles | None)r4   r   rM   r
   )r4   r   rM   r   )
__future__r   r   r   r8   typingr   typing_extensionsr   rI   _typesr   r   r	   r
   r   r   r   _utilsr   r   r   r   r    r'   r,   r1   r<   rB   rG   rJ   r)   r   r   <module>rT      s    " 	 	   '    < ;F >B  
 
 
 
\ 
 
 
 
\r   