
    ̺i3R                       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Jr  S SKrS SKJr  S SKJr  S SKJr  S S	K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&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.  S
SK/J0r0J1r1  S
SK2J3r3  S
SK4J5r5  SSK6J7r7J8r8  S
SK9J:r:J;r;   " S S\	\7   5      r< " S S\	\7   5      r= " S S\	\7   5      r> " S S\	\7   5      r?      S"S jr@SrA\\\4rB\S .         S#S! jjrCg)$    )annotationsN)TracebackType)TYPE_CHECKINGAnyTypeGenericCallablecast)SelfIterator	AwaitableAsyncIteratorassert_never)	BaseModel)BetaToolUseBlock)BetaMCPToolUseBlock)BetaServerToolUseBlock   )	NOT_GIVENNotGiven)consume_sync_iteratorconsume_async_iterator)buildconstruct_typeconstruct_type_unchecked   )	BetaCitationEventBetaThinkingEventBetaInputJsonEventBetaSignatureEventBetaCompactionEventParsedBetaTextEventParsedBetaMessageStopEventParsedBetaMessageStreamEventParsedBetaContentBlockStopEvent)StreamAsyncStream)BetaRawMessageStreamEvent)is_given   )ResponseFormatT
parse_text)ParsedBetaMessageParsedBetaContentBlockc                      \ rS rSr% S\S'          SS jr\SS j5       r\SS j5       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5       rSS jrSS jrSrg)BetaMessageStream$   Iterator[str]text_streamc                ~    Xl         U R                  5       U l        U R                  5       U l        S U l        X l        g N)_raw_stream__stream_text__r3   
__stream__	_iterator*_BetaMessageStream__final_message_snapshot!_BetaMessageStream__output_formatself
raw_streamoutput_formats      e/var/www/piano.thomer.com/venv/lib/python3.13/site-packages/anthropic/lib/streaming/_beta_messages.py__init__BetaMessageStream.__init__/   7    
 &//1*SW%,    c                .    U R                   R                  $ r5   r6   responser=   s    r@   rG   BetaMessageStream.response:       (((rD   c                L    U R                   R                  R                  S5      $ Nz
request-idrG   headersgetrH   s    r@   
request_idBetaMessageStream.request_id>       }}$$((66rD   c                6    U R                   R                  5       $ r5   )r9   __next__rH   s    r@   rT   BetaMessageStream.__next__B   s    ~~&&((rD   c              #  :   #    U R                    H  nUv   M	     g 7fr5   r9   r=   items     r@   __iter__BetaMessageStream.__iter__E   s     NNDJ #s   c                    U $ r5    rH   s    r@   	__enter__BetaMessageStream.__enter__I   s    rD   c                $    U R                  5         g r5   closer=   exc_typeexcexc_tbs       r@   __exit__BetaMessageStream.__exit__L   s     	

rD   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r6   rb   rH   s    r@   rb   BetaMessageStream.closeT   s     	 rD   c                X    U R                  5         U R                  c   eU R                  $ )aWaits until the stream has been read to completion and returns
the accumulated `Message` object.
)
until_doner:   rH   s    r@   get_final_message#BetaMessageStream.get_final_message\   s,     	,,888,,,rD   c           	     d   U R                  5       n/ nUR                   H0  nUR                  S:X  d  M  UR                  UR                  5        M2     U(       dB  [        SSR                  UR                   Vs/ s H  oDR                  PM     sn5       S35      eSR                  U5      $ s  snf )Returns all `text` content blocks concatenated together.

> [!NOTE]
> Currently the API will only respond with a single content block.

Will raise an error if no `text` content blocks were returned.
textc.get_final_text() can only be called when the API returns a `text` content block.
The API returned ,Q content block type(s) that you can access by calling get_final_message().content rp   contenttypeappendrt   RuntimeErrorjoinr=   messagetext_blocksblockbs        r@   get_final_text BetaMessageStream.get_final_textd   s     ((*!#__EzzV#""5::. % vwzww  RY  Ra  Ra  Ab  Ra  MN  BH  BH  Ra  Ab  xc  wd  du  v  ww{## Abs   9B-c                    [        U 5        g)z)Blocks until the stream has been consumedN)r   rH   s    r@   ro   BetaMessageStream.until_doney   s
    d#rD   c                8    U R                   c   eU R                   $ r5   )r:   rH   s    r@   current_message_snapshot*BetaMessageStream.current_message_snapshot~        ,,888,,,rD   c              #     #    U R                    Hf  n[        UU R                  U R                  R                  R
                  U R                  S9U l        [        XR                  S9nU H  nUv   M	     Mh     g 7fN)eventcurrent_snapshotrequest_headersr?   )r   message_snapshot)	r6   accumulate_eventr:   rG   requestrN   r;   build_eventsr   r=   	sse_eventevents_to_firer   s       r@   r8   BetaMessageStream.__stream__   sk     ))I,<!%!>!> $ 5 5 = ="22	-D) *	LiLijN' ( *s   A8A:c              #     #    U  HI  nUR                   S:X  d  M  UR                  R                   S:X  d  M1  UR                  R                  v   MK     g 7fNcontent_block_delta
