
    ^h,                        S SK JrJrJrJrJr  S SKrS SKJrJ	r	  S SK
Jr  S SKrS SKJr  S SKJr  S SK7      SS\\   S	\\   S
\\\R(                  4   S\\   S\\   S\\   S\\\	\4      S\S\\\	\4      4S jjr " S S\5      rg)    )Any	CoroutineOptionalUnioncastN)AsyncAzureOpenAIAzureOpenAI)FileDeleted)verbose_logger)BaseLLM)*api_keyapi_basetimeoutmax_retriesapi_versionorganizationclient	_is_asyncreturnc                 (   [        5       nS n	Uc  0 n
UR                  5        H1  u  pUS:X  d  US:X  d  US:X  a  M  US:X  a	  Ub  XS'   M(  Uc  M-  XU'   M3     SU
;  a  [        R                  U
S'   USL a  [	        S0 U
D6n	U	$ [        S0 U
D6n	 U	$ Un	U	$ )	Nselfr   r   r   azure_endpointr   T )localsitemslitellmAZURE_DEFAULT_API_VERSIONr   r	   )r   r   r   r   r   r   r   r   received_argsopenai_clientdatakvs                Z/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/azure/files/handler.pyget_azure_openai_clientr%      s     HMDHM~!'')DAF{a8mqK/?jQ])*%&Q * $")"C"CD,4t4M 	 (/$/M      c                   D  ^  \ rS rSrSrSU 4S jjrS\S\S\4S jr	 SS\
S\S	\\   S
\\   S\\   S\\\R                   4   S\\   S\\\\4      S\\\\\\4   4   4S jjrS\S\S\4S jr  SS\
S\S	\\   S
\\   S\\\R                   4   S\\   S\\   S\\\\4      S\\\\\\4   4   4S jjrS\S\S\4S jr  SS\
S\S	\\   S
\\   S\\\R                   4   S\\   S\\   S\\\\4      4S jjrS\S\S\4S jr   S S\
S\S	\\   S
\\   S\\\R                   4   S\\   S\\   S\\   S\\\\4      4S jjr SS\S\\   4S jjr   S S\
S	\\   S
\\   S\\\R                   4   S\\   S\\   S\\   S\\\\4      4S jjr Sr!U =r"$ )!AzureOpenAIFilesAPI.   z
AzureOpenAI methods to support for batches
- create_file()
- retrieve_file()
- list_files()
- delete_file()
- file_content()
- update_file()
r   c                 "   > [         TU ]  5         g N)super__init__)r   	__class__s    r$   r-   AzureOpenAIFilesAPI.__init__9   s    r&   create_file_datar    c                    #    [         R                  " SU5        UR                  R                  " S0 UD6I S h  vN n[         R                  " SU5        U$  N7f)Nzcreate_file_data=%szcreate_file_response=%sr   )r   debugfilescreate)r   r0   r    responses       r$   acreate_file AzureOpenAIFilesAPI.acreate_file<   sR     
 	24DE&,,33G6FGG6A Hs   7AAAr   r   r   r   r   r   r   c	           
          [        UUUUUUUS9n	U	c  [        S5      eUSL a/  [        U	[        5      (       d  [        S5      eU R	                  X)S9$ U	R
                  R                  " S0 UD6n
U
$ )N)r   r   r   r   r   r   r   oAzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment.TkAzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client.)r0   r    r   )r%   
ValueError
isinstancer   r6   r3   r4   )r   r   r0   r   r   r   r   r   r   r    r5   s              r$   create_fileAzureOpenAIFilesAPI.create_fileF   s     $!''# 	   B  m-=>>  B  $$!1 %   !&&--A0@Ar&   file_content_requestc                 |   #    UR                   R                  " S0 UD6I S h  vN n[        UR                  S9$  N7f)Nr5   r   )r3   contentHttpxBinaryResponseContentr5   )r   r?   r    r5   s       r$   afile_content!AzureOpenAIFilesAPI.afile_contentl   s;     
 ',,44L7KLL)83D3DEE Ms    <:<c	                 "   [        UUUUUS UUS9n	U	c  [        S5      eUSL a0  [        U	[        5      (       d  [        S5      eU R	                  UU	S9$ [        [        U	5      R                  R                  " S0 UD6n
