ó
    ­[jN)  ã                  óh  • 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  \(       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é   )Úextract_type_var_from_base)ÚLandingAIADEÚAsyncLandingAIADE)Ú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        ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/landingai_ade/_streaming.pyÚ__init__ÚStream.__init__   ó6   € ð !ŒØŒØŒØŒØ×0Ñ0Ó2ˆŒØŸ™Ó*ˆ�ó    c                ó6   • U R                   R                  5       $ r%   )r+   Ú__next__©r-   s    r0   r6   ÚStream.__next__,   s   € Ø�~‰~×&Ñ&Ó(Ð(r4   c              #  ó:   #   • U R                    H  nUv •  M	     g 7fr%   ©r+   ©r-   Úitems     r0   Ú__iter__ÚStream.__iter__/   s   é € Ø—N”NˆDØŒJò #ùs   ‚c              #  ó†   #   • U R                   R                  U R                  R                  5       5       S h  v•N   g  N7fr%   )r!   Ú
iter_bytesr   r7   s    r0   Ú_iter_eventsÚStream._iter_events3   s*   é € Ø—=‘=×+Ñ+¨D¯M©M×,DÑ,DÓ,FÓG×GÓGùs   ‚7A¹?ºAc              #  ó0  #   • [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U H  nU" UR                  5       XS9v •  M     UR                  5         g ! UR                  5         f = f7f©N)Údatar.   r   )	r   r   r'   r   r(   Ú_process_response_datarA   ÚjsonÚclose©r-   r.   r   Úprocess_dataÚiteratorÚsses         r0   r*   ÚStream.__stream__6   ss   é € Ü”s˜DŸM™MÓ*ˆØ—=‘=ˆØ—|‘|×:Ñ:ˆØ×$Ñ$Ó&ˆð	Û�Ù"¨¯©«
¸GÑWÔWñ  ð �N‰NÕøˆH�N‰NÕüs   ‚ABÁ B Á0BÂBÂBc                ó   • U $ r%   © r7   s    r0   Ú	__enter__ÚStream.__enter__C   s   € Øˆr4   c                ó$   • U R                  5         g r%   ©rH   ©r-   Úexc_typeÚexcÚexc_tbs       r0   Ú__exit__ÚStream.__exit__F   s   € ð 	�
‰
�r4   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   rH   r7   s    r0   rH   ÚStream.closeN   s   € ð 	�‰×ÑÕr4   ©r'   r(   r!   r+   r   r   )
r.   útype[_T]r   r   r/   r   r#   r   ÚreturnÚNone©r_   r   )r_   zIterator[_T])r_   úIterator[ServerSentEvent]©r_   r   ©rU   ztype[BaseException] | NonerV   zBaseException | NonerW   zTracebackType | Noner_   r`   ©r_   r`   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r1   r6   r=   rA   r*   rP   rX   rH   Ú__static_attributes__rO   r4   r0   r   r      s¢   ‡ ÙTàÓØ.2€HÐ+Ó2ØÓð 26ñ+ð ð+ð !ð	+ð
 ð+ð /ð+ð 
õ+ô)ôôHôôðà,ðð "ðð %ð	ð
 
ô÷r4   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éW   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        r0   r1   ÚAsyncStream.__init__^   r3   r4   c              ƒ  óR   #   • U R                   R                  5       I S h  v•N $  N7fr%   )r+   Ú	__anext__r7   s    r0   rs   ÚAsyncStream.__anext__m   s   é € Ø—^‘^×-Ñ-Ó/×/Ð/Ñ/ùs   ‚' %¡'c               óJ   #   • U R                     S h  v•N nU7v •  M   N
 g 7fr%   r:   r;   s     r0   Ú	__aiter__ÚAsyncStream.__aiter__p   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-   rL   s     r0   rA   ÚAsyncStream._iter_eventst   s8   é € ØŸ™×2Ñ2°4·=±=×3LÑ3LÓ3NÔO÷ 	�#Ø�Iñ	ÑOùs%   ‚4A
¶AºA»A¾A
ÁAÁA
c               ód  #   • [        [        U R                  5      nU R                  nU R                  R
                  nU R                  5       n U  S h  v•N nU" UR                  5       XS97v •  M#   N
 UR                  5       I S h  v•N    g ! UR                  5       I S h  v•N    f = f7frD   )	r   r   r'   r   r(   rF   rA   rG   ÚacloserI   s         r0   r*   ÚAsyncStream.__stream__x   sˆ   é € Ü”s˜DŸM™MÓ*ˆØ—=‘=ˆØ—|‘|×:Ñ:ˆØ×$Ñ$Ó&ˆð	$Ù%÷ X�cÙ"¨¯©«