text_deltar{   deltart   r=   chunks     r@   r7   !BetaMessageStream.__stream_text__   s=     Ezz22u{{7G7G<7Wkk&&& s   AAA__final_message_snapshot__output_formatr9   r6   r3   N)r>   z!Stream[BetaRawMessageStreamEvent]r?   ResponseFormatT | NotGivenreturnNoner   zhttpx.Responser   z
str | Noner   z-ParsedBetaMessageStreamEvent[ResponseFormatT])r   z7Iterator[ParsedBetaMessageStreamEvent[ResponseFormatT]]r   r   rd   ztype[BaseException] | Nonere   zBaseException | Nonerf   zTracebackType | Noner   r   r   r   r   "ParsedBetaMessage[ResponseFormatT]r   str)r   r2   )__name__
__module____qualname____firstlineno____annotations__rA   propertyrG   rP   rT   rZ   r^   rg   rb   rp   r   ro   r   r8   r7   __static_attributes__r]   rD   r@   r0   r0   $   s    	-5	- 2	- 
		- ) ) 7 7), " %	
 
!-$*$
 - -'rD   r0   c                  R    \ rS rSrSr      SS jrS	S jr        S
S jrSrg)BetaMessageStreamManager   zWrapper over MessageStream that is returned by `.stream()`.

```py
with client.beta.messages.stream(...) as stream:
    for chunk in stream:
        ...
```
c               *    S U l         Xl        X l        g r5   )!_BetaMessageStreamManager__stream&_BetaMessageStreamManager__api_request(_BetaMessageStreamManager__output_formatr=   api_requestr?   s      r@   rA   !BetaMessageStreamManager.__init__   s     DH(,rD   c                j    U R                  5       n[        XR                  S9U l        U R                  $ Nr?   )r   r0   r   r   r=   r>   s     r@   r^   "BetaMessageStreamManager.__enter__   s,    '')
)*DXDXY}}rD   c                T    U R                   b  U R                   R                  5         g g r5   )r   rb   rc   s       r@   rg   !BetaMessageStreamManager.__exit__   s#     ==$MM! %rD   __api_requestr   __streamN)r   z/Callable[[], Stream[BetaRawMessageStreamEvent]]r?   r   r   r   )r   z"BetaMessageStream[ResponseFormatT]r   )	r   r   r   r   __doc__rA   r^   rg   r   r]   rD   r@   r   r      sX    -D- 2	-
 
-
"," "" %	"
 
"rD   r   c                      \ rS rSr% S\S'          SS jr\SS j5       r\SS j5       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5       rSS jrSS jrSrg)BetaAsyncMessageStream   AsyncIterator[str]r3   c                ~    Xl         U R                  5       U l        U R                  5       U l        S U l        X l        g r5   )r6   r7   r3   r8   r9   /_BetaAsyncMessageStream__final_message_snapshot&_BetaAsyncMessageStream__output_formatr<   s      r@   rA   BetaAsyncMessageStream.__init__   rC   rD   c                .    U R                   R                  $ r5   rF   rH   s    r@   rG   BetaAsyncMessageStream.response   rJ   rD   c                L    U R                   R                  R                  S5      $ rL   rM   rH   s    r@   rP   !BetaAsyncMessageStream.request_id   rR   rD   c                R   #    U R                   R                  5       I S h  vN $  N7fr5   )r9   	__anext__rH   s    r@   r    BetaAsyncMessageStream.__anext__   s     ^^--////s   '%'c               J   #    U R                     S h  vN nU7v   M   N
 g 7fr5   rW   rX   s     r@   	__aiter__ BetaAsyncMessageStream.__aiter__   s     .. 	$J	.s   #!!#!#c                   #    U $ 7fr5   r]   rH   s    r@   