[        U
R                  S9$ )N)r   r   r   r   r   r   r   r   r9   Tr:   )r?   r    rA   r   )r%   r;   r<   r   rD   r   r	   r3   rB   rC   r5   )r   r   r?   r   r   r   r   r   r   r    r5   s              r$   file_content AzureOpenAIFilesAPI.file_contentt   s     $!''!#	 	   B  m-=>>  B  %%%9+ &   ]399AA 
"
 *83D3DEEr&   file_idc                 T   #    UR                   R                  US9I S h  vN nU$  N7f)NrI   )r3   retriever   rI   r    r5   s       r$   aretrieve_file"AzureOpenAIFilesAPI.aretrieve_file   s.     
 ',,55g5FF Gs   (&(c	                     [        UUUUS UUUS9n	U	c  [        S5      eUSL a0  [        U	[        5      (       d  [        S5      eU R	                  UU	S9$ U	R
                  R                  US9n
U
$ )Nr   r   r   r   r   r   r   r   r9   Tr:   rI   r    rK   )r%   r;   r<   r   rN   r3   rL   )r   r   rI   r   r   r   r   r   r   r    r5   s              r$   retrieve_file!AzureOpenAIFilesAPI.retrieve_file   s     $!'!'#	 	   B  m-=>>  B  &&+ '   !&&///@r&   c                    #    UR                   R                  US9I S h  vN n[        U[        5      (       d  [        USSS9$ U$  N&7f)NrK   Tfileiddeletedobject)r3   deleter<   r
   rM   s       r$   adelete_file AzureOpenAIFilesAPI.adelete_file   sJ     
 ',,33G3DD(K00'4GG	 Es   AA'Ar   c
                    [        UUUUUUU	US9n
U
c  [        S5      eUSL a0  [        U
[        5      (       d  [        S5      eU R	                  UU
S9$ U
R
                  R                  US9n[        U[        5      (       d  [        USSS9$ U$ )	NrQ   r9   Tr:   rR   rK   rV   rW   )r%   r;   r<   r   r\   r3   r[   r
   )r   r   rI   r   r   r   r   r   r   r   r    r5   s               r$   delete_fileAzureOpenAIFilesAPI.delete_file   s     $!')'#	 	   B  m-=>>  B  $$+ %   !&&--g->(K00'4GGr&   purposec                    #    [        U[        5      (       a#  UR                  R                  US9I S h  vN nU$ UR                  R                  5       I S h  vN nU$  N* N7f)Nra   )r<   strr3   list)r   r    ra   r5   s       r$   alist_filesAzureOpenAIFilesAPI.alist_files
  s^     
 gs##*0055g5FFH  +005577H G7s!   2A#A#A#A!A#!A#c	                 @   [        UUUUS UUUS9n	U	c  [        S5      eUSL a0  [        U	[        5      (       d  [        S5      eU R	                  UU	S9$ [        U[
        5      (       a  U	R                  R                  US9n
U
$ U	R                  R                  5       n
U
$ )NrQ   r9   Tr:   )ra   r    rc   )r%   r;   r<   r   rf   rd   r3   re   )r   r   r   r   r   r   ra   r   r   r    r5   s              r$   
list_filesAzureOpenAIFilesAPI.list_files  s     $!'!'#	 	   B  m-=>>  B  ##+ $  
 gs##$**///@H  %**//1Hr&   r   )r   Nr+   )NN)NNN)#__name__
__module____qualname____firstlineno____doc__r-   CreateFileRequestr   
FileObjectr6   boolr   rd   r   floathttpxTimeoutintr	   r   r   r=   FileContentRequestrC   rD   rG   rN   rS   r
   r\   r_   rf   ri   __static_attributes____classcell__)r.   s   @r$   r(   r(   .   s   + ( 
	& BF$$ ,$ 3-	$
 #$ c]$ uemm+,$ c]$ {,<<=>$ 
z9S#z%9::	;$LF0F (F 
$	F  &*AE+F+F 1+F 3-	+F
 #+F uemm+,+F c]+F c]+F {,<<=>+F 
"Ic38R.R$SS
+FZ ( 
	  &*AE'' ' 3-	'
 #' uemm+,' c]' c]' {,<<=>'R		 (	 
		& '+%)AE++ + 3-	+
 #+ uemm+,+ c]+ sm+ c]+ {,<<=>+` "&	'	 #	$ "&%)AE++ 3-+ #	+
 uemm+,+ c]+ #+ c]+ {,<<=>+ +r&   r(   )NNNF)typingr   r   r   r   r   rt   openair   r	   openai.types.file_deletedr
   r   litellm._loggingr   litellm.llms.baser   litellm.types.llms.openaird   rs   ru   rv   rr   r%   r(   r   r&   r$   <module>r      s    8 8  0 1  + % ' "&"&=Ac]sm 5%--'( #	
 # 3- U;(889:  eK!1123BR' Rr&   