
    2h                     2   S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SK	r	SSK
JrJrJrJrJrJrJr  SSKJrJrJr  SS jrSS	 jrSS
.SS jjr\SS j5       r\SS j5       rSS jrSS jrSS jr\SS j5       r\SS j5       rSS jrSS jrSS jrg)    )annotationsN)overload)	TypeGuard   )	FileTypesFileContentRequestFilesHttpxFileTypesBase64FileInputHttpxFileContentHttpxRequestFiles)
is_tuple_tis_mapping_tis_sequence_tc                x    [        U [        R                  5      =(       d    [        U [        R                  5      $ N)
isinstanceioIOBaseosPathLikeobjs    E/var/www/auris/envauris/lib/python3.13/site-packages/openai/_files.pyis_base64_file_inputr      s#    c299%EC)EE    c                    [        U [        5      =(       dR    [        U [        5      =(       d;    [        U [        R                  5      =(       d    [        U [
        R                  5      $ r   )r   bytestupler   r   r   r   r   s    r   is_file_contentr       sB    3v*S%"8vJsBII<VvZdehjljujuZvr   )keyc               z    [        U 5      (       d+  Ub  SU S3OSU < S3n[        U S[        U 5       S35      S eg )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'   !   se    314&se1-H]^a]ddeFfh\]abe]f\g  ht  u
	  r   c                    g r    filess    r   to_httpx_filesr,   )   s    ),r   c                    g r   r)   r*   s    r   r,   r,   -   s    >Ar   c                8   U c  g [        U 5      (       a0  U R                  5        VVs0 s H  u  pU[        U5      _M     n nnU $ [        U 5      (       a#  U  VVs/ s H  u  pU[        U5      4PM     n nnU $ [	        S[        U 5       S35      es  snnf s  snnf )NzUnexpected file type input z, expected mapping or sequence)r   items_transform_filer   	TypeErrorr%   r+   r!   files      r   r,   r,   1   s    }E=B[[]K]	od++]K L 
u		?DEu)##t,-uE L 5d5k]B`abb	 LEs   BBc                0   [        U 5      (       aS  [        U [        R                  5      (       a2  [        R
                  " U 5      nUR                  UR                  5       4$ U $ [        U 5      (       a  U S   [        U S   5      /U SS  Q7$ [        S5      e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_contentr1   r3   paths     r   r0   r0   ?   s    tdBKK((<<%DIIt011$Q+DG4@tABx@@
Y
[[r   c                    [        U [        R                  5      (       a$  [        R                  " U 5      R                  5       $ U $ r   )r   r   r   r7   r8   r:   r3   s    r   r;   r;   M   s0    $$$||D!,,..Kr   c                   #    g 7fr   r)   r*   s    r   async_to_httpx_filesrA   S   s     58   c                   #    g 7fr   r)   r*   s    r   rA   rA   W   s     JMrB   c                N  #    U c  g [        U 5      (       a8  U R                  5        VVs0 s H  u  pU[        U5      I S h  vN _M     n nnU $ [        U 5      (       a+  U  VVs/ s H  u  pU[        U5      I S h  vN 4PM     n nnU $ [	        S5      e NSs  snnf  N!s  snnf 7f)NzFUnexpected file type input {type(files)}, expected mapping or sequence)r   r/   _async_transform_filer   r1   r2   s      r   rA   rA   [   s     }EINWIC1$777W L 
u		KPQ5ic#248895Q L `aa	 8W8QsL   (B%BBB
B%$B;B<	BB%BB%BB%c                `  #    [        U 5      (       a[  [        U [        R                  5      (       a:  [        R
                  " U 5      nUR                  UR                  5       I S h  vN 4$ U $ [        U 5      (       a!  U S   [        U S   5      I S h  vN /U SS  Q7$ [        S5      e NC N7fr5   )r    r   r   r   anyior8   r9   r:   r   _async_read_file_contentr1   r<   s     r   rE   rE   i   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                   #    [        U [        R                  5      (       a,  [        R                  " U 5      R                  5       I S h  vN $ U $  N7fr   )r   r   r   rG   r8   r:   r?   s    r   rH   rH   w   s;     $$$ZZ%00222K 3s   AA	A
A)r   objectreturnzTypeGuard[Base64FileInput])r   rJ   rK   zTypeGuard[FileContent])r   rJ   r!   z
str | NonerK   None)r+   rL   rK   rL   )r+   r	   rK   r   )r+   zRequestFiles | NonerK   zHttpxRequestFiles | None)r3   r   rK   r
   )r3   r   rK   r   )
__future__r   r   r   r7   typingr   typing_extensionsr   rG   _typesr   r   r	   r
   r   r   r   _utilsr   r   r   r   r    r'   r,   r0   r;   rA   rE   rH   r)   r   r   <module>rR      s    " 	 	   '    < ;F >B  
 , 
 , 
 A 
 A\ 
 8 
 8 
 M 
 M\r   