Ë
    uPêjÚ*  ã                   óˆ   — d dl mZ d dlmZmZmZ d dlZd dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dl­ dd	lmZ  G d
„ de«      Zy)é    )Ú	Coroutine)ÚAnyÚFinalÚcastN)ÚAsyncAzureOpenAIÚAsyncOpenAIÚAzureOpenAIÚOpenAI)ÚFileDeleted)Úverbose_logger)Ú*é   )ÚBaseAzureLLMc                   óÔ  ‡ — e Zd ZdZdˆ fd„Zededeee	f   fd„«       Z
dedeez  defd„Z	 	 dd	eded
edz  dedz  dedz  deej$                  z  dedz  deez  ez  ez  dz  deeef   dz  deeeeef   z  fd„Zdedeez  defd„Z	 	 	 d d	eded
edz  dedz  deej$                  z  dedz  dedz  deez  ez  ez  dz  deeef   dz  deeeeef   z  fd„Zdedeez  defd„Z	 	 	 d d	eded
edz  dedz  deej$                  z  dedz  dedz  deez  ez  ez  dz  deeef   dz  fd„Zdedeez  de fd„Z!	 	 	 	 d!d	eded
edz  dedz  deej$                  z  dedz  dedz  dedz  deez  ez  ez  dz  deeef   dz  fd„Z"	 d"deez  dedz  fd„Z#	 	 	 	 d!d	ed
edz  dedz  deej$                  z  dedz  dedz  dedz  deez  ez  ez  dz  deeef   dz  fd„Z$ˆ xZ%S )#ÚAzureOpenAIFilesAPIz®
    AzureOpenAI methods to support for batches
    - create_file()
    - retrieve_file()
    - list_files()
    - delete_file()
    - file_content()
    - update_file()
    ÚreturnNc                 ó"   •— t         ‰| �  «        y ©N)ÚsuperÚ__init__)ÚselfÚ	__class__s    €úe/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/azure/files/handler.pyr   zAzureOpenAIFilesAPI.__init__   s   ø€ Ü‰ÑÕó    Úcreate_file_datac                 ób   — t        | «      }|j                  d«      €|j                  dd«       |S )zá
        Prepare create_file_data for OpenAI SDK.

        Removes expires_after if None to match SDK's Omit pattern.
        SDK expects file_create_params.ExpiresAfter | Omit, but FileExpiresAfter works at runtime.
        Úexpires_afterN)ÚdictÚgetÚpop)r   Údatas     r   Ú_prepare_create_file_dataz-AzureOpenAIFilesAPI._prepare_create_file_data   s1   € ô Ð+Ó,ˆØ�8‰8�OÓ$Ð,Ø�H‰H�_ dÔ+Øˆr   Úopenai_clientc              ƒ   ó  K  — t        j                  d|«        |j                  j                  di | j	                  |«      ¤Žƒ d {  –—† }t        j                  d|«       t
        j                  |j                  «       «      S 7 Œ=­w)Nzcreate_file_data=%szcreate_file_response=%s© )r   ÚdebugÚfilesÚcreater"   ÚOpenAIFileObjectÚmodel_validateÚ
model_dump)r   r   r#   Úresponses       r   Úacreate_filez AzureOpenAIFilesAPI.acreate_file+   su   è ø€ ô
 	×ÑÐ2Ð4DÔEØ3˜×,Ñ,×3Ñ3Ñg°d×6TÑ6TÐUeÓ6fÑg×gˆÜ×ÑÐ6¸ÔAÜ×.Ñ.¨x×/BÑ/BÓ/DÓEÐEð hús   ‚ABÁBÁ>BÚ	_is_asyncÚapi_baseÚapi_keyÚapi_versionÚtimeoutÚmax_retriesÚclientÚlitellm_paramsc
                 óˆ  — | j                  |	xs i |||||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S  t        t        t        z  |
«      j                  j                  di | j                  |«      ¤Ž}t        j                  |j                  «       «      S )N©r5   r0   r/   r1   r4   r.   úoAzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment.TúkAzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client.)r   r#   r%   )Úget_azure_openai_clientÚ
ValueErrorÚ
isinstancer   r   r-   r   r	   r
   r'   r(   r"   r)   r*   r+   )r   r.   r   r/   r0   r1   r2   r3   r4   r5   r#   r,   s               r   Úcreate_filezAzureOpenAIFilesAPI.create_file5   së   € ð W[×VrÑVrØ)Ò/¨RØØØ#ØØð Wsó W
