
    Ii0                    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    3/venv/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,   )       r   c                    g r   r)   r*   s    r   r,   r,   .   r-   r   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,   3   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_contentr2   r4   paths     r   r1   r1   A   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   r8   r9   r;   r4   s    r   r<   r<   O   s0    $$$||D!,,..Kr   c                   #    g 7fr   r)   r*   s    r   async_to_httpx_filesrB   U           c                   #    g 7fr   r)   r*   s    r   rB   rB   Z   rC   rD   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   r0   _async_transform_filer   r2   r3   s      r   rB   rB   _   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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                   #    [        U [        R                  5      (       a,  [        R                  " U 5      R                  5       I S h  vN $ U $  N7fr   )r   r   r   rI   r9   r;   r@   s    r   rJ   rJ   {   s;     $$$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   