
    U th                     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    a/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/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-s----Ff^aFfFfFf  u  u]abe]f]f  u  u  u
 
	 r   filesc                    d S r    r.   s    r   to_httpx_filesr2   )   s    ),r   r	   r   c                    d S r   r0   r1   s    r   r2   r2   -   s    >Acr   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>6   s&    KKK	Tod++KKKr   c                6    g | ]\  }}|t          |          fS r0   r8   r:   s      r   
<listcomp>z"to_httpx_files.<locals>.<listcomp>8   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   1   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_contentrA   r<   paths     r   r9   r9   ?   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   rE   rF   rH   r<   s    r   rI   rI   M   s7    $$$ /|D!!,,...Kr   c                
   K   d S r   r0   r1   s    r   async_to_httpx_filesrO   S   s      58Sr   c                
   K   d S r   r0   r1   s    r   rO   rO   W   s      JM#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>`   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   rS   r:   s      r   r?   z(async_to_httpx_files.<locals>.<listcomp>b   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   r@   r   rA   r1   s    r   rO   rO   [   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          rC   )r$   r   r   r   anyiorF   rG   rH   r   _async_read_file_contentrA   rJ   s     r   rT   rT   i   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   rW   rF   rH   rM   s    r   rX   rX   w   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.   r4   r   r5   )r<   r   r   r
   )r<   r   r   r   )
__future__r   r   r   rE   typingr   typing_extensionsr   rW   _typesr   r   r	   r
   r   r   r   _utilsr   r   r   r   r$   r-   r2   r9   rI   rO   rT   rX   r0   r   r   <module>r_      s   " " " " " " 				 				        ' ' ' ' ' '                   < ; ; ; ; ; ; ; ; ;F F F F    >B       
 , , , 
 , 
 A A A 
 A   \ \ \ \    
 8 8 8 
 8 
 M M M 
 M   \ \ \ \     r   