Ë
    @²Xj�  ã                  óJ  — d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
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mZmZ  e
d«      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!d„Z%d"d„Z&y)#é    )ÚannotationsN)ÚSequenceÚcastÚoverload)ÚTypeVarÚ	TypeGuardé   )Ú	FileTypesÚFileContentÚRequestFilesÚHttpxFileTypesÚBase64FileInputÚHttpxFileContentÚHttpxRequestFiles)Úis_listÚ
is_mappingÚ
is_tuple_tÚis_mapping_tÚis_sequence_tÚ_Tc                ón   — t        | t        j                  «      xs t        | t        j                  «      S ©N)Ú
isinstanceÚioÚIOBaseÚosÚPathLike©Úobjs    úS/var/www/html/content_generation/venv/lib/python3.12/site-packages/openai/_files.pyÚis_base64_file_inputr!      s#   € Ü�cœ2Ÿ9™9Ó%Ò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Òv¼JÀsÌBÏIÉIÓ<VÒvÔZdÐehÔjl×juÑjuÓZvð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°Ð& s e¨1Ñ-ÐH]Ð^aÐ]dÐdeÐFfˆÜØˆhÐ\Ô]aÐbeÓ]fÐ\gð  htð  uó
àð	ð  r"   c                 ó   — y r   © ©Úfiless    r    Úto_httpx_filesr2   +   s   € Ø),r"   c                 ó   — y r   r/   r0   s    r    r2   r2   /   s   € Ø>Ar"   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+   ©r1   r'   Úfiles      r    r2   r2   3   s™   € Ø€}Øä�EÔØ=B¿[¹[¼]ÔK¹]±	°°T�”o dÓ+Ñ+¸]ˆÑKð €Lô 
�uÔ	Ù?DÔE¹u±)°#°t�#” tÓ,Ò-¸uˆÑEð €Lô Ð5´d¸5³k°]Ð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_contentr8   ©r:   Úpaths     r    r7   r7   A   sy   € Ü�tÔÜ�dœBŸK™KÔ(Ü—<‘< Ó%ˆDØ—I‘I˜tŸ™Ó0Ð1Ð1àˆä�$ÔØ�Q‘Ô*¨4°©7Ó3Ð?°d¸1¸2°hÑ?Ð?ä
ÐYÓ
[Ð[r"   c                ó€   — t        | t        j                  «      r#t        j                  | «      j                  «       S | S r   )r   r   r   r>   r?   rA   ©r:   s    r    rB   rB   O   s-   € Ü�$œŸ™Ô$Ü�|‰|˜DÓ!×,Ñ,Ó.Ð.Ø€Kr"   c              ƒ  ó   K  — y ­wr   r/   r0   s    r    Úasync_to_httpx_filesrH   U   s	   è ø€ Ø58ùó   ‚c              ƒ  ó   K  — y ­wr   r/   r0   s    r    rH   rH   Y   s	   è ø€ ØJMùrI   c              ƒ  óJ  K  — | €y t        | «      r6| j                  «       D ��ci c]  \  }}|t        |«      ƒ d {  –—† “Œ } }}| S t        | «      r)| D ��cg c]  \  }}|t        |«      ƒ d {  –—† f‘Œ } }}| S t	        dt        | «      › d�«      ‚7 ŒWc c}}w 7 Œ,c c}}w ­wr5   )r   r6   Ú_async_transform_filer   r8   r+   r9   s      r    rH   rH   ]   sª   è ø€ Ø€}Øä�EÔØINÏÉÌÔWÉ¹I¸CÀ�Ô1°$Ó7×7Ñ7ÈˆÑWð €Lô 
�uÔ	ÙKPÔQÉ5¹i¸cÀ4�#Ô2°4Ó8×8Ò9È5ˆÑQð €Lô Ð5´d¸5³k°]ÐB`ÐaÓbÐbð	 8úÓWà8úÓQùsJ   ‚"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r<   )r&   r   r   r   Úanyior?   r@   rA   r   Úasync_read_file_contentr8   rC   s     r    rL   rL   k   s�   è ø€ Ü�tÔÜ�dœBŸK™KÔ(Ü—:‘:˜dÓ#ˆDØ—I‘I T§_¡_Ó%6×6Ð7Ð7àˆä�$ÔØ�Q‘Ô6°t¸A±wÓ?×?ÐKÀ$ÀqÀrÀ(ÑKÐKä
ÐYÓ
[Ð[ð  7øð
 @ú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   rN   r?   rA   rF   s    r    rO   rO   y   s9   è ø€ Ü�$œŸ™Ô$Ü—Z‘Z Ó%×0Ñ0Ó2×2Ð2à€Kð 3ús   ‚AAÁA
ÁAc                ó   — t        | |d«      S )aP  Copy only the containers along the given paths.

    Used to guard against mutation by extract_files without copying the entire structure.
    Only dicts and lists that lie on a path are copied; everything else
    is returned by reference.

    For example, given paths=[["foo", "files", "file"]] and the structure:
        {
            "foo": {
                "bar": {"baz": {}},
                "files": {"file": <content>}
            }
        }
    The root dict, "foo", and "files" are copied (they lie on the path).
    "bar" and "baz" are returned by reference (off the path).
    r   )Ú_deepcopy_with_paths)ÚitemÚpathss     r    Údeepcopy_with_pathsrU   €   s   € ô"    e¨QÓ/Ð/r"   c                ó4  — |s| S t        | «      rŽi }|D ]5  }|t        |«      k  sŒ|j                  ||   g «      j                  |«       Œ7 |s| S t	        | «      }|j                  «       D ]   \  }}||v sŒt        ||   ||dz   «      ||<   Œ" t        t        |«      S t        | «      re|D �cg c]  }|t        |«      k  sŒ||   dk(  sŒ|‘Œ }}|st        t        | «      S t        t        | D �	cg c]  }	t        |	||dz   «      ‘Œ c}	«      S | S c c}w c c}	w )Nr	   z<array>)
