
    ̺ia9                       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      S/var/www/piano.thomer.com/venv/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              #    #    [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U GH/  nUR                  S:X  a  U" UR                  5       XS9v   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  M  UR                  S:X  d  M  UR                  n UR                  5       nU nU R                  R                  UUU R                  S9e   UR                  5         g ! [         a%    UR                  =(       d    SUR                   3n Nff = f! UR                  5         f = f7fN
completion)datarL   r<   message_startmessage_deltamessage_stopcontent_block_startcontent_block_deltacontent_block_stop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   rl   err_msgs	            r)   rI   Stream.__stream__M   s    sDMM*==||::$$&&	99,&CHHJ[[ II0yyO3yyN2yy$99yy$99yy$8888:Dt}}t);'*yyV&DHUU99&99'88DT"xxz%)F ,,99!!% :  =  J NN % T"%(("SX=Q=Q<R.ST NNsI   AGC+G	 ?G	 F'G	 G,GG	 GG	 	GGc                    U $ rD   r-   rS   s    r)   	__enter__Stream.__enter__{   s    r,   c                $    U R                  5         g rD   rs   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<   rs   rS   s    r)   rs   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   rs   r6   r-   r,   r)   r9   r9   -   s    T.2H+2 26+ + !	+
 + /+ 
+)H,\, " %	
 
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'   rw   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  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  M  UR                  S:X  d  M  UR                  n UR                  5       nU nU R                  R                  UUU R                  S9e GN5! [         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   rm   r]   rn   ro   r   rb   rp   rq   rr   aclosert   s	            r)   rI   AsyncStream.__stream__   s    sDMM*==||::$$&&	$% "c99,&CHHJ[[ II0yyO3yyN2yy$99yy$99yy$8888:Dt}}t);'*yyV&DHUU99&99'88DT"xxz%)F ,,99!!% :  ="6 % T"%(("SX=Q=Q<R.ST7 &J //###(//###s   AG9G G FG C(G G F&%G G ,F=:G <F==G G9GG9G6/G20G66G9c                   #    U $ 7frD   r-   rS   s    r)   
__aenter__AsyncStream.__aenter__   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)   rs   AsyncStream.close   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   rs   r6   r-   r,   r)   r   r      s    V.2H+2** 26+ + !	+
 + /+ 
+0,$\, " %	
 
%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)ServerSentEventi  Nrn   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'   rn   rb   r   r   s        r)   rN   ServerSentEvent.__init__  s(     <D
mtr,   c                    U R                   $ rD   )r   rS   s    r)   rn   ServerSentEvent.event      {{r,   c                    U R                   $ rD   )r   rS   s    r)   r   ServerSentEvent.id  s    xxr,   c                    U R                   $ rD   )r   rS   s    r)   r   ServerSentEvent.retry   r   r,   c                    U R                   $ rD   )r   rS   s    r)   rb   ServerSentEvent.data$  s    zzr,   c                B    [         R                  " U R                  5      $ rD   )ro   loadsrb   rS   s    r)   ro   ServerSentEvent.json(  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__+  s9    '

|7499+U477)S[\`\f\f[gghiir,   )r   r   r   r   )
rn   
str | Nonerb   r   r   r   r   
int | Noner/   r   )r/   r   )r/   r   )r/   str)r/   r   )r2   r3   r4   r5   rN   propertyrn   r   r   rb   ro   r   r   r6   r-   r,   r)   r   r     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)
SSEDecoderi0  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__6  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'   rv   chunkraw_linelinerw   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'   rv   rb   r   r   s        r)   r   SSEDecoder._iter_chunksF  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_bytesR  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   rn   rb   r    r   )r   r   r   r   r   join
startswith	partitionappendint	TypeError
ValueError)r'   r   rw   	fieldname_values         r)   r   SSEDecoder.decodeh  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   rv   Iterator[bytes]r/   r   )rv   r  r/   r  rv   AsyncIterator[bytes]r/   r   )rv   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   0  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'   rv   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  ri   r/   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])r  ri   r  r   r/   ri   ),
__future__r   abcro   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 *_WR[O _Ds{{ *`%'"+)9 `%F&j &jRf fR h  Q #'   
	r,   