
    _j=J                       S SK Jr  S SKrS SK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  \	(       a  SSKJrJr  SS	KJ r   \" S
5      r! " S S\RD                  5      r# " S S\\!   \#S9r$ " S S\RD                  5      r% " S S\\!   \%S9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_dictextract_type_var_from_base)	AnthropicAsyncAnthropic)FinalRequestOptions_Tc                  (    \ rS rSr\SS j5       rSrg)_SyncStreamMeta   c                f    SSK Jn  [        X5      (       a  [        R                  " S[
        SS9  gg)Nr   )MessageStreamzUsing `isinstance()` to check if a `MessageStream` object is an instance of `Stream` is deprecated & will be removed in the next major version   
stacklevelTF)lib.streamingr   
isinstancewarningswarnDeprecationWarning)selfinstancer   s      I/home/rurouni/.local/lib/python3.13/site-packages/anthropic/_streaming.py__instancecheck__!_SyncStreamMeta.__instancecheck__   s2     	1h..MM a"
      Nr(   r   returnbool__name__
__module____qualname____firstlineno__r   r*   __static_attributes__r-   r,   r)   r   r           r,   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)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r'   cast_tor<   clientrB   s        r)   __init__Stream.__init__4   6     !002*r,   c                6    U R                   R                  5       $ rD   )rJ   __next__r'   s    r)   rR   Stream.__next__C   s    ~~&&((r,   c              #  :   #    U R                    H  nUv   M	     g 7frD   rJ   r'   items     r)   __iter__Stream.__iter__F   s     NNDJ #s   c              #     #    U R                   R                  U R                  R                  5       5       S h  vN   g  N7frD   )r@   
iter_bytesr<   rS   s    r)   _iter_eventsStream._iter_eventsJ   s*     ==++DMM,D,D,FGGGs   7A?Ac              #  V  #    [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U GHz  nUR                  S:X  a  U" UR                  5       XS9v   UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gdv  UR                  S:X  Gde  UR                  S:X  GdT  UR                  S:X  GdC  UR                  S	:X  Gd2  UR                  S
:X  Gd!  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gdw  UR                  S:X  Gdf  UR                  S:X  GdU  UR                  S:X  GdD  UR                  S:X  Gd3  UR                  S:X  Gd"  UR                  S:X  Gd  UR                  S:X  Gd   UR                  S:X  d  UR                  S:X  d  UR                  S:X  d  UR                  S:X  d  UR                  S :X  d  UR                  S!:X  d  UR                  S":X  d  UR                  S#:X  d  UR                  S$:X  dp  UR                  S%:X  d`  UR                  S&:X  dP  UR                  S':X  d@  UR                  S(:X  d0  UR                  S):X  d   UR                  S*:X  d  UR                  S+:X  a>  UR                  5       n[        U5      (       a  S,U;  a  UR                  US,'   U" XaUS9v   UR                  S-:X  a  GM%  UR                  S.:X  d  GM8  UR                  n UR                  5       nU nU R                  R                  UUU R                  S09e   UR                  5         g ! [         a%    UR                  =(       d    S/UR                   3n Nff = f! UR                  5         f = f7f1N
completion)datarL   r<   message_startmessage_deltamessage_stopcontent_block_startcontent_block_deltacontent_block_stopmessagezuser.messagezuser.interruptzuser.tool_confirmationzuser.custom_tool_resultzagent.messagezagent.thinkingzagent.tool_usezagent.tool_resultzagent.mcp_tool_usezagent.mcp_tool_resultzagent.custom_tool_usezagent.thread_context_compactedzsession.status_runningzsession.status_idlezsession.status_rescheduledzsession.status_terminatedzsession.errorzsession.deletedzspan.model_request_startzspan.model_request_endzspan.outcome_evaluation_startzspan.outcome_evaluation_ongoingzspan.outcome_evaluation_endzuser.define_outcomezagent.thread_message_receivedzagent.thread_message_sentz%agent.session_thread_message_receivedz!agent.session_thread_message_sentzsession.thread_createdzsession.thread_status_createdzsession.thread_status_runningzsession.thread_status_idlez!session.thread_status_rescheduledz session.thread_status_terminatedtypepingerrorzError code: )bodyr<   )r   r   rF   r<   rG   _process_response_datar]   eventjsonr   rb   	Exceptionstatus_code_make_status_errorclose	r'   rL   r<   process_dataiteratorsserb   rm   err_msgs	            r)   rI   Stream.__stream__M   s_    sDMM*==||::$$&I	99,&CHHJ[[ II0yyO3yyN2yy$99yy$99yy$88yyI-yyN2yy$44yy$<<yy$==yyO3yy$44yy$44yy$77yy$88yy$;;yy$;;yy$DDyy$<<yy$99yy$@@yy$??yyO3yy$55yy$>>yy$<<yy$CCyy$EEyy$AAyy$99yy$CCyy$??yy$KKyy$GGyy$<<yy$CCyy$CCyy$@@yy$GGyy$FF88:Dt}}t);'*yyV&DHUU99&99'88DT"xxz%)F ,,99!!% :  C  P NN % T"%(("SX=Q=Q<R.ST NNsI   AP)L5P 
P O"*'P P)",PP PP P&&P)c                    U $ rD   r-   rS   s    r)   	__enter__Stream.__enter__   s    r,   c                $    U R                  5         g rD   rt   r'   exc_typeexcexc_tbs       r)   __exit__Stream.__exit__   s     	