r   ÚlenÚ
setdefaultÚappendÚdictr6   rR   r   r   r   )
rS   rT   ÚindexÚkey_to_pathsrD   Úresultr'   ÚsubpathsÚarray_pathsÚentrys
             r    rR   rR   ”   s)  € ÙØˆÜ�$ÔØ79ˆÛˆDØ”s˜4“yÓ Ø×'Ñ'¨¨U©°RÓ8×?Ñ?ÀÕEð ñ
 ØˆKä�d“ˆØ)×/Ñ/Ö1‰MˆC�Ø�fŠ}Ü2°6¸#±;ÀÈ%ÐRSÉ)ÓT��s’ð 2ô ”B˜ÓÐÜˆt„}Ù(-Ó`© °¼¸T»Ó1BÀtÈEÁ{ÐV_ÓG_’t¨ˆÐ`ñ Üœ˜D“>Ð!Ü”BÑZ^Ó_ÑZ^ÐQVÔ-¨e°[À%È!Á)ÕLÐZ^Ñ_Ó`Ð`Ø€Kùò aùò
 `s   Â-DÃDÃ
DÃ0D
)r   ÚobjectÚreturnzTypeGuard[Base64FileInput])r   ra   rb   zTypeGuard[FileContent])r   ra   r'   z
str | Nonerb   ÚNone)r1   rc   rb   rc   )r1   r   rb   r   )r1   zRequestFiles | Nonerb   zHttpxRequestFiles | None)r:   r
   rb   r   )r:   r   rb   r   )rS   r   rT   úSequence[Sequence[str]]rb   r   )rS   r   rT   rd   r[   Úintrb   r   )'Ú
__future__r   r   r   r>   Útypingr   r   r   Útyping_extensionsr   r   rN   Ú_typesr
   r   r   r   r   r   r   Ú_utilsr   r   r   r   r   r   r!   r&   r-   r2   r7   rB   rH   rL   rO   rU   rR   r/   r"   r    Ú<module>rk      s¾   ðÝ "ã 	Û 	Û ß +Ñ +ß 0ã ÷÷ ñ ÷ QÕ PáˆTƒ]€óFóð >Bõ ð 
Ú ,ó 
Ø ,ð 
Ú Aó 
Ø Aóó\óð 
Ú 8ó 
Ø 8ð 
Ú Mó 
Ø Móó\óó0ô(r"   