
    /j9                    x   S SK Jr  S SK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JrJr  S SKJr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  \(       a  SS	KJrJr  SS
KJ r   \
" S5      r! " S S\	\!   5      r" " S S\	\!   5      r# " S S5      r$ " S S5      r%\ " S S\5      5       r&SS jr'SS.     SS jjr(g)    )annotationsN)TracebackType)TYPE_CHECKINGAnyGenericTypeVarIteratorOptionalAsyncIteratorcast)SelfProtocol	TypeGuardoverride
get_originruntime_checkable   )
is_mappingextract_type_var_from_base)APIError)OpenAIAsyncOpenAI)FinalRequestOptions_Tc                      \ rS rSr% SrS\S'   SrS\S'   S\S	'   SS
.         SS j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)Stream   zJProvides the core interface to iterate over a synchronous stream response.httpx.ResponseresponseNOptional[FinalRequestOptions]_optionsSSEBytesDecoder_decoderoptionsc                   X l         Xl        X0l        X@l        UR	                  5       U l        U R                  5       U l        g Nr   _cast_to_clientr!   _make_sse_decoderr#   
__stream__	_iteratorselfcast_tor   clientr%   s        B/app/agent/.venv/lib/python3.13/site-packages/openai/_streaming.py__init__Stream.__init__   6     !002*    c                6    U R                   R                  5       $ r'   )r-   __next__r/   s    r2   r8   Stream.__next__-   s    ~~&&((r6   c              #  :   #    U R                    H  nUv   M	     g 7fr'   r-   r/   items     r2   __iter__Stream.__iter__0   s     NNDJ #s   c              #     #    U R                   R                  U R                  R                  5       5       S h  vN   g  N7fr'   )r#   
iter_bytesr   r9   s    r2   _iter_eventsStream._iter_events4   s*     ==++DMM,D,D,FGGGs   7A?Ac              #  &  #    [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U GH  nUR                  R                  S5      (       a    GOUR                  (       a  UR                  R                  S5      (       a  UR                  5       nUR                  S:X  a  [        U5      (       a  UR                  S5      (       at  S nUR                  S5      n[        U5      (       a  UR                  S5      nU(       a  [        U[        5      (       d  Sn[        UU R                  R                   US   S9eU" XeR                  S.XS9v   GM*  UR                  5       n[        U5      (       a  UR                  S5      (       at  S nUR                  S5      n[        U5      (       a  UR                  S5      nU(       a  [        U[        5      (       d  Sn[        UU R                  R                   US   S9eU" U R"                  b)  U R"                  R$                  (       a  XeR                  S.OUUUS9v   GM     UR'                  5         g ! UR'                  5         f = f7f	Nz[DONE]zthread.errormessagez"An error occurred during streaming)rH   requestbody)dataevent)rK   r0   r   )r   r   r)   r   r*   _process_response_datarC   rK   
startswithrL   jsonr   get
isinstancestrr   rI   r!   synthesize_event_and_dataclose	r/   r0   r   process_dataiteratorsserK   rH   rG   s	            r2   r,   Stream.__stream__7   s    sDMM*==||::$$&1	88&&x00 99!5!5i!@!@88:DyyG+
40@0@TXXgEVEV"& $ 1%e,,&+ii	&:G&j#.F.F&JG&$+$(MM$9$9!%g  'TII,NX_ss88:D!$''DHHW,=,="& $ 1%e,,&+ii	&:G&j#.F.F&JG&$+$(MM$9$9!%g  '==49`9` '+YY?! '!) O  ` NNHNNs   AJHI< +J<JJc                    U $ r'    r9   s    r2   	__enter__Stream.__enter__p   s    r6   c                $    U R                  5         g r'   rT   r/   exc_typeexcexc_tbs       r2   __exit__Stream.__exit__s   s     	

r6   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)r   rT   r9   s    r2   rT   Stream.close{   s     	r6   r)   r*   r#   r-   r!   r   )
r0   type[_T]r   r   r1   r   r%   r    returnNonerk   r   )rk   zIterator[_T])rk   Iterator[ServerSentEvent]rk   r   ra   ztype[BaseException] | Nonerb   zBaseException | Nonerc   zTracebackType | Nonerk   rl   rk   rl   )__name__
__module____qualname____firstlineno____doc____annotations__r!   r3   r8   r?   rC   r,   r\   rd   rT   __static_attributes__r[   r6   r2   r   r      s    T.2H+2 26+ + !	+
 + /+ 
+)H7r, " %	
 
