
    f j0                    0   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dS )0    )annotationsN)overload)	TypeGuard   )	FileTypesFileContentRequestFilesHttpxFileTypesBase64FileInputHttpxFileContentHttpxRequestFiles)
is_tuple_tis_mapping_tis_sequence_tobjobjectreturnTypeGuard[Base64FileInput]c                j    t          | t          j                  pt          | t          j                  S N)
isinstanceioIOBaseosPathLiker   s    aC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\openai/_files.pyis_base64_file_inputr      s%    c29%%EC)E)EE    TypeGuard[FileContent]c                    t          | t                    pHt          | t                    p3t          | t          j                  pt          | t
          j                  S r   )r   bytestupler   r   r   r   r   s    r   is_file_contentr$      sI    3v*S%"8"8vJsBI<V<VvZdehjljuZvZvr   )keyr%   
str | NoneNonec                   t          |           s1|d| dnd| d}t          | dt          |            d          d d S )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-   !   s    3 14f-s----Ff^aFfFfFf  u  u]abe]f]f  u  u  u
 
	 r   filesc                    d S r    r.   s    r   to_httpx_filesr2   )       Cr   r	   r   c                    d S r   r0   r1   s    r   r2   r2   .   r3   r   RequestFiles | NoneHttpxRequestFiles | Nonec                    | d S t          |           rd |                                 D             } n<t          |           rd | D             } n t          dt	          |            d          | S )Nc                4    i | ]\  }}|t          |          S r0   _transform_file.0r%   files      r   
<dictcomp>z"to_httpx_files.<locals>.<dictcomp>8   s&    KKK	Tod++KKKr   c                6    g | ]\  }}|t          |          fS r0   r9   r;   s      r   
<listcomp>z"to_httpx_files.<locals>.<listcomp>:   s)    EEE)#t#t,,-EEEr   zUnexpected file type input z, expected mapping or sequence)r   itemsr   	TypeErrorr+   r1   s    r   r2   r2   3   s     tE cKKU[[]]KKK	u		 cEEuEEEad5kkaaabbbLr   r=   r   r
   c                B   t          |           rKt          | t          j                  r/t	          j        |           }|j        |                                fS | S t          |           r(| d         t          | d                   g| dd          R 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_contentrB   r=   paths     r   r:   r:   A   s    t dBK(( 	2<%%DIt0011$ AQ+DG44@tABBx@@@
Z
[
[[r   r   r   c                    t          | t          j                  r&t          j        |                                           S | S r   )r   r   r   rF   rG   rI   r=   s    r   rJ   rJ   O   s7    $$$ /|D!!,,...Kr   c                
   K   d S r   r0   r1   s    r   async_to_httpx_filesrP   U         Cr   c                
   K   d S r   r0   r1   s    r   rP   rP   Z   rQ   r   c                   K   | d S t          |           r%d |                                 D              d {V } n1t          |           rd | D              d {V } nt          d          | S )Nc                D   K   i | ]\  }}|t          |           d {V S r   _async_transform_filer;   s      r   r>   z(async_to_httpx_files.<locals>.<dictcomp>d   s=      WWWIC1$77777777WWWr   c                F   K   g | ]\  }}|t          |           d {V fS r   rU   r;   s      r   r@   z(async_to_httpx_files.<locals>.<listcomp>f   s@      QQQic4#24888888889QQQr   zFUnexpected file type input {type(files)}, expected mapping or sequence)r   rA   r   rB   r1   s    r   rP   rP   _   s       tE bWWWWWWWWWWW	u		 bQQ5QQQQQQQQQ`aaaLr   c                ^  K   t          |           rQt          | t          j                  r5t	          j        |           }|j        |                                 d {V fS | S t          |           r.| d         t          | d                    d {V g| dd          R S t          d          rD   )r$   r   r   r   anyiorG   rH   rI   r   _async_read_file_contentrB   rK   s     r   rV   rV   m   s      t dBK(( 	8:d##DIT__%6%666666677$ MQ7Q@@@@@@@@L48LLL
Z
[
[[r   c                   K   t          | t          j                  r,t          j        |                                            d {V S | S r   )r   r   r   rY   rG   rI   rN   s    r   rZ   rZ   {   sM      $$$ 3Z%%00222222222Kr   )r   r   r   r   )r   r   r   r    )r   r   r%   r&   r   r'   )r.   r'   r   r'   )r.   r	   r   r   )r.   r5   r   r6   )r=   r   r   r
   )r=   r   r   r   )
__future__r   r   r   rF   typingr   typing_extensionsr   rY   _typesr   r   r	   r
   r   r   r   _utilsr   r   r   r   r$   r-   r2   r:   rJ   rP   rV   rZ   r0   r   r   <module>ra      s3   " " " " " " 				 				        ' ' ' ' ' '                   < ; ; ; ; ; ; ; ; ;F F F F    >B       
   
 
   
   \ \ \ \    
   
 
   
   \ \ \ \     r   