r,   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   rS   s    r)   rt   Stream.close   s     	r,   rF   rG   r@   rJ   r>   r<   )
rL   type[_T]r<   r;   rM   r   rB   r=   r/   Noner/   r   )r/   zIterator[_T])r/   Iterator[ServerSentEvent]r/   r   r   ztype[BaseException] | Noner   zBaseException | Noner   zTracebackType | Noner/   r   r/   r   )r2   r3   r4   r5   __doc____annotations__r>   rN   rR   rY   r]   rI   r|   r   rt   r6   r-   r,   r)   r9   r9   -   s    T.2H+2 26+ + !	+
 + /+ 
+)HOb, " %	
 
r,   r9   )	metaclassc                  (    \ rS rSr\SS j5       rSrg)_AsyncStreamMeta   c                f    SSK Jn  [        X5      (       a  [        R                  " S[
        SS9  gg)Nr   )AsyncMessageStreamzUsing `isinstance()` to check if a `AsyncMessageStream` object is an instance of `AsyncStream` is deprecated & will be removed in the next major versionr   r    TF)r"   r   r#   r$   r%   r&   )r'   r(   r   s      r)   r*   "_AsyncStreamMeta.__instancecheck__   s2     	6h33MM k"
 r,   r-   Nr.   r1   r-   r,   r)   r   r      r7   r,   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@   rA   c                   X l         Xl        X0l        X@l        UR	                  5       U l        U R                  5       U l        g rD   rE   rK   s        r)   rN   AsyncStream.__init__   rP   r,   c                R   #    U R                   R                  5       I S h  vN $  N7frD   )rJ   	__anext__rS   s    r)   r   AsyncStream.__anext__   s     ^^--////s   '%'c               J   #    U R                     S h  vN nU7v   M   N
 g 7frD   rV   rW   s     r)   	__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rD   )r@   aiter_bytesr<   )r'   rx   s     r)   r]   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                  S:X  a  U" UR                  5       XS97v   UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gdv  UR                  S:X  Gde  UR                  S:X  GdT  UR                  S:X  GdC  UR                  S	:X  Gd2  UR                  S