ˆð Ð Üð Bóð ð ˜ÑÜ˜mÔ.>ÄÐ-LÔMÜ ð Bóð ð ×$Ñ$Ð6FÐVcÐ$ÓdÐdØPœ$œ{¬VÑ3°]ÓC×IÑI×PÑPñ 
Ø×,Ñ,Ð-=Ó>ñ
ˆô  ×.Ñ.¨x×/BÑ/BÓ/DÓEÐEr   Úfile_content_requestc              ƒ   ó‚   K  —  |j                   j                  di |¤Žƒ d {  –—† }t        |j                  ¬«      S 7 Œ­w)N©r,   r%   )r'   ÚcontentÚHttpxBinaryResponseContentr,   )r   r>   r#   r,   s       r   Úafile_contentz!AzureOpenAIFilesAPI.afile_contentY   s>   è ø€ ð
 !< × 3Ñ 3× ;Ñ ;Ñ SÐ>RÑ S×SˆÜ)°8×3DÑ3DÔEÐEð Tús   ‚ ?¢=£?c
                 óP  — | j                  |	xs i |||||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S  t        t        t        z  |
«      j                  j                  di |¤Ž}t        |j                  ¬«      S )Nr7   r8   Tr9   )r>   r#   r@   r%   )r:   r;   r<   r   r   rC   r   r	   r
   r'   rA   rB   r,   )r   r.   r>   r/   r0   r2   r3   r1   r4   r5   r#   r,   s               r   Úfile_contentz AzureOpenAIFilesAPI.file_contenta   sÙ   € ð W[×VrÑVrØ)Ò/¨RØØØ#ØØð Wsó W
ˆð Ð Üð Bóð ð ˜ÑÜ˜mÔ.>ÄÐ-LÔMÜ ð Bóð ð ×%Ñ%Ø%9Ø+ð &ó ð ð Rœ$œ{¬VÑ3°]ÓC×IÑI×QÑQÑiÐThÑiˆä)°8×3DÑ3DÔEÐEr   Úfile_idc              ƒ   óZ   K  — |j                   j                  |¬«      ƒ d {  –—† }|S 7 Œ­w)N©rF   )r'   Úretrieve©r   rF   r#   r,   s       r   Úaretrieve_filez"AzureOpenAIFilesAPI.aretrieve_file‡   s/   è ø€ ð
 !.× 3Ñ 3× <Ñ <ÀWÐ <Ó M×MˆØˆð Nús   ‚ +¢)£+c
                 óþ   — | j                  |	xs i |||||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S |
j                  j                  |¬«      }|S )Nr7   r8   Tr9   ©rF   r#   rH   )r:   r;   r<   r   r   rK   r'   rI   )r   r.   rF   r/   r0   r2   r3   r1   r4   r5   r#   r,   s               r   Úretrieve_filez!AzureOpenAIFilesAPI.retrieve_file�   s½   € ð W[×VrÑVrØ)Ò/¨RØØØ#ØØð Wsó W
ˆð Ð Üð Bóð ð ˜ÑÜ˜mÔ.>ÄÐ-LÔMÜ ð Bóð ð ×&Ñ&ØØ+ð 'ó ð ð (×-Ñ-×6Ñ6¸wÐ6ÓGˆàˆr   c              ƒ   ó–   K  — |j                   j                  |¬«      ƒ d {  –—† }t        |t        «      st        |dd¬«      S |S 7 Œ$­w)NrH   TÚfile©ÚidÚdeletedÚobject)r'   Údeleter<   r   rJ   s       r   Úadelete_filez AzureOpenAIFilesAPI.adelete_fileµ   sH   è ø€ ð
 !.× 3Ñ 3× :Ñ :À7Ð :Ó K×Kˆä˜(¤KÔ0Ü '°4ÀÔGÐGØˆð	 Lús   ‚ A	¢A£%A	Úorganizationc                 ó:  — | j                  |
xs i ||||	|¬«      }|€t        d«      ‚|du r4t        |t        t        f«      st        d«      ‚| j                  ||¬«      S |j                  j                  |¬«      }t        |t        «      st        |dd¬«      S |S )	Nr7   r8   Tr9   rM   rH   rP   rQ   )	r:   r;   r<   r   r   rV   r'   rU   r   )r   r.   rF   r/   r0   r2   r3   rW   r1   r4   r5   r#   r,   s                r   Údelete_filezAzureOpenAIFilesAPI.delete_fileÀ   sÖ   € ð W[×VrÑVrØ)Ò/¨RØØØ#ØØð Wsó W
ˆð Ð Üð Bóð ð ˜ÑÜ˜mÔ.>ÄÐ-LÔMÜ ð Bóð ð ×$Ñ$ØØ+ð %ó ð ð (×-Ñ-×4Ñ4¸WÐ4ÓEˆä˜(¤KÔ0Ü '°4ÀÔGÐGàˆr   Úpurposec              ƒ   óÆ   K  — t        |t        «      r&|j                  j                  |¬«      ƒ d {  –—† }|S |j                  j                  «       ƒ d {  –—† }|S 7 Œ*7 Œ­w)N©rZ   )r<   Ústrr'   Úlist)r   r#   rZ   r,   s       r   Úalist_fileszAzureOpenAIFilesAPI.alist_filesê   s]   è ø€ ô
 �gœsÔ#Ø*×0Ñ0×5Ñ5¸gÐ5ÓF×FˆHð ˆð +×0Ñ0×5Ñ5Ó7×7ˆHØˆð Gøà7ús!   ‚0A!²A³#A!ÁAÁA!ÁA!c
                 óV  — | j                  |	xs i |||||¬«      }
