L i6ddlmZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z mZmZddlmZmZmZmZmZmZddlZddlmZmZe rddlmZmZe d ZGd d ej>Z Gd d e ee Z!Gddej>Z"Gdde ee"Z#GddZ$GddZ%eGddeZ&ddZ'dd ddZ(y)) annotationsN) TracebackType) TYPE_CHECKINGAnyGenericTypeVarIterator AsyncIteratorcast)SelfProtocol TypeGuardoverride get_originruntime_checkable)is_dictextract_type_var_from_base) AnthropicAsyncAnthropic_TceZdZeddZy)_SyncStreamMetacbddlm}t||rtjdt dyy)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 isinstancewarningswarnDeprecationWarning)selfinstancers Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/anthropic/_streaming.py__instancecheck__z!_SyncStreamMeta.__instancecheck__s1 1 h . MMa"  Nr%rreturnbool__name__ __module__ __qualname__rr'r(r&rr r(rceZdZUdZded<ded< ddZddZddZdd Zdd Z dd Z dd Z dd Z y)StreamzJProvides the core interface to iterate over a synchronous stream response.httpx.ResponseresponseSSEBytesDecoder_decoderc||_||_||_|j|_|j |_yNr5_cast_to_client_make_sse_decoderr7 __stream__ _iteratorr$cast_tor5clients r&__init__zStream.__init__37!   002 *r(c6|jjSr9)r?__next__r$s r&rFzStream.__next__@s~~&&((r(c#6K|jD]}|ywr9r?r$items r&__iter__zStream.__iter__CsNN DJ sc#K|jj|jjEd{y7wr9)r7 iter_bytesr5rGs r& _iter_eventszStream._iter_eventsGs+==++DMM,D,D,FGGGs7A?Ac#xKtt|j}|j}|jj }|j }|D](}|jdk(r||j|||jdk(sK|jdk(s<|jdk(s-|jdk(s|jdk(s|jdk(r;|j}t|rd |vr|j|d <|||||jd k(r|jd k(s|j} |j}|}|jj|||j |jy#t$r |jxsd |j}YbwxYwwN completion)datarAr5 message_start message_delta message_stopcontent_block_startcontent_block_deltacontent_block_stoptypepingerrorz Error code: )bodyr5)r rr;r5r<_process_response_datarOeventjsonrrS Exception status_code_make_status_errorclose r$rAr5 process_dataiteratorsserSr]err_msgs r&r>zStream.__stream__JssDMM*==||:: $$&" CyyL(" GhWW _,99/99.99 5599 5599 44xxz4=V4%7#&99DL"gQQyyF"yyG#xxP88:D!%Gll55!]]6=" J !P!hhOL9M9M8N*OGPs0D1F:4 F:F:F:&F74F:6F77F:c|Sr9r0rGs r& __enter__zStream.__enter__ws r(c$|jyr9rdr$exc_typeexcexc_tbs r&__exit__zStream.__exit__zs r(c8|jjyz Close the response and release the connection. Automatically called if the response body is read to completion. N)r5rdrGs r&rdz Stream.closes r(N)rAtype[_T]r5r4rBrr*Noner*r)r*z Iterator[_T])r*Iterator[ServerSentEvent]r*r roztype[BaseException] | NonerpzBaseException | NonerqzTracebackType | Noner*rvr*rv) r-r.r/__doc____annotations__rCrFrLrOr>rkrrrdr0r(r&r3r3,sT + +! +  +  +)H+Z,"%   r(r3) metaclassceZdZeddZy)_AsyncStreamMetacbddlm}t||rtjdt dyy)Nr)AsyncMessageStreamzUsing `isinstance()` to check if a `AsyncMessageStream` object is an instance of `AsyncStream` is deprecated & will be removed in the next major versionrrTF)rrr r!r"r#)r$r%rs r&r'z"_AsyncStreamMeta.__instancecheck__s2 6 h 2 3 MMk"  r(Nr)r,r0r(r&rrr1r(rceZdZUdZded<ded< ddZddZddZdd Zdd Z dd Z dd Z dd Z y) AsyncStreamzLProvides the core interface to iterate over an asynchronous stream response.r4r5zSSEDecoder | SSEBytesDecoderr7c||_||_||_|j|_|j |_yr9r:r@s r&rCzAsyncStream.__init__rDr(cRK|jjd{S7wr9)r? __anext__rGs r&rzAsyncStream.__anext__s^^--////s '%'cHK|j23d{}|7 6ywr9rIrJs r& __aiter__zAsyncStream.__aiter__s&..  $J .s "  " "cK|jj|jj23d{}|7 6ywr9)r7 aiter_bytesr5)r$rhs r&rOzAsyncStream._iter_eventss?224==3L3L3NO  #I Os%4A AAAA AA cKtt|j}|j}|jj }|j }|23d{}|jdk(r||j|||jdk(sK|jdk(s<|jdk(s-|jdk(s|jdk(s|jdk(r<|j}t|rd |vr|j|d <|||||jd k(r|jd k(s|j} |j}|}|jj|||j 7.#t$r |jxsd |j}YSwxYw6|jd{7ywrQ)r rr;r5r<r^rOr_r`rrSrarbrcacloseres r&r>zAsyncStream.__stream__ssDMM*==||:: $$&!" " #yyL(" GhWW _,99/99.99 5599 5599 44xxz4=V4%7#&99DL"gQQyyF"yyG#xxP88:D!%Gll55!]]6=" 6!P!hhOL9M9M8N*OGP7"Joos[AG F2FF2C!G ; G F(G F2&F/,G .F//G G G cK|Swr9r0rGs r& __aenter__zAsyncStream.__aenter__s  sc@K|jd{y7wr9rmrns r& __aexit__zAsyncStream.__aexit__s jjls cTK|jjd{y7wrt)r5rrGs r&rdzAsyncStream.closes mm""$$$s (&(N)rArur5r4rBrr*rvrw)r*zAsyncIterator[_T])r*AsyncIterator[ServerSentEvent]ryrzr{) r-r.r/r|r}rCrrrOr>rrrdr0r(r&rrsV** + +! +  +  +0+ Z,"%   %r(rceZdZddddd d dZed dZed dZed dZed dZddZ e d d Z y)ServerSentEventNr_rSidretrycL|d}||_||_|xsd|_||_y)N)_id_data_event_retry)r$r_rSrrs r&rCzServerSentEvent.__init__s. <D mt  r(c|jSr9)rrGs r&r_zServerSentEvent.event {{r(c|jSr9)rrGs r&rzServerSentEvent.ids xxr(c|jSr9)rrGs r&rzServerSentEvent.retryrr(c|jSr9)rrGs r&rSzServerSentEvent.datas zzr(c@tj|jSr9)r`loadsrSrGs r&r`zServerSentEvent.json!szz$))$$r(c pd|jd|jd|jd|jd S)NzServerSentEvent(event=z, data=z, id=z, retry=)rrGs r&__repr__zServerSentEvent.__repr__$s9' |7499+U477)S[\`\f\f[gghiir() r_ str | NonerSrrrr int | Noner*rv)r*r)r*r)r*str)r*r) r-r.r/rCpropertyr_rrrSr`rrr0r(r&rrs!        %jjr(rcfeZdZUded<ded<ded<ded<ddZdd Zdd Zdd Zdd Zdd Z y) SSEDecoderz list[str]rrrrr_last_event_idc<d|_g|_d|_d|_yr9)rrrrrGs r&rCzSSEDecoder.__init__/s  " r(c#K|j|D]@}|jD]+}|jd}|j|}|s(|-Byw)^Given an iterator that yields raw binary data, iterate over it & yield every event encounteredutf-8N) _iter_chunks splitlinesdecoder$rgchunkraw_linelinerhs r&rNzSSEDecoder.iter_bytes5s\&&x0 E!,,. w/kk$'I   s A A Ac#Kd}|D]6}|jdD]}||z }|jds|d}!8|r|yyw)^Given an iterator that yields raw binary data, iterate over it and yield individual SSE chunksr(Tkeependss s s Nrendswithr$rgrSrrs r&rzSSEDecoder._iter_chunks?sf E(($(7  ==!@AJD    J s 3AAcK|j|23d{}|jD],}|jd}|j|}|s(|.I7D6yw)rNr) _aiter_chunksrrrs r&rzSSEDecoder.aiter_bytesKse--h7  %!,,. w/kk$'I   7s+A!AAA8A!A!AA!cKd}|23d{}|jdD] }||z }|jds|d}"?7:6|r|yyw)rr(NTrrrrs r&rzSSEDecoder._aiter_chunksUsn#  %(($(7  ==!@AJD   8 J s*AAAA,A AA Acz|s|js%|js|js |jyt |jdj |j|j|j}d|_g|_d|_|S|j dry|jd\}}}|j dr|dd}|dk(r||_y|dk(r|jj|y|dk(rd |vr y||_y|d k(r t||_y y#ttf$rYywxYw) N r: rr_rSrr) rrrrrjoin startswith partitionappendint TypeError ValueError)r$rrh fieldname_values r&rzSSEDecoder.decodeasW;;tzz$:M:MRVR]R]Re!kkYYtzz*&&kk CDKDJDKJ ??3 "nnS1 1e   C !"IE  DK & JJ  e $$ u}',#' ! !%j   z*   sD((D:9D:Nr{rgIterator[bytes]r*rx)rgrr*rrgAsyncIterator[bytes]r*r)rgrr*r)rrr*zServerSentEvent | None) r-r.r/r}rCrNrrrrr0r(r&rr)s8      .r(rceZdZddZddZy)r6cy)rNr0r$rgs r&rNzSSEBytesDecoder.iter_bytes r(cy)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNr0rs r&rzSSEBytesDecoder.aiter_bytesrr(Nrr)r-r.r/rNrr0r(r&r6r6s   r(r6czt|xs|}tj|xrt|tt fS)zaTypeGuard for determining whether or not the given type is a subclass of `Stream` / `AsyncStream`)rinspectisclass issubclassr3r)typorigins r&is_stream_class_typers0 _ #F ??6 " Pz&6;:O'PPr()failure_messagec Hddlm}m}t|dt d||f|S)aGiven 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)r3rrztuple[type, ...])index generic_basesr) _base_clientr3rrr ) stream_clsrr3rs r&extract_stream_chunk_typers-2 %- /DE'  r()rrZr*z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])rrZrrr*rZ)) __future__rabcr`rr!typesrtypingrrrrr r r typing_extensionsr r rrrrhttpx_utilsrrr<rrrABCMetarr3rrrrr6rrr0r(r&rs" VVV`` 72 T]ckk*\WR[O\~s{{*]%'"+)9]%@&j&jRffR h  Q#'  r(