:X  Gd!  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gd  UR                  S:X  Gdw  UR                  S:X  Gdf  UR                  S:X  GdU  UR                  S:X  GdD  UR                  S:X  Gd3  UR                  S:X  Gd"  UR                  S:X  Gd  UR                  S:X  Gd   UR                  S:X  d  UR                  S:X  d  UR                  S:X  d  UR                  S:X  d  UR                  S :X  d  UR                  S!:X  d  UR                  S":X  d  UR                  S#:X  d  UR                  S$:X  dp  UR                  S%:X  d`  UR                  S&:X  dP  UR                  S':X  d@  UR                  S(:X  d0  UR                  S):X  d   UR                  S*:X  d  UR                  S+:X  a?  UR                  5       n[        U5      (       a  S,U;  a  UR                  US,'   U" XaUS97v   UR                  S-:X  a  GM,  UR                  S.:X  d  GM?  UR                  n UR                  5       nU nU R                  R                  UUU R                  S09e GN! [         a%    UR                  =(       d    S/UR                   3n NVf = f
 UR                  5       I S h  vN    g ! UR                  5       I S h  vN    f = f7fr`   )r   r   rF   r<   rG   rn   r]   ro   rp   r   rb   rq   rr   rs   acloseru   s	            r)   rI   AsyncStream.__stream__   sw    sDMM*==||::$$&I	$% Ec99,&CHHJ[[ II0yyO3yyN2yy$99yy$99yy$88yyI-yyN2yy$44yy$<<yy$==yyO3yy$44yy$44yy$77yy$88yy$;;yy$;;yy$DDyy$<<yy$99yy$@@yy$??yyO3yy$55yy$>>yy$<<yy$CCyy$EEyy$AAyy$99yy$CCyy$??yy$KKyy$GGyy$<<yy$CCyy$CCyy$@@yy$GGyy$FF88:Dt}}t);'*yyV&DHUU99&99'88DT"xxz%)F ,,99!!% :  CE| % T"%(("SX=Q=Q<R.ST} &P //###(//###s   AQP& POPL2P& P& O1%P& P,PP& PP& QP" Q&Q:P=;QQc                   #    U $ 7frD   r-   rS   s    r)   
__aenter__AsyncStream.__aenter__9  s
     s   c                @   #    U R                  5       I S h  vN   g  N7frD   r   r   s       r)   	__aexit__AsyncStream.__aexit__<  s      jjls   c                T   #    U R                   R                  5       I Sh  vN   g N7fr   )r<   r   rS   s    r)   rt   AsyncStream.closeD  s      mm""$$$s   (&(r   )
rL   r   r<   r;   rM   r   rB   r=   r/   r   r   )r/   zAsyncIterator[_T])r/   AsyncIterator[ServerSentEvent]r   r   r   )r2   r3   r4   r5   r   r   r>   rN   r   r   r]   rI   r   r   rt   r6   r-   r,   r)   r   r      s    V.2H+2** 26+ + !	+
 + /+ 
+0O$b, " %	
 
%r,   r   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)ServerSentEventiM  Nro   rb   idretryc               R    Uc  SnX0l         X l        U=(       d    S U l        X@l        g )N )_id_data_event_retry)r'   ro   rb   r   r   s        r)   rN   ServerSentEvent.__init__N  s(     <D
mtr,   c                    U R                   $ rD   )r   rS   s    r)   ro   ServerSentEvent.event^      {{r,   c                    U R                   $ rD   )r   rS   s    r)   r   ServerSentEvent.idb  s    xxr,   c                    U R                   $ rD   )r   rS   s    r)   r   ServerSentEvent.retryf  r   r,   c                    U R                   $ rD   )r   rS   s    r)   rb   ServerSentEvent.dataj  s    zzr,   c                B    [         R                  " U R                  5      $ rD   )rp   loadsrb   rS   s    r)   rp   ServerSentEvent.jsonn  s    zz$))$$r,   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   rS   s    r)   __repr__ServerSentEvent.__repr__q  s9    '

|7499+U477)S[\`\f\f[gghiir,   )r   r   r   r   )
ro   
str | Nonerb   r   r   r   r   
int | Noner/   r   )r/   r   )r/   r   )r/   str)r/   r   )r2   r3   r4   r5   rN   propertyro   r   r   rb   rp   r   r   r6   r-   r,   r)   r   r   M  s     !   	
   
         % j jr,   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)
SSEDecoderiv  z	list[str]r   r   r   r   r   _last_event_idc                <    S U l         / U l        S U l        S U l        g rD   )r   r   r   r   rS   s    r)   rN   SSEDecoder.__init__|  s    
"r,   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         r)   r\   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 chunksr,   Tkeependss   s   

s   

Nr   endswithr'   rw   rb   r   r   s        r)   r   SSEDecoder._iter_chunks  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         r)   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   r,   NTr   r   r   r   s        r)   r   SSEDecoder._aiter_chunks  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   ro   rb   r    r   )r   r   r   r   r   join
startswith	partitionappendint	TypeError
ValueError)r'   r   rx   	fieldname_values         r)   r   SSEDecoder.decode  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   Nr   rw   Iterator[bytes]r/   r   )rw   r  r/   r  rw   AsyncIterator[bytes]r/   r   )rw   r  r/   r  )r   r   r/   zServerSentEvent | None)r2   r3   r4   r5   r   rN   r\   r   r   r   r   r6   r-   r,   r)   r   r   v  s8    

.r,   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     r)   r\   SSEBytesDecoder.iter_bytes      r,   c                    g)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNr-   r  s     r)   r   SSEBytesDecoder.aiter_bytes  r
  r,   r-   Nr  r  )r2   r3   r4   r5   r\   r   r6   r-   r,   r)   r?   r?     s    r,   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
issubclassr9   r   )typorigins     r)   is_stream_class_typer    s0    _#F??6"Pz&6;:O'PPr,   )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   )r9   r   r   ztuple[type, ...])indexgeneric_basesr  )_base_clientr9   r   r   r   )
stream_clsr  r9   r   s       r)   extract_stream_chunk_typer    s+     2%-/DE'	 r,   )r  rj   r/   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])r  rj   r  r   r/   rj   ),
__future__r   abcrp   r  r$   typesr   typingr   r   r   r   r	   r
   r   r   typing_extensionsr   r   r   r   r   r   httpx_utilsr   r   rG   r   r   _modelsr   r   ABCMetar   r9   r   r   r   r   r?   r  r  r-   r,   r)   <module>r$     s    " 
     ` ` ` ` `  72, T]ckk *BWR[O BJs{{ *C%'"+)9 C%L&j &jRf fR h  Q #'   
	r,   