
    2h5                       S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
Jr  S SKJrJrJrJr  SSKJr  SSKJrJrJrJrJr  S	S
KJrJr  S	SKJrJrJr  S	SKJ r J!r!  S	SK"J#r#J$r$  S	SK%J&r&Jr'  SSK(J)r)J*r*J+r+  S	SK,J-r-  S	SK.J/r/J0r0J1r1   " S S\\)   5      r2 " S S\\)   5      r3 " S S\\)   5      r4 " S S\\)   5      r5 " S S\\)   5      r6g)    )annotationsN)TracebackType)AnyListGenericIterable	Awaitablecast)SelfCallableIteratorAsyncIterator   )ParsedResponseSnapshot)ResponseStreamEventResponseTextDoneEventResponseCompletedEventResponseTextDeltaEvent'ResponseFunctionCallArgumentsDeltaEvent   )	NOT_GIVENNotGiven)is_givenconsume_sync_iteratorconsume_async_iterator)buildconstruct_type_unchecked)StreamAsyncStream)ParsedResponser      )TextFormatT
parse_textparse_response)	ToolParam)ParsedContentParsedResponseOutputMessageParsedResponseFunctionToolCallc                      \ rS rSr          SS jrSS jrSS jrSS jrSS jr        SS jr	SS jr
SS	 jrSS
 jrSrg)ResponseStream   c                   Xl         UR                  U l        U R                  5       U l        [        X#S9U l        X@l        g N)text_formatinput_tools_raw_streamresponse	_response
__stream__	_iteratorResponseStreamState_state_starting_afterself
raw_streamr.   r/   starting_afters        a/var/www/auris/envauris/lib/python3.13/site-packages/openai/lib/streaming/responses/_responses.py__init__ResponseStream.__init__   7     &#,,*)k[-    c                6    U R                   R                  5       $ N)r5   __next__r:   s    r=   rD   ResponseStream.__next__-   s    ~~&&((rA   c              #  :   #    U R                    H  nUv   M	     g 7frC   r5   r:   items     r=   __iter__ResponseStream.__iter__0   s     NNDJ #s   c                    U $ rC    rE   s    r=   	__enter__ResponseStream.__enter__4   s    rA   c              #     #    U R                    HT  nU R                  R                  U5      nU H0  nU R                  b  UR                  U R                  :  d  M,  Uv   M2     MV     g 7frC   r1   r7   handle_eventr8   sequence_numberr:   	sse_eventevents_to_fireevents       r=   r4   ResponseStream.__stream__7   sW     ))I![[55i@N'''/53H3H4K_K_3_K ( *s   AA(A(c                $    U R                  5         g rC   closer:   exc_typeexcexc_tbs       r=   __exit__ResponseStream.__exit__>   s     	

rA   c                8    U R                   R                  5         gzr
Close the response and release the connection.

Automatically called if the response body is read to completion.
N)r3   r\   rE   s    r=   r\   ResponseStream.closeF   s     	rA   c                v    U R                  5         U R                  R                  nU(       d  [        S5      eU$ )hWaits until the stream has been read to completion and returns
the accumulated `ParsedResponse` object.
,Didn't receive a `response.completed` event.
until_doner7   _completed_responseRuntimeErrorr:   r2   s     r=   get_final_response!ResponseStream.get_final_responseN   s1     	;;22MNNrA   c                    [        U 5        U $ )*Blocks until the stream has been consumed.)r   rE   s    r=   rj   ResponseStream.until_doneY   s    d#rA   r5   r1   r3   r8   r7   N)
r;   zStream[RawResponseStreamEvent]r.   type[TextFormatT] | NotGivenr/   Iterable[ToolParam] | NotGivenr<   
int | NonereturnNonerw   z ResponseStreamEvent[TextFormatT])rw   z*Iterator[ResponseStreamEvent[TextFormatT]]rw   r   r^   ztype[BaseException] | Noner_   zBaseException | Noner`   zTracebackType | Nonerw   rx   rw   rx   rw   zParsedResponse[TextFormatT])__name__
__module____qualname____firstlineno__r>   rD   rK   rO   r4   ra   r\   rn   rj   __static_attributes__rN   rA   r=   r*   r*      s    . 3. 2	.
 4. #. 
.) , " %	
 
	rA   r*   c                  V    \ rS rSr          SS jrSS jr        S	S jrSrg)
ResponseStreamManager_   c               B    S U l         Xl        X l        X0l        X@l        g rC   )_ResponseStreamManager__stream#_ResponseStreamManager__api_request#_ResponseStreamManager__text_format#_ResponseStreamManager__input_tools&_ResponseStreamManager__starting_afterr:   api_requestr.   r/   r<   s        r=   r>   ResponseStreamManager.__init__`   s$     =A((( .rA   c                    U R                  5       n[        UU R                  U R                  U R                  S9U l        U R
                  $ N)r;   r.   r/   r<   )r   r*   r   r   r   r   r:   r;   s     r=   rO   ResponseStreamManager.__enter__n   sF    '')
&!****00	
 }}rA   c                T    U R                   b  U R                   R                  5         g g rC   )r   r\   r]   s       r=   ra   ResponseStreamManager.__exit__z   s#     ==$MM! %rA   __api_request__input_tools__starting_after__stream__text_formatN)
r   z,Callable[[], Stream[RawResponseStreamEvent]]r.   rt   r/   ru   r<   rv   rw   rx   )rw   zResponseStream[TextFormatT]r{   )r~   r   r   r   r>   rO   ra   r   rN   rA   r=   r   r   _   sg    /A/ 2	/
 4/ #/ 
/
"," "" %	"
 
"rA   r   c                      \ rS rSr          SS jrSS jrSS jrSS jrSS jr        SS jr	SS jr
SS	 jrSS
 jrSrg)AsyncResponseStream   c                   Xl         UR                  U l        U R                  5       U l        [        X#S9U l        X@l        g r-   r0   r9   s        r=   r>   AsyncResponseStream.__init__   r@   rA   c                R   #    U R                   R                  5       I S h  vN $  N7frC   )r5   	__anext__rE   s    r=   r   AsyncResponseStream.__anext__   s     ^^--////s   '%'c               J   #    U R                     S h  vN nU7v   M   N
 g 7frC   rH   rI   s     r=   	__aiter__AsyncResponseStream.__aiter__   s     .. 	$J	.s   #!!#!#c                  #    U R                     S h  vN nU R                  R                  U5      nU H1  nU R                  b  UR                  U R                  :  d  M,  U7v   M3     M]   NX
 g 7frC   rR   rU   s       r=   r4   AsyncResponseStream.__stream__   s_     #// 	 )![[55i@N'''/53H3H4K_K_3_K (	 /s,   A0A.A,A.AA0!A0,A..A0c                   #    U $ 7frC   rN   rE   s    r=   
__aenter__AsyncResponseStream.__aenter__   s
     s   c                @   #    U R                  5       I S h  vN   g  N7frC   r[   r]   s       r=   	__aexit__AsyncResponseStream.__aexit__   s      jjls   c                T   #    U R                   R                  5       I Sh  vN   g N7frd   )r3   acloserE   s    r=   r\   AsyncResponseStream.close   s      nn##%%%s   (&(c                   #    U R                  5       I Sh  vN   U R                  R                  nU(       d  [        S5      eU$  N.7f)rg   Nrh   ri   rm   s     r=   rn   &AsyncResponseStream.get_final_response   s?      oo;;22MNN 	 s   AA/Ac                8   #    [        U 5      I Sh  vN   U $  N7f)rq   N)r   rE   s    r=   rj   AsyncResponseStream.until_done   s     $T*** 	+s   rs   N)
r;   z#AsyncStream[RawResponseStreamEvent]r.   rt   r/   ru   r<   rv   rw   rx   ry   )rw   z/AsyncIterator[ResponseStreamEvent[TextFormatT]]rz   r{   r|   r}   )r~   r   r   r   r>   r   r   r4   r   r   r\   rn   rj   r   rN   rA   r=   r   r      s    . 8. 2	.
 4. #. 
.0 , " %	
 
&	rA   r   c                  V    \ rS rSr          SS jrSS jr        S	S jrSrg)
AsyncResponseStreamManager   c               B    S U l         Xl        X l        X0l        X@l        g rC   )#_AsyncResponseStreamManager__stream(_AsyncResponseStreamManager__api_request(_AsyncResponseStreamManager__text_format(_AsyncResponseStreamManager__input_tools+_AsyncResponseStreamManager__starting_afterr   s        r=   r>   #AsyncResponseStreamManager.__init__   s%     BF((( .rA   c                   #    U R                   I S h  vN n[        UU R                  U R                  U R                  S9U l        U R
                  $  N?7fr   )r   r   r   r   r   r   r   s     r=   r   %AsyncResponseStreamManager.__aenter__   sN     ---
+!****00	
 }} .s   AAA Ac                p   #    U R                   b#  U R                   R                  5       I S h  vN   g g  N7frC   )r   r\   r]   s       r=   r   $AsyncResponseStreamManager.__aexit__   s/      ==$--%%''' %'s   +646r   N)
r   z.Awaitable[AsyncStream[RawResponseStreamEvent]]r.   rt   r/   ru   r<   rv   rw   rx   )rw   z AsyncResponseStream[TextFormatT]r{   )r~   r   r   r   r>   r   r   r   rN   rA   r=   r   r      sg    /C/ 2	/
 4/ #/ 
/
(,( "( %	(
 
(rA   r   c                  H    \ rS rSr      SS jrS	S jrS
S jrS
S jrSrg)r6      c                   S U l         S U l        [        U5      (       a  U Vs/ s H  o3PM     snO/ U l        X l        [
        R                  " U5      (       a  X l        g [        U l        g s  snf rC   )	&_ResponseStreamState__current_snapshotrk   r   _input_tools_text_formatinspectisclassr   _rich_text_format)r:   r/   r.   tools       r=   r>   ResponseStreamState.__init__   sb     BFGK >F{>S>Sk:kdTk:Y['AHQ\A]A]+cl ;s   A,c                d   U R                  U5      =U l        n/ nUR                  S:X  a  UR                  UR                     nUR                  S:X  d   eUR
                  UR                     nUR                  S:X  d   eUR                  [        [        UR                  UR                  UR                  UR                  UR                  SUR                  S95        U$ UR                  S:X  a  UR                  UR                     nUR                  S:X  d   eUR
                  UR                     nUR                  S:X  d   eUR                  [        [        [           UR                  UR                  UR                  UR                  SUR                  [!        UR                  U R"                  S9S95        U$ UR                  S:X  a  UR                  UR                     nUR                  S	:X  d   eUR                  [        [$        UR                  UR                  UR                  UR                  SUR&                  S
95        U$ UR                  S:X  a<  U R(                  nUc   eUR                  [        [*        UR                  SUS95        U$ UR                  U5        U$ )Nresponse.output_text.deltamessageoutput_text)content_indexdeltaitem_idoutput_indexrT   typesnapshotzresponse.output_text.done)r.   )r   r   r   rT   r   textparsed&response.function_call_arguments.deltafunction_call)r   r   r   rT   r   r   response.completed)rT   r   r2   )accumulate_eventr   r   outputr   contentr   appendr   r   r   r   rT   r   r   r"   r#   r   r   	argumentsrk   r   )r:   rX   r   eventsr   r   r2   s          r=   rS    ResponseStreamState.handle_event   so   -1-B-B5-II(9;::55__U%7%78F;;)+++nnU%8%89G<<=000MM*"'"5"5++!MM!&!3!3$)$9$95$\\	| e ZZ66__U%7%78F;;)+++nnU%8%89G<<=000MM)+6"'"5"5!MM!&!3!3$)$9$94%ejjd>O>OP	V ? ZZCC__U%7%78F;;/111MM;++!MM!&!3!3$)$9$9A#--
6  ZZ////H'''MM*$)$9$9-%	  MM% rA   c                   U R                   nUc  U R                  U5      $ UR                  S:X  a  UR                  R                  S:X  aO  UR                  R                  [        [        [        [        5      UR                  R                  5       S95        U$ UR                  R                  S:X  aO  UR                  R                  [        [        [        [        5      UR                  R                  5       S95        U$ UR                  R                  UR                  5         U$ UR                  S:X  ax  UR                  UR                     nUR                  S:X  aM  UR                  R                  [        [        [        [        5      UR                  R                  5       S95        U$ UR                  S:X  au  UR                  UR                     nUR                  S:X  aJ  UR                  UR                      nUR                  S:X  d   eU=R"                  UR$                  -  sl        U$ UR                  S:X  aJ  UR                  UR                     nUR                  S:X  a  U=R&                  UR$                  -  sl        U$ UR                  S	:X  a.  [)        U R*                  UR,                  U R.                  S
9U l        U$ )Nzresponse.output_item.addedr   type_valuer   zresponse.content_part.addedr   r   r   r   )r.   r2   r/   )r   _create_initial_responser   rJ   r   r   r   r
   r   r(   to_dictr'   r   r   r&   partr   r   r   r   r$   r   r2   r   rk   )r:   rX   r   r   r   s        r=   r   $ResponseStreamState.accumulate_eventC  sG   **0077::55zz/1&&,"3(FGuzzOaOaOcD ; I-&&,4=X3Yafakakasasauv8 1 &&uzz20 / ZZ88__U%7%78F{{i'%%,4]3KSXS]S]SeSeSgh( # ZZ77__U%7%78F{{i' ..)<)<=||}444+  ZZCC__U%7%78F{{o-  EKK/   ZZ//'5 -- --(D$ rA   c                    UR                   S:w  a  [        SUR                    S35      e[        [        UR                  R                  5       S9$ )Nzresponse.createdz5Expected to have received `response.created` before ``r   )r   rl   r   r   r2   r   )r:   rX   s     r=   r   ,ResponseStreamState._create_initial_responsen  sH    ::++!VW\WaWaVbbcdee'.DENNLbLbLdeerA   )__current_snapshotrk   r   r   r   N)r/   ru   r.   rt   rw   rx   )rX   RawResponseStreamEventrw   z&List[ResponseStreamEvent[TextFormatT]])rX   r   rw   r   )	r~   r   r   r   r>   rS   r   r   r   rN   rA   r=   r6   r6      s<    
m 4
m 2	
m
 

mJX)VfrA   r6   )7
__future__r   r   typesr   typingr   r   r   r   r	   r
   typing_extensionsr   r   r   r   _typesr   _eventsr   r   r   r   r   r   r   _utilsr   r   r   _modelsr   r   
_streamingr   r   types.responsesr    r   _parsing._responsesr"   r#   r$   types.responses.tool_paramr%   types.responses.parsed_responser&   r'   r(   r*   r   r   r   r6   rN   rA   r=   <module>r      s    "   @ @ E E *  + N N 7 . ] J J 4 >W[) >B""GK0 ""J>'+. >B"(!5 "(JHf'+. HfrA   