¸GÑWÕWñX˜Xð —/‘/Ó#×#Ò#ø�(—/‘/Ó#×#Ò#üsZ   ‚AB0ÁB ÁA7ÁA5ÁA7ÁB Á5A7Á7B Á8B0ÂBÂB0ÂB-Â&B)Â'B-Â-B0c              ƒ  ó   #   • U $ 7fr%   rO   r7   s    r0   Ú
__aenter__ÚAsyncStream.__aenter__…   s
   é € Øˆùs   ‚c              ƒ  ó@   #   • U R                  5       I S h  v•N   g  N7fr%   rS   rT   s       r0   Ú	__aexit__ÚAsyncStream.__aexit__ˆ   s   é € ð �j‰j‹l×Óùs   ‚–—c              ƒ  óT   #   • U R                   R                  5       I Sh  v•N   g N7fr[   )r   r|   r7   s    r0   rH   ÚAsyncStream.close�   s   é € ð �m‰m×"Ñ"Ó$×$Ó$ùs   ‚( &¡(r]   )
r.   r^   r   r   r/   r   r#   r   r_   r`   ra   )r_   zAsyncIterator[_T])r_   úAsyncIterator[ServerSentEvent]rc   rd   re   )rf   rg   rh   ri   rj   rk   r   r1   rs   rv   rA   r*   r   r‚   rH   rl   rO   r4   r0   rn   rn   W   s¡   ‡ ÙVàÓØ.2€HÐ+Ó2Ø*Ó*ð 26ñ+ð ð+ð !ð	+ð
 "ð+ð /ð+ð 
õ+ô0ôôô$ôðà,ðð "ðð %ð	ð
 
ô÷%r4   rn   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©ÚeventrE   ÚidÚretryc               óR   • Uc  SnX0l         X l        U=(       d    S U l        X@l        g )NÚ )Ú_idÚ_dataÚ_eventÚ_retry)r-   r‹   rE   rŒ   r�   s        r0   r1   ÚServerSentEvent.__init__š   s(   € ð ‰<ØˆDàŒØŒ
Ø—m˜tˆŒØ�r4   c                ó   • U R                   $ r%   )r’   r7   s    r0   r‹   ÚServerSentEvent.eventª   ó   € à�{‰{Ðr4   c                ó   • U R                   $ r%   )r�   r7   s    r0   rŒ   ÚServerSentEvent.id®   s   € à�x‰xˆr4   c                ó   • U R                   $ r%   )r“   r7   s    r0   r�   ÚServerSentEvent.retry²   r—   r4   c                ó   • U R                   $ r%   )r‘   r7   s    r0   rE   ÚServerSentEvent.data¶   s   € à�z‰zÐr4   c                óB   • [         R                  " U R                  5      $ r%   )rG   ÚloadsrE   r7   s    r0   rG   ÚServerSentEvent.jsonº   s   € Ü�zŠz˜$Ÿ)™)Ó$Ð$r4   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Š   r7   s    r0   Ú__repr__ÚServerSentEvent.__repr__½   s9   € à'¨¯
©
 |°7¸4¿9¹9¸+ÀUÈ4Ï7É7È)ÐS[Ð\`×\fÑ\fÐ[gÐghÐiÐir4   )r‘   r’   r�   r“   )
r‹   ú
str | NonerE   r¥   rŒ   r¥   r�   ú
int | Noner_   r`   )r_   r¥   )r_   r¦   )r_   Ústr)r_   r   )rf   rg   rh   ri   r1   Úpropertyr‹   rŒ   r�   rE   rG   r   r£   rl   rO   r4   r0   rˆ   rˆ   ™   s²   † ð !ØØØ ñð ðð ð	ð
 ðð ðð 
õð  óó ðð óó ðð óó ðð óó ðô%ð ójó ójr4   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)Ú
SSEDecoderéÂ   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“   r7   s    r0   r1   ÚSSEDecoder.__init__È   s   € ØˆŒØˆŒ
Ø"ˆÔØˆ�r4   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-   rK   ÚchunkÚraw_lineÚlinerL   s         r0   r@   ÚSSEDecoder.iter_bytesÎ   sS   é € à×&Ñ& xÖ0ˆEà!×,Ñ,Ö.�Ø—‘ wÓ/�Ø—k‘k $Ó'�ß�3Ø”Ió	 /ò 1ùs   ‚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 chunksr4   T©Úkeepends©s   s   