__aenter__!BetaAsyncMessageStream.__aenter__   s
     s   c                @   #    U R                  5       I S h  vN   g  N7fr5   ra   rc   s       r@   	__aexit__ BetaAsyncMessageStream.__aexit__   s      jjls   c                T   #    U R                   R                  5       I Sh  vN   g N7frj   rk   rH   s    r@   rb   BetaAsyncMessageStream.close   s      $$&&&s   (&(c                t   #    U R                  5       I Sh  vN   U R                  c   eU R                  $  N7f)rn   N)ro   r   rH   s    r@   rp   (BetaAsyncMessageStream.get_final_message   s:      oo,,888,,, 	 s   86 8c           	       #    U R                  5       I Sh  vN n/ nUR                   H0  nUR                  S:X  d  M  UR                  UR                  5        M2     U(       dB  [        SSR                  UR                   Vs/ s H  oDR                  PM     sn5       S35      eSR                  U5      $  Ns  snf 7f)rs   Nrt   ru   rv   rw   rx   ry   r   s        r@   r   %BetaAsyncMessageStream.get_final_text   s      ..00!#__EzzV#""5::. % vwzww  RY  Ra  Ra  Ab  Ra  MN  BH  BH  Ra  Ab  xc  wd  du  v  ww{## 1 Abs'   B>B7#B>AB>B9 B>9B>c                6   #    [        U 5      I Sh  vN   g N7f)z(Waits until the stream has been consumedN)r   rH   s    r@   ro   !BetaAsyncMessageStream.until_done  s     $T***s   c                8    U R                   c   eU R                   $ r5   )r   rH   s    r@   r   /BetaAsyncMessageStream.current_message_snapshot  r   rD   c                 #    U R                     S h  vN n[        UU R                  U R                  R                  R
                  U R                  S9U l        [        XR                  S9nU H  nU7v   M
     Mo   Nj
 g 7fr   )	r6   r   r   rG   r   rN   r   r   r   r   s       r@   r8   !BetaAsyncMessageStream.__stream__  ss     #// 
	),<!%!>!> $ 5 5 = ="22	-D) *	LiLijN' (
	/s&   BB A>B A'B>B  Bc                  #    U   S h  vN nUR                   S:X  d  M  UR                  R                   S:X  d  M7  UR                  R                  7v   MR   NM
 g 7fr   r   r   s     r@   r7   &BetaAsyncMessageStream.__stream_text__%  sD      	'%zz22u{{7G7G<7Wkk&&&	'4s/   AAAAAAAAAr   N)r>   z&AsyncStream[BetaRawMessageStreamEvent]r?   r   r   r   r   r   r   )r   z<AsyncIterator[ParsedBetaMessageStreamEvent[ResponseFormatT]]r   r   r   r   r   )r   r   )r   r   r   r   r   rA   r   rG   rP   r   r   r   r   rb   rp   r   ro   r   r8   r7   r   r]   rD   r@   r   r      s    ##	-:	- 2	- 
		- ) ) 7 70, " %	
 
'-$*+
 - -'rD   r   c                  X    \ rS rSrSr\S.     S	S jjrS
S jr        SS jrSr	g)BetaAsyncMessageStreamManageri+  a  Wrapper over BetaAsyncMessageStream that is returned by `.stream()`
so that an async context manager can be used without `await`ing the
original client call.

```py
async with client.beta.messages.stream(...) as stream:
    async for chunk in stream:
        ...
```
r   c               *    S U l         Xl        X l        g r5   )&_BetaAsyncMessageStreamManager__stream+_BetaAsyncMessageStreamManager__api_request-_BetaAsyncMessageStreamManager__output_formatr   s      r@   rA   &BetaAsyncMessageStreamManager.__init__7  s     IM(,rD   c                ~   #    U R                   I S h  vN n[        XR                  S9U l        U R                  $  N(7fr   )r   r   r   r   r   s     r@   r   (BetaAsyncMessageStreamManager.__aenter__A  s4     ---
.zI]I]^}} .s   =;)=c                p   #    U R                   b#  U R                   R                  5       I S h  vN   g g  N7fr5   )r   rb   rc   s       r@   r   'BetaAsyncMessageStreamManager.__aexit__F  s/      ==$--%%''' %'s   +646r   N)r   z1Awaitable[AsyncStream[BetaRawMessageStreamEvent]]r?   r   r   r   )r   z'BetaAsyncMessageStream[ResponseFormatT]r   )
r   r   r   r   r   r   rA   r   r   r   r]   rD   r@   r   r   +  s]    	 5>	-F- 2	-
 
-
(,( "( %	(
 
(rD   r   c           	        / nU R                   S:X  a  UR                  U 5        U$ U R                   S:X  a  UR                  U 5        U$ U R                   S:X  a'  UR                  [        [        [           SUS95        U$ U R                   S:X  a  UR                  U 5        U$ U R                   S:X  Ga  UR                  U 5        UR
                  U R                     nU R                  R                   S:X  aO  UR                   S:X  a=  UR                  [        [        SU R                  R                  UR                  S	95        U$ U R                  R                   S
:X  a_  UR                   S:X  d  UR                   S:X  a=  UR                  [        [        SU R                  R                  UR                  S95        U$ U R                  R                   S:X  aX  UR                   S:X  aF  UR                  [        [        SU R                  R                  UR                  =(       d    / S95        U$ U R                  R                   S:X  aO  UR                   S:X  a=  UR                  [        [         SU R                  R"                  UR"                  S95        U$ U R                  R                   S:X  a;  UR                   S:X  a(  UR                  [        [$        SUR&                  S95         U$ U R                  R                   S:X  a:  UR                   S:X  a(  UR                  [        [(        SUR
                  S95        U$ [*        (       a  [-        U R                  5        U$ U R                   S:X  aF  UR
                  U R                     n[        [.        SU R                  US9nUR                  U5        U$ [*        (       a  [-        U 5        U$ )Nmessage_startmessage_deltamessage_stop)r{   r   content_block_startr   r   rt   )r{   rt   snapshotinput_json_deltatool_usemcp_tool_use
input_json)r{   partial_jsonr  citations_deltacitation)r{   r  r  thinking_deltathinking)r{   r  r  signature_delta	signature)r{   r  compaction_delta
compaction)r{   rz   content_block_stop)r{   indexcontent_block)r{   r|   r   r#   r+   rz   r  r   r"   rt   r   r	  inputr   r  	citationsr   r  r    r  r!   r   r   r%   )r   r   r   r  event_to_fires        r@   r   r   P  s   
 KMNzz_$e$x w 
	&e$t s 
~	%,_=N\lm	
p k 
,	,e$h g 
,	,e$(00=;;|+!!V+%%+#"[[--!.!3!3	Z K [[!33!!Z/=3E3E3W%%*)%*[[%=%=!.!4!4	F w [[!22!!V+%%)'!&!5!5!.!8!8!>B	r c [[!11!!Z/%%)'!&!5!5!.!7!7	^ O [[!22!!Z/%%*("/"9"9 < ; [[!33!!\1%%+) - 5 56 % }U[[)" ! 
+	+(00=+%++'	
 	m,  =rD   
__json_bufr   c                f   [        [        [        U 5      [        5      (       dy  [        [        [        [        [        [           [        5      U S95      n [        [        [        U 5      [        5      (       d%  [        SU  S[        R                  " U 5       35      eUcz  U R                  S:X  aQ  [        [        [           [        R                  " S 0 [        [        U R                  R                  5       5      D65      $ [        SU R                   S35      eU R                  S:X  aO  UR                   R#                  [        [        [%        [&        U R(                  R                  5       S95      5        U$ U R                  S:X  Ga  UR                   U R*                     nU R,                  R                  S	:X  a;  UR                  S
:X  a)  U=R.                  U R,                  R.                  -  sl        U$ U R,                  R                  S:X  a  [        U[0        5      (       a  SSKJn  [        [6        [9        U[:        S5      5      nU[7        U R,                  R<                  S5      -  nU(       a<   U(       a  UR?                  SS5      OSnSU;   a  U" USS9Ul         OU" USS9Ul          [G        U[:        U5        U$ U R,                  R                  S:X  ap  UR                  S
:X  a^  URH                  (       d  U R,                  RJ                  /Ul$        U$ URH                  R#                  U R,                  RJ                  5        U$ U R,                  R                  S:X  a;  UR                  S:X  a)  U=RL                  U R,                  RL                  -  sl&        U$ U R,                  R                  S:X  a-  UR                  S:X  a  U R,                  RN                  Ul'        U$ U R,                  R                  S:X  a-  UR                  S:X  a  U R,                  R                   Ul        U$ [P        (       a  [S        U R,                  5        U$ U R                  S:X  aV  UR                   U R*                     n	U	R                  S
:X  a+  [U        U5      (       a  [W        U	R.                  U5      U	l,        U$ U R                  S:X  Ga  U R,                  RZ                  Ul-        U R,                  R\                  Ul.        U R,                  R^                  Ul/        U R`                  Rb                  UR`                  l1        U Rd                  Ul2        U R`                  Rf                  b%  U R`                  Rf                  UR`                  l3        U R`                  Rh                  b%  U R`                  Rh                  UR`                  l4        U R`                  Rj                  b%  U R`                  Rj                  UR`                  l5        U R`                  Rl                  b%  U R`                  Rl                  UR`                  l6        U R`                  Rn                  b%  U R`                  Rn                  UR`                  l7        U$ ! [B         a&  n[C        SU SURE                  S5       35      UeS nAff = f)!N)type_valuez;Unexpected event runtime type, after deserialising twice - z - r   zUnexpected event order, got z before "message_start"r  r   r   rt   r  r   )	from_jsonrD   zutf-8zanthropic-betarx   z&fine-grained-tool-streaming-2025-05-14ztrailing-strings)partial_modeTzhUnable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: z. JSON: r
  r  r  r  r  r  r  r  r]   )8
isinstancer
   r   r   r(   r   r   	TypeErrorbuiltinsr{   r-   r+   	constructr   to_dictr}   rz   r|   r   r.   r  r  r   rt   TRACKS_TOOL_INPUTjiterr  bytesgetattrJSON_BUF_PROPERTYr	  rO   r  
ValueErrordecodesetattrr  r  r  r  r   r   r)   r,   parsed_output	containerstop_reasonstop_sequenceusageoutput_tokenscontext_managementinput_tokenscache_creation_input_tokenscache_read_input_tokensserver_tool_use
iterations)
r   r   r   r?   rz   r  json_bufanthropic_betaer  s
             r@   r   r     s    d3&	22%$4 9:<UV
 $sE*I66MeWTWX`XeXefkXlWmn  ::(!/24E4O4O4uRVWZ\a\i\i\q\q\sRt4u  9%**E\]^^zz**  ''%;5CVCVC^C^C`a	
Z O 
,	,"**5;;7;;|+||v% 0 00F E [[!33'#455+
  ww8I3'OPE%++":":GDD
!Ve)<)<=Mr)RkmC~U,5hM_,`GM,5hT,RGM !2H=V U [[!22||v%(().)=)=(>G%N K %%,,U[[-A-ABJ I [[!11||z)  EKK$8$88 D C [[!22||z)$)KK$9$9!> = [[!33|||+"'++"5"58 3 }U[[)0 / 
+	+(00='H],C,C*4]5G5G*WM'( ' 
	&%*[[%:%:"',{{'>'>$).)B)B&/4{{/H/H,.3.F.F+ ;;##/27++2J2J""/;;22>AFAhAh"">;;..:=B[[=`=`"":;;&&25:[[5P5P""2;;!!-050F0F""-a & !( G  HI  GJ  JR  S[  Sb  Sb  cj  Sk  Rl  m !!s   7-Z  %Z   
Z0
!Z++Z0)r   r(   r   r   r   z3list[ParsedBetaMessageStreamEvent[ResponseFormatT]])
r   r(   r   z)ParsedBetaMessage[ResponseFormatT] | Noner   zhttpx.Headersr?   r   r   r   )D
__future__r   r   typesr   typingr   r   r   r   r	   r
   typing_extensionsr   r   r   r   r   httpxpydanticr   (anthropic.types.beta.beta_tool_use_blockr   ,anthropic.types.beta.beta_mcp_tool_use_blockr   /anthropic.types.beta.beta_server_tool_use_blockr   _typesr   r   _utilsr   r   _modelsr   r   r   _beta_typesr   r   r   r    r!   r"   r#   r$   r%   
_streamingr&   r'   
types.betar(   _utils._utilsr)   _parse._responser+   r,   types.beta.parsed_beta_messager-   r.   r0   r   r   r   r   r'  r#  r   r]   rD   r@   <module>rL     s#   "   D D T T   E L R ) C F F
 
 
 . 3 % : Wo'0 o'd "w7  "Fo'W_5 o'd"(GO$< "(Jd$d 9d 9	dN !    1:k$k @k #	k
 .k (krD   