|
€t        d«      ‚|du r4t        |
t        t        f«      st        d«      ‚| j                  ||
¬«      S t        |t        «      r|
j                  j                  |¬«      }|S |
j                  j                  «       }|S )Nr7   r8   Tr9   )rZ   r#   r\   )	r:   r;   r<   r   r   r_   r]   r'   r^   )r   r.   r/   r0   r2   r3   rZ   r1   r4   r5   r#   r,   s               r   Ú
list_fileszAzureOpenAIFilesAPI.list_filesõ   sä   € ð W[×VrÑVrØ)Ò/¨RØØØ#ØØð Wsó W
ˆð Ð Üð Bóð ð ˜ÑÜ˜mÔ.>ÄÐ-LÔMÜ ð Bóð ð ×#Ñ#ØØ+ð $ó ð ô
 �gœsÔ#Ø$×*Ñ*×/Ñ/¸Ð/Ó@ˆHð ˆð %×*Ñ*×/Ñ/Ó1ˆHàˆr   )r   N)NN)NNN)NNNNr   )&Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstaticmethodÚCreateFileRequestr   r]   r   r"   r   r   r)   r-   ÚboolÚfloatÚhttpxÚTimeoutÚintr	   r
   rT   r   r=   ÚFileContentRequestrB   rC   rE   Ú
FileObjectrK   rN   r   rV   rY   r_   ra   Ú__classcell__)r   s   @r   r   r      s›  ø„ ñõð ðØ+ðà	ˆc�3ˆh‰òó ððFà+ðFð (¨+Ñ5ðFð 
ó	Fð& PTØ37ñ"Fàð"Fð ,ð"Fð ˜‘*ð	"Fð
 �t‘ð"Fð ˜4‘Zð"Fð ˜Ÿ™Ñ&ð"Fð ˜4‘Zð"Fð Ð.Ñ.°Ñ7¸+ÑEÈÑLð"Fð ˜S &˜[Ñ)¨DÑ0ð"Fð 
˜I f¨fÐ6FÐ&FÑGÑ	Gó"FðHFà0ðFð (¨+Ñ5ðFð 
$ó	Fð  #'ØOSØ37ñ$Fàð$Fð 1ð$Fð ˜‘*ð	$Fð
 �t‘ð$Fð ˜Ÿ™Ñ&ð$Fð ˜4‘Zð$Fð ˜4‘Zð$Fð Ð.Ñ.°Ñ7¸+ÑEÈÑLð$Fð ˜S &˜[Ñ)¨DÑ0ð$Fð 
$ i°¸Ð@ZÐ0ZÑ&[Ñ	[ó$FðLàðð (¨+Ñ5ðð 
ó	ð  #'ØOSØ37ñ$àð$ð ð$ð ˜‘*ð	$ð
 �t‘ð$ð ˜Ÿ™Ñ&ð$ð ˜4‘Zð$ð ˜4‘Zð$ð Ð.Ñ.°Ñ7¸+ÑEÈÑLð$ð ˜S &˜[Ñ)¨DÑ0ó$ðL	àð	ð (¨+Ñ5ð	ð 
ó		ð& $(Ø"&ØOSØ37ñ(àð(ð ð(ð ˜‘*ð	(ð
 �t‘ð(ð ˜Ÿ™Ñ&ð(ð ˜4‘Zð(ð ˜D‘jð(ð ˜4‘Zð(ð Ð.Ñ.°Ñ7¸+ÑEÈÑLð(ð ˜S &˜[Ñ)¨DÑ0ó(ðZ #ñ	à'¨+Ñ5ð	ð �t‘ó	ð$ #Ø"&ØOSØ37ñ(àð(ð ˜‘*ð(ð �t‘ð	(ð
 ˜Ÿ™Ñ&ð(ð ˜4‘Zð(ð �t‘ð(ð ˜4‘Zð(ð Ð.Ñ.°Ñ7¸+ÑEÈÑLð(ð ˜S &˜[Ñ)¨DÑ0÷(r   r   )Úcollections.abcr   Útypingr   r   r   rj   Úopenair   r   r	   r
   Úopenai.types.file_deletedr   Úlitellm._loggingr   Úlitellm.types.llms.openaiÚcommon_utilsr   r   r%   r   r   ú<module>rw      s1   ðÝ %ß #Ñ #ã ß EÓ EÝ 1å +Ü 'å 'ôO˜,õ Or   