s   

N©r³   Úendswith©r-   rK   rE   r¶   r¸   s        r0   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         r0   ry   ÚSSEDecoder.aiter_bytesä   s[   é € à×-Ñ-¨hÔ7÷ 	�%à!×,Ñ,Ö.�Ø—‘ wÓ/�Ø—k‘k $Ó'�ß�3Ø•Ió	 /ñ	Ñ7ùs+   ‚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»   r4   NTr¼   r¾   r¿   rÁ   s        r0   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   r‹   rE   rŒ   Ú r�   )r’   r‘   r¬   r“   rˆ   ÚjoinÚ
startswithÚ	partitionÚappendÚintÚ	TypeErrorÚ
ValueError)r-   r¸   rL   Ú	fieldnameÚ_Úvalues         r0   r´   ÚSSEDecoder.decodeú   sW  € ö Ø—;—; t§z§z¸$×:M×:MÐRV×R]ÑR]ÑReØä!Ø—k‘kØ—Y‘Y˜tŸz™zÓ*Ø×&Ñ&Ø—k‘kñ	ˆCð ˆDŒKØˆDŒJØˆDŒKàˆJà�?‰?˜3×ÑØà"Ÿn™n¨SÓ1Ñˆ	�eà×Ñ˜C× Ñ Ø˜!˜"�IˆEà˜ÓØŒKð  ð ˜&Ó Ø�J‰J×Ñ˜eÔ$ð ð ˜$ÓØ�u‹}Øð ð ',Õ#ð ð ˜'Ó!ðÜ! %›j�”ð ð àøô œzÐ*ó Øð ðús   Ä5E ÅEÅE)r‘   r’   r¬   r“   Nre   ©rK   úIterator[bytes]r_   rb   )rK   rÙ   r_   rÙ   ©rK   úAsyncIterator[bytes]r_   r†   )rK   rÛ   r_   rÛ   )r¸   r§   r_   zServerSentEvent | None)rf   rg   rh   ri   rk   r1   r@   r²   ry   rÄ   r´   rl   rO   r4   r0   rª   rª   Â   s8   ‡ ØÓØÓØÓØÓôôô
ôô
÷.r4   rª   c                  ó(   • \ rS rSrSS jrSS jrSrg)r    i+  c                ó   • g)r°   NrO   ©r-   rK   s     r0   r@   ÚSSEBytesDecoder.iter_bytes-  ó   € àr4   c                ó   • g)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNrO   rÞ   s     r0   ry   ÚSSEBytesDecoder.aiter_bytes1  rà   r4   rO   NrØ   rÚ   )rf   rg   rh   ri   r@   ry   rl   rO   r4   r0   r    r    +  s   † ô÷r4   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   rn   )ÚtypÚorigins     r0   Úis_stream_class_typeré   6  s0   € ä˜‹_×# €FÜ�?Š?˜6Ó"×P¤z°&¼6Ä;Ð:OÓ'PÐPr4   )Úfailure_messagec          	     ó@   • SSK JnJn  [        U S[	        SX#45      US9$ )zêGiven 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   rn   r   ztuple[type, ...])ÚindexÚgeneric_basesrê   )Ú_base_clientr   rn   r   r   )Ú
stream_clsrê   r   rn   s       r0   Úextract_stream_chunk_typerð   <  s+   € ÷ 2ä%ØØÜÐ-°Ð/DÓEØ'ñ	ð r4   )rç   Útyper_   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])rï   rñ   rê   r¥   r_   rñ   )&Ú
__future__r   rG   rä   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r   r   r   ÚhttpxÚ_utilsr   r(   r   r   Ú_modelsr   r   r   rn   rˆ   rª   r    ré   rð   rO   r4   r0   Ú<module>rù      s½   ðå "ã Û Ý ß `× `Ó `ß `× `ã å .æß8Ý,ñ ˆTƒ]€ô>ˆW�R‰[ô >ôB?%�'˜"‘+ô ?%÷D&jñ &j÷Rfñ fðR ô�hó ó ðôQð #'ñØðð  ðð 
ö	r4   