
    Cj;#                         S SK r S SKrS SKJrJrJrJrJrJrJ	r	J
r
  S SKrS SKJr  \(       a  S SKJr  S SKJrJr   " S S5      rg)    N)TYPE_CHECKINGAnyAsyncIteratorDictIteratorOptionalUnioncast)FileContentProvider)Logging)StandardLoggingHiddenParamsStandardLoggingPayloadc                   6   \ rS rSrSrS\\\   \\   4   S\	S\
\	   S\
\\\	4      S\
S   S	S
4S jrSS jrS	\4S jrSS jrS	\4S jrSS jrSS jrS	\\	\	4   4S jrSS jrS\R,                  S	\
S   4S jrSS jrSS jrS\S	S
4S jrS\S	S
4S jrSrg
)FileContentStreamingResponse   z
Iterator wrapper for file content streaming that carries LiteLLM metadata
and emits success/failure callbacks once the stream finishes.
stream_iteratorfile_idmodelcustom_llm_providerlogging_objLiteLLMLoggingObjreturnNc                     Xl         X l        X0l        X@l        XPl        S U l        0 U l        SU l        SU l        Ub  [        USS 5      (       a  UR                  O[        R                  R                  5       U l        U R                  5         g )NF
start_time)r   r   r   r   r   standard_logging_object_hidden_params_logging_completed_close_completedgetattrr   datetimenow_start_time_sync_hidden_params)selfr   r   r   r   r   s         i/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/files/streaming.py__init__%FileContentStreamingResponse.__init__   s      /
#6 &KO$.0"' % &7;d+S+S """"&&( 	
 	  "    c                 R    [        U R                  S5      (       d  [        S5      eU $ N__next__z3File content stream does not support sync iterationhasattrr   	TypeErrorr$   s    r%   __iter__%FileContentStreamingResponse.__iter__6   s&    t++Z88QRRr(   c                     [        U R                  S5      (       d  [        S5      e [        [	        [
        [           U R                  5      5      $ ! [         a    U R                  5         e [         a  nU R                  U5        e S nAff = fr*   )r-   r   r.   nextr
   r   bytesStopIteration_log_success_sync	Exception_log_failure_syncr$   es     r%   r+   %FileContentStreamingResponse.__next__;   sz    t++Z88QRR	Xe_d.B.BCDD 	""$ 	""1%	s   )A $B6BBc                 R    [        U R                  S5      (       d  [        S5      eU $ N	__anext__z4File content stream does not support async iterationr,   r/   s    r%   	__aiter__&FileContentStreamingResponse.__aiter__H   s&    t++[99RSSr(   c                 j  #    [        U R                  S5      (       d  [        S5      e [        [        [
           U R                  5      R                  5       I S h  vN $  N! [         a    U R                  5       I S h  vN    e [         a   nU R                  U5      I S h  vN    e S nAff = f7fr=   )r-   r   r.   r
   r   r4   r>   StopAsyncIteration_log_success_asyncr7   _log_failure_asyncr9   s     r%   r>   &FileContentStreamingResponse.__anext__M   s     t++[99RSS	mE2D4H4HISSUUUU! 	))+++ 	))!,,,	sR   'B32A# A!A#  B3!A# #B0 BB0B+$B'%B++B00B3c                 >  #    U R                   (       a  g SU l         SU l        U R                  n[        [        [
        [           [        [           4   [        S5      5      U l        [        R                  " SS9   [        US5      (       a.  [        [        [           U5      R                  5       I S h  vN   OC[        US5      (       a2  [        [
        [           U5      R                  5       nUb
  UI S h  vN   S S S 5        g  NQ N! , (       d  f       g = f7f)NT )shieldacloseclose)r   r   r   r
   r	   r   r4   r   iteranyioCancelScoper-   rI   rJ   )r$   stream_to_closeresults      r%   rI   #FileContentStreamingResponse.acloseZ   s        $"&..#(5/=#778$r( 
 d+11=/AHHJJJ'22huo?EEG% LL ,+J ! ,+sC   A:D<:D6D7AD:D
;D?	DD
D
DDc                 <   U R                   (       a  g SU l         SU l        U R                  n[        [        [
        [           [        [           4   [        S5      5      U l        [        US5      (       a&  [        [
        [           U5      R                  5         g g )NTrG   rJ   )r   r   r   r
   r	   r   r4   r   rK   r-   rJ   )r$   rN   s     r%   rJ   "FileContentStreamingResponse.closeo   s}       $"&..#(5/=#778$r( 
 ?G,,%/288: -r(   c                 d    U R                   SS.nU R                  (       a  U R                  US'   U$ )Nzfile.content)idobjectr   )r   r   )r$   responses     r%   _build_logging_response4FileContentStreamingResponse._build_logging_response}   s/    ,,$
 :: $

HWr(   c                 b   0 nU R                   b/  U R                   R                  R                  S0 5      =(       d    0 nSU R                  ;  a(  UR                  S5      (       a  US   U R                  S'   U R                  U R                  S'   SU R                  ;  a  S U R                  S'   g g )Nlitellm_paramsapi_baselitellm_model_nameresponse_cost)r   model_call_detailsgetr   r   )r$   rZ   s     r%   r#   0FileContentStreamingResponse._sync_hidden_params   s    )+'  33778H"MSQS  T000^5G5G
5S5S.<Z.HD
+ 59JJ01$"5"5537D0 6r(   end_timer   c           
         U R                   b  U R                   $ U R                  c  g SSKJn  U R	                  5         U" U R                  R
                  U R                  5       U R                  UU R                  SS9nUc  g [        S0 [        [        [        [        4   UR                  S5      =(       d    0 5      EU R                  E5      nXCS'   U R                  5       US'   U R                  b  U R                  US'   U R                  b  U R                  US	'   U R                  R                  S
5      (       a   [        [        U R                  S
   5      US
'   X0l         U$ )Nr   )#get_standard_logging_object_payloadsuccess)kwargsinit_response_objr   ra   r   statusr   hidden_paramsrV   r   r   r[   )r   r   *litellm.litellm_core_utils.litellm_loggingrc   r#   r^   rW   r"   r
   r   strr   r_   r   r   r   )r$   ra   rc   payloadmerged_hidden_paramss        r%   _build_standard_logging_object;FileContentStreamingResponse._build_standard_logging_object   s[    ''3///#	
 	  "5##66"::<''((
 ?#)tCH~w{{?'C'IrJ%% 
 $8 "::<
##/-1-E-EG)*::!#zzGG"":.."&sD,?,?
,K"LGJ'.$r(   c                   #    U R                   (       d  U R                  c  g SU l         [        R                  R                  5       nU R	                  US9nU R                  R                  U R                  5       U R                  UUS9I S h  vN   U R                  R                  U R                  5       U R                  US9  g  N87f)NTra   rO   r   ra   r   )rO   r   ra   )	r   r   r    r!   rm   async_success_handlerrW   r"   -handle_sync_success_callbacks_for_async_callsr$   ra   r   s      r%   rC   /FileContentStreamingResponse._log_success_async   s     ""d&6&6&>"&$$((*"&"E"Ex"E"X44//1''$;	 5 
 	
 	
 	FF//1'' 	G 	
	
s   BCC9Cc                    U R                   (       d  U R                  c  g SU l         [        R                  R                  5       nU R	                  US9nU R                  R                  U R                  5       U R                  UUS9  g )NTrp   rq   )r   r   r    r!   rm   success_handlerrW   r"   rt   s      r%   r6   .FileContentStreamingResponse._log_success_sync   s}    ""d&6&6&>"&$$((*"&"E"Ex"E"X((//1''$;	 	) 	
r(   errorc                 n  #    U R                   (       d  U R                  c  g SU l         [        R                  R                  5       n[        R
                  " 5       nU R                  R                  XU R                  U5        U R                  R                  XU R                  U5      I S h  vN   g  N7fNT)	r   r   r    r!   	traceback
format_excfailure_handlerr"   async_failure_handler)r$   ry   ra   traceback_strs       r%   rD   /FileContentStreamingResponse._log_failure_async   s     ""d&6&6&>"&$$((*!,,.(($"2"2H	
 44$"2"2H
 	
 	
s   B+B5-B3.B5c                    U R                   (       d  U R                  c  g SU l         [        R                  R                  5       nU R                  R	                  U[
        R                  " 5       U R                  U5        g r{   )r   r   r    r!   r~   r|   r}   r"   )r$   ry   ra   s      r%   r8   .FileContentStreamingResponse._log_failure_sync   sa    ""d&6&6&>"&$$((*((9'')4+;+;X	
r(   )
r   r   r   r"   r   r   r   r   r   r   )r   r   )r   N)__name__
__module____qualname____firstlineno____doc__r	   r   r4   r   rj   r   r   r&   r0   r+   r?   r>   rI   rJ   r   rW   r#   r    rm   rC   r6   r7   rD   r8   __static_attributes__rG   r(   r%   r   r      s   
#xe0DDE# # }	#
 &e,?,D&EF# 12# 
#0
% 
 !*;c3h 8 +##+ 
*	++Z
&

i 
D 

y 
T 
r(   r   )r    r|   typingr   r   r   r   r   r   r	   r
   rL   litellm.files.typesr   ri   r   r   litellm.types.utilsr   r   r   rG   r(   r%   <module>r      s<     	 	 	  3 Xb
 b
r(   