r6   r   c                      \ rS rSr% SrS\S'   SrS\S'   S\S	'   SS
.         SS j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)AsyncStream   zLProvides the core interface to iterate over an asynchronous stream response.r   r   Nr    r!   zSSEDecoder | SSEBytesDecoderr#   r$   c                   X l         Xl        X0l        X@l        UR	                  5       U l        U R                  5       U l        g r'   r(   r.   s        r2   r3   AsyncStream.__init__   r5   r6   c                R   #    U R                   R                  5       I S h  vN $  N7fr'   )r-   	__anext__r9   s    r2   r   AsyncStream.__anext__   s     ^^--////s   '%'c               J   #    U R                     S h  vN nU7v   M   N
 g 7fr'   r<   r=   s     r2   	__aiter__AsyncStream.__aiter__   s     .. 	$J	.s   #!!#!#c                  #    U R                   R                  U R                  R                  5       5        S h  vN nU7v   M   N
 g 7fr'   )r#   aiter_bytesr   )r/   rX   s     r2   rC   AsyncStream._iter_events   s8     224==3L3L3NO 	#I	Os%   4A
AAAA
AA
c               `  #    [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U  S h  vN nUR                  R                  S5      (       a    GOUR                  (       a  UR                  R                  S5      (       a  UR                  5       nUR                  S:X  a  [        U5      (       a  UR                  S5      (       at  S nUR                  S5      n[        U5      (       a  UR                  S5      nU(       a  [        U[        5      (       d  Sn[        UU R                  R                   US   S9eU" XeR                  S.XS97v   GM0  UR                  5       n[        U5      (       a  UR                  S5      (       at  S nUR                  S5      n[        U5      (       a  UR                  S5      nU(       a  [        U[        5      (       d  Sn[        UU R                  R                   US   S9eU" U R"                  b)  U R"                  R$                  (       a  XeR                  S.OUUUS97v   GM  UR'                  5       I S h  vN   g  GN3
 N N
! UR'                  5       I S h  vN    f = f7frF   )r   r   r)   r   r*   rM   rC   rK   rN   rL   rO   r   rP   rQ   rR   r   rI   r!   rS   acloserU   s	            r2   r,   AsyncStream.__stream__   s    sDMM*==||::$$&1	$% -c88&&x00 99!5!5i!@!@88:DyyG+
40@0@TXXgEVEV"& $ 1%e,,&+ii	&:G&j#.F.F&JG&$+$(MM$9$9!%g  'TII,NX_ss88:D!$''DHHW,=,="& $ 1%e,,&+ii	&:G&j#.F.F&JG&$+$(MM$9$9!%g  '==49`9` '+YY?! '!)  //###a-X` $(//###sa   AJ.J JJ	JHJ 0J.JJ.	JJ J.J+$J'%J++J.c                   #    U $ 7fr'   r[   r9   s    r2   
__aenter__AsyncStream.__aenter__   s
     s   c                @   #    U R                  5       I S h  vN   g  N7fr'   r_   r`   s       r2   	__aexit__AsyncStream.__aexit__   s      jjls   c                T   #    U R                   R                  5       I Sh  vN   g N7frg   )r   r   r9   s    r2   rT   AsyncStream.close   s      mm""$$$s   (&(ri   )
r0   rj   r   r   r1   r   r%   r    rk   rl   rm   )rk   zAsyncIterator[_T])rk   AsyncIterator[ServerSentEvent]ro   rp   rq   )rr   rs   rt   ru   rv   rw   r!   r3   r   r   rC   r,   r   r   rT   rx   r[   r6   r2   rz   rz      s    V.2H+2** 26+ + !	+
 + /+ 
+07$r, " %	
 
%r6   rz   c                      \ rS rSrSSSSS.         SS jjr\SS j5       r\SS j5       r\SS j5       r\SS j5       r	SS	 jr
\SS
 j5       rSrg)ServerSentEvent   NrL   rK   idretryc               R    Uc  SnX0l         X l        U=(       d    S U l        X@l        g )N )_id_data_event_retry)r/   rL   rK   r   r   s        r2   r3   ServerSentEvent.__init__   s(     <D
mtr6   c                    U R                   $ r'   )r   r9   s    r2   rL   ServerSentEvent.event      {{r6   c                    U R                   $ r'   )r   r9   s    r2   r   ServerSentEvent.id  s    xxr6   c                    U R                   $ r'   )r   r9   s    r2   r   ServerSentEvent.retry  r   r6   c                    U R                   $ r'   )r   r9   s    r2   rK   ServerSentEvent.data  s    zzr6   c                B    [         R                  " U R                  5      $ r'   )rO   loadsrK   r9   s    r2   rO   ServerSentEvent.json  s    zz$))$$r6   c           	     p    SU R                    SU R                   SU R                   SU R                   S3	$ )NzServerSentEvent(event=z, data=z, id=z, retry=)r   r9   s    r2   __repr__ServerSentEvent.__repr__  s9    '

|7499+U477)S[\`\f\f[gghiir6   )r   r   r   r   )
rL   
str | NonerK   r   r   r   r   
int | Nonerk   rl   )rk   r   )rk   r   )rk   rR   )rk   r   )rr   rs   rt   ru   r3   propertyrL   r   r   rK   rO   r   r   rx   r[   r6   r2   r   r      s     !   	
   
         % j jr6   r   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   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)
SSEDecoderi  z	list[str]r   r   r   r   r   _last_event_idc                <    S U l         / U l        S U l        S U l        g r'   )r   r   r   r   r9   s    r2   r3   SSEDecoder.__init__!  s    
"r6   c              #     #    U R                  U5       HI  nUR                  5        H2  nUR                  S5      nU R                  U5      nU(       d  M.  Uv   M4     MK     g7f)^Given an iterator that yields raw binary data, iterate over it & yield every event encounteredutf-8N)_iter_chunks
splitlinesdecoder/   rW   chunkraw_linelinerX   s         r2   rB   SSEDecoder.iter_bytes'  sS     &&x0E!,,.w/kk$'3I	 / 1s   AA"A"c              #     #    SnU H;  nUR                  SS9 H%  nX$-  nUR                  S5      (       d  M  Uv   SnM'     M=     U(       a  Uv   gg7f)^Given an iterator that yields raw binary data, iterate over it and yield individual SSE chunksr6   Tkeependss   s   

s   

Nr   endswithr/   rW   rK   r   r   s        r2   r   SSEDecoder._iter_chunks1  s\     E(($(7==!@AAJD	 8  J s
   2AAc                  #    U R                  U5        Sh  vN nUR                  5        H3  nUR                  S5      nU R                  U5      nU(       d  M.  U7v   M5     MR   NM
 g7f)r   Nr   )_aiter_chunksr   r   r   s         r2   r   SSEDecoder.aiter_bytes=  s[     --h7 	%!,,.w/kk$'3I	 /	7s+   A*A(A&A(;A*A*&A((A*c                  #    SnU  Sh  vN nUR                  SS9 H&  nX$-  nUR                  S5      (       d  M  U7v   SnM(     MD   N?
 U(       a  U7v   gg7f)r   r6   NTr   r   r   r   s        r2   r   SSEDecoder._aiter_chunksG  sc     # 	%(($(7==!@AAJD	 8	8 J s*   AAAA+AAAAc                   U(       d  U R                   (       d0  U R                  (       d  U R                  (       d  U R                  c  g [	        U R                   SR                  U R                  5      U R                  U R                  S9nS U l         / U l        S U l        U$ UR                  S5      (       a  g UR                  S5      u  p4nUR                  S5      (       a  USS  nUS:X  a  XPl         g US:X  a  U R                  R                  U5        g US:X  a  S	U;   a   g XPl         g US
:X  a   [        U5      U l        g  g ! [        [        4 a     g f = f)N
r   : r   rL   rK   r    r   )r   r   r   r   r   joinrN   	partitionappendint	TypeError
ValueError)r/   r   rX   	fieldname_values         r2   r   SSEDecoder.decodeS  sW    ;;tzz$:M:MRVR]R]Re!kkYYtzz*&&kk	C DKDJDKJ??3"nnS1	eC  !"IEK   & JJe$  $u}  ',#  '!!%j   z*  s   5E EE)r   r   r   r   Nrq   rW   Iterator[bytes]rk   rn   )rW   r   rk   r   rW   AsyncIterator[bytes]rk   r   )rW   r   rk   r   )r   rR   rk   zServerSentEvent | None)rr   rs   rt   ru   rw   r3   rB   r   r   r   r   rx   r[   r6   r2   r   r     s8    

.r6   r   c                  (    \ rS rSrSS jrSS jrSrg)r"   i  c                    g)r   Nr[   r/   rW   s     r2   rB   SSEBytesDecoder.iter_bytes      r6   c                    g)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNr[   r   s     r2   r   SSEBytesDecoder.aiter_bytes  r   r6   r[   Nr   r   )rr   rs   rt   ru   rB   r   rx   r[   r6   r2   r"   r"     s    r6   r"   c                    [        U 5      =(       d    U n[        R                  " U5      =(       a    [        U[        [
        45      $ )zaTypeGuard for determining whether or not the given type is a subclass of `Stream` / `AsyncStream`)r   inspectisclass
issubclassr   rz   )typorigins     r2   is_stream_class_typer     s0    _#F??6"Pz&6;:O'PPr6   )failure_messagec          	     @    SSK JnJn  [        U S[	        SX#45      US9$ )zGiven a type like `Stream[T]`, returns the generic type variable `T`.

This also handles the case where a concrete subclass is given, e.g.
```py
class MyStream(Stream[bytes]):
    ...

extract_stream_chunk_type(MyStream) -> bytes
```
r   )r   rz   r   ztuple[type, ...])indexgeneric_basesr   )_base_clientr   rz   r   r   )
stream_clsr   r   rz   s       r2   extract_stream_chunk_typer     s+     2%-/DE'	 r6   )r   typerk   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])r   r   r   r   rk   r   ))
__future__r   rO   r   typesr   typingr   r   r   r   r	   r
   r   r   typing_extensionsr   r   r   r   r   r   httpx_utilsr   r   _exceptionsr   r*   r   r   _modelsr   r   r   rz   r   r   r"   r   r   r[   r6   r2   <module>r     s    "    ` ` ` ` `  : !,, T]jWR[ jZk%'"+ k%\&j &jRf fR h  Q #'   
	r6   