Ë
    tPêj|"  ã                   óˆ   — d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
 d dlZd dlmZ erd dlmZ d dlmZmZ  G d„ d«      Zy)	é    N)ÚAsyncIteratorÚIterator)ÚTYPE_CHECKINGÚAnyÚFinalÚOptionalÚcast)ÚFileContentProvider)ÚLogging)ÚStandardLoggingHiddenParamsÚStandardLoggingPayloadc                   ó
  — e Zd ZdZdee   ee   z  dededz  deez  dz  de	d   d	dfd
„Z
dd„Zd	efd„Zdd„Zd	efd„Zdd„Zdd„Zd	eeef   fd„Zdd„Zdej(                  d	e	d   fd„Zdd„Zdd„Zded	dfd„Zded	dfd„Zy)ÚFileContentStreamingResponsez•
    Iterator wrapper for file content streaming that carries LiteLLM metadata
    and emits success/failure callbacks once the stream finishes.
    Ústream_iteratorÚfile_idÚmodelNÚcustom_llm_providerÚlogging_objÚLiteLLMLoggingObjÚreturnc                 ó  — || _         || _        || _        || _        || _        d | _        i | _        d| _        d| _        |�t        |dd «      r|j                  nt        j                  j                  «       | _        | j                  «        y )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         ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/files/streaming.pyÚ__init__z%FileContentStreamingResponse.__init__   s�   € ð  /ˆÔØˆŒØˆŒ
Ø#6ˆÔ Ø&ˆÔØFJˆÔ$Ø.0ˆÔØ"'ˆÔØ %ˆÔð Ð&¬7°;ÀÈdÔ+Sð ×"Ò"ä×"Ñ"×&Ñ&Ó(ð 	Ôð
 	× Ñ Õ"ó    c                 óH   — t        | j                  d«      st        d«      ‚| S ©NÚ__next__z3File content stream does not support sync iteration©Úhasattrr   Ú	TypeError©r"   s    r#   Ú__iter__z%FileContentStreamingResponse.__iter__/   s#   € Ü�t×+Ñ+¨ZÔ8ÜÐQÓRÐRØˆr%   c                 ó  — t        | j                  d«      st        d«      ‚	 t        t	        t
        t           | j                  «      «      S # t        $ r | j                  «        ‚ t        $ r}| j                  |«       ‚ d }~ww xY wr'   )r*   r   r+   Únextr	   r   ÚbytesÚStopIterationÚ_log_success_syncÚ	ExceptionÚ_log_failure_sync©r"   Úes     r#   r(   z%FileContentStreamingResponse.__next__4   sw   € Ü�t×+Ñ+¨ZÔ8ÜÐQÓRÐRð	ÜœœX¤e™_¨d×.BÑ.BÓCÓDÐDøÜò 	Ø×"Ñ"Ô$ØÜò 	Ø×"Ñ" 1Ô%Øûð	ús   £)A Á"BÁ/BÂBc                 óH   — t        | j                  d«      st        d«      ‚| S ©NÚ	__anext__z4File content stream does not support async iterationr)   r,   s    r#   Ú	__aiter__z&FileContentStreamingResponse.__aiter__A   s#   € Ü�t×+Ñ+¨[Ô9ÜÐRÓSÐSØˆr%   c              ƒ   ó\  K  — t        | j                  d«      st        d«      ‚	 t        t        t
           | j                  «      j                  «       ƒ d {  –—† S 7 Œ# t        $ r | j                  «       ƒ d {  –—†7   ‚ t        $ r }| j                  |«      ƒ d {  –—†7   ‚ d }~ww xY w­wr8   )r*   r   r+   r	   r   r0   r9   ÚStopAsyncIterationÚ_log_success_asyncr3   Ú_log_failure_asyncr5   s     r#   r9   z&FileContentStreamingResponse.__anext__F   s‘   è ø€ Ü�t×+Ñ+¨[Ô9ÜÐRÓSÐSð	Üœm¬EÑ2°D×4HÑ4HÓI×SÑSÓU×UÐUÐUùÜ!ò 	Ø×)Ñ)Ó+×+Ñ+ØÜò 	Ø×)Ñ)¨!Ó,×,Ñ,Øûð	üsR   ‚"B,¥2A ÁAÁA ÁB,ÁA ÁB)Á:A=Á;B)Â	B$ÂB ÂB$Â$B)Â)B,c              ƒ   ó  K  — | j                   ry d| _         d| _        | j                  }t        t        t
           t        t
           z  t        d«      «      | _        t        j                  d¬«      5  t        |d«      r.t        t        t
           |«      j                  «       ƒ d {  –—†  n=t        |d«      r1t        t        t
           |«      j                  «       }|�
|ƒ d {  –—†  d d d «       y 7 ŒK7 Œ# 1 sw Y   y xY w­w)NT© )ÚshieldÚacloseÚclose)r   r   r   r	   r   r0   r   ÚiterÚanyioÚCancelScoper*   rB   rC   )r"   Ústream_to_closeÚresults      r#   rB   z#FileContentStreamingResponse.acloseS   sÚ   è ø€ Ø× Ò Øà $ˆÔØ"&ˆÔØ!%×!5Ñ!5ˆÜ#¤H¬U¡O´mÄEÑ6JÑ$JÌDÐQSËHÓUˆÔô ×Ñ dÔ+ñ 	!Ü�¨Ô1Üœ=¬Ñ/°ÓA×HÑHÓJ×JÑJÜ˜¨'Ô2Ü $¤X¬e¡_°oÓ F× LÑ LÓ N�ØÐ%Ø —L�L÷	!ð 	!àJøð !ø÷	!ð 	!üsB   ‚A1DÁ35C8Â(C4Â)=C8Ã&C6Ã'C8Ã+	DÃ4C8Ã6C8Ã8DÃ=Dc                 ó  — | j                   ry d| _         d| _        | j                  }t        t        t
           t        t
           z  t        d«      «      | _        t        |d«      r&t        t        t
           |«      j                  «        y y )NTr@   rC   )
r   r   r   r	   r   r0   r   rD   r*   rC   )r"   rG   s     r#   rC   z"FileContentStreamingResponse.closef   sq   € Ø× Ò Øà $ˆÔØ"&ˆÔØ!%×!5Ñ!5ˆÜ#¤H¬U¡O´mÄEÑ6JÑ$JÌDÐQSËHÓUˆÔä�? GÔ,Ü”œ%‘ /Ó2×8Ñ8Õ:ð -r%   c                 óZ   — | j                   ddœ}| j                  r| j                  |d<   |S )Nzfile.content)ÚidÚobjectr   )r   r   )r"   Úresponses     r#   Ú_build_logging_responsez4FileContentStreamingResponse._build_logging_responser   s/   € à—,‘,Ø$ñ
ˆð �:Š:Ø $§
¡
ˆH�WÑØˆr%   c                 óD  — i }| j                   �*| j                   j                  j                  di «      xs i }d| j                  vr#|j                  d«      r|d   | j                  d<   | j                  | j                  d<   d| j                  vrd | j                  d<   y y )NÚlitellm_paramsÚapi_baseÚlitellm_model_nameÚresponse_cost)r   Úmodel_call_detailsÚgetr   r   )r"   rP   s     r#   r!   z0FileContentStreamingResponse._sync_hidden_params{   s£   € Ø)+ˆØ×ÑÐ'Ø!×-Ñ-×@Ñ@×DÑDÐEUÐWYÓZÒ`Ð^`ˆNà˜T×0Ñ0Ñ0°^×5GÑ5GÈ
Ô5SØ.<¸ZÑ.HˆD×Ñ 
Ñ+ð 59·J±Jˆ×ÑÐ0Ñ1Ø $×"5Ñ"5Ñ5Ø37ˆD×Ñ Ò0ð 6r%   Úend_timer   c           
      óº  — | j                   �| j                   S | j                  €y ddlm} | j	                  «         || j                  j
                  | j                  «       | j                  || j                  d¬«      }|€y t        di t        t        t        t        f   |j                  d«      xs i «      ¥| j                  ¥«      }||d<   | j                  «       |d<   | j                  �| j                  |d<   | j                  �| j                  |d	<   | j                  j                  d
«      r t        t        | j                  d
   «      |d
<   || _         |S )Nr   )Ú#get_standard_logging_object_payloadÚsuccess)ÚkwargsÚinit_response_objr   rV   r   Ústatusr   Úhidden_paramsrM   r   r   rQ   )r   r   Ú*litellm.litellm_core_utils.litellm_loggingrX   r!   rT   rN   r    r	   ÚdictÚstrr   rU   r   r   r   )r"   rV   rX   ÚpayloadÚmerged_hidden_paramss        r#   Ú_build_standard_logging_objectz;FileContentStreamingResponse._build_standard_logging_object‰   s\  € ð ×'Ñ'Ð3Ø×/Ñ/Ð/à×ÑÐ#Øõ	
ð 	× Ñ Ô"Ù<Ø×#Ñ#×6Ñ6Ø"×:Ñ:Ó<Ø×'Ñ'ØØ×(Ñ(Øô
ˆð ˆ?Øä&*Ø)ðÜ”tœC¤˜H‘~ w§{¡{°?Ó'CÒ'IÀrÓJðà×%Ñ%ðó'
Ðð $8ˆ�Ñ Ø"×:Ñ:Ó<ˆ�
ÑØ×#Ñ#Ð/Ø-1×-EÑ-EˆGÐ)Ñ*Ø�:‰:Ð!Ø#Ÿz™zˆG�GÑØ×Ñ×"Ñ" :Ô.Ü"&¤s¨D×,?Ñ,?À
Ñ,KÓ"LˆG�JÑà'.ˆÔ$Øˆr%   c              ƒ   óš  K  — | j                   s| j                  €y d| _         t        j                  j                  «       }| j	                  |¬«      }| j                  j                  | j                  «       | j                  ||¬«      ƒ d {  –—†  | j                  j                  | j                  «       | j                  |¬«       y 7 Œ;­w)NT©rV   ©rH   r   rV   r   )rH   r   rV   )	r   r   r   r   rc   Úasync_success_handlerrN   r    Ú-handle_sync_success_callbacks_for_async_calls©r"   rV   r   s      r#   r=   z/FileContentStreamingResponse._log_success_async¶   sÅ   è ø€ Ø×"Ò" d×&6Ñ&6Ð&>Øà"&ˆÔÜ"×+Ñ+×/Ñ/Ó1ˆØ)-×)LÑ)LÐV^Ð)LÓ)_ÐØ×Ñ×4Ñ4Ø×/Ñ/Ó1Ø×'Ñ'ØØ$;ð	 5ó 
÷ 	
ð 	
ð 	×Ñ×FÑFØ×/Ñ/Ó1Ø×'Ñ'Øð 	Gõ 	
ð	
ús   ‚BCÂC	Â<Cc                 ó  — | j                   s| j                  €y d| _         t        j                  j                  «       }| j	                  |¬«      }| j                  j                  | j                  «       | j                  ||¬«       y )NTre   rf   )r   r   r   r   rc   Úsuccess_handlerrN   r    ri   s      r#   r2   z.FileContentStreamingResponse._log_success_syncÉ   s~   € Ø×"Ò" d×&6Ñ&6Ð&>Øà"&ˆÔÜ"×+Ñ+×/Ñ/Ó1ˆØ)-×)LÑ)LÐV^Ð)LÓ)_ÐØ×Ñ×(Ñ(Ø×/Ñ/Ó1Ø×'Ñ'ØØ$;ð	 	)õ 	
r%   Úerrorc              ƒ   ód  K  — | j                   s| j                  €y d| _         t        j                  j                  «       }t	        j
                  «       }| j                  j                  ||| j                  |«       | j                  j                  ||| j                  |«      ƒ d {  –—†  y 7 Œ­w©NT)	r   r   r   r   Ú	tracebackÚ
format_excÚfailure_handlerr    Úasync_failure_handler)r"   rl   rV   Útraceback_strs       r#   r>   z/FileContentStreamingResponse._log_failure_async×   s�   è ø€ Ø×"Ò" d×&6Ñ&6Ð&>Øà"&ˆÔÜ"×+Ñ+×/Ñ/Ó1ˆÜ(×3Ñ3Ó5ˆØ×Ñ×(Ñ(¨°¸t×?OÑ?OÐQYÔZØ×Ñ×4Ñ4°U¸MÈ4×K[ÑK[Ð]eÓf×fÒfús   ‚B&B0Â(B.Â)B0c                 óô   — | j                   s| j                  €y d| _         t        j                  j                  «       }| j                  j	                  |t        j                  «       | j                  |«       y rn   )r   r   r   r   rq   ro   rp   r    )r"   rl   rV   s      r#   r4   z.FileContentStreamingResponse._log_failure_syncá   s_   € Ø×"Ò" d×&6Ñ&6Ð&>Øà"&ˆÔÜ"×+Ñ+×/Ñ/Ó1ˆØ×Ñ×(Ñ(¨´	×0DÑ0DÓ0FÈ×HXÑHXÐZbÕcr%   )r   r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r0   r   r`   r
   r   r$   r-   r(   r:   r9   rB   rC   r_   rN   r!   r   rc   r=   r2   r3   r>   r4   r@   r%   r#   r   r      s  „ ñð
#à! %™¨=¸Ñ+?Ñ?ð#ð ð#ð �T‰zð	#ð
 1°3Ñ6¸Ñ=ð#ð Ð1Ñ2ð#ð 
ó#ó0ð
˜%ó óð
 ó ó!ó&
;ð¨¨c°3¨h©ó ó8ð+à×#Ñ#ð+ð 
Ð*Ñ	+ó+óZ
ó&
ðg¨ið g¸Dó gðd yð d°Tô dr%   r   )r   ro   Úcollections.abcr   r   Útypingr   r   r   r   r	   rE   Úlitellm.files.typesr
   r^   r   r   Úlitellm.types.utilsr   r   r   r@   r%   r#   ú<module>r}      s6   ðÛ Û ß 3ß <Õ <ã å 3áõ÷ X÷Vdò Vdr%   