Ë
    /æje?  ã                  óÌ  — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZmZmZmZmZmZ d dlZddlmZmZ ddlmZmZ dd	lmZm Z m!Z! dd
l"m#Z# erddl$m%Z%m&Z& ddl'm(Z(  ed«      Z) G d„ de
e)   «      Z* G d„ de
e)   «      Z+ G d„ d«      Z, ejZ                  d«      Z. G d„ d«      Z/ G d„ d«      Z0e G d„ de«      «       Z1dd„Z2ddœ	 	 	 	 	 dd„Z3y) é    )ÚannotationsN)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚTypeVarÚIteratorÚOptionalÚAsyncIteratorÚcast)ÚSelfÚProtocolÚ	TypeGuardÚoverrideÚ
get_originÚruntime_checkableé   )Ú
is_mappingÚextract_type_var_from_base)Úrequest_exceptionsÚtimeout_exceptions)ÚAPIErrorÚAPITimeoutErrorÚAPIConnectionError)Údrain_response_async)ÚOpenAIÚAsyncOpenAI)ÚFinalRequestOptionsÚ_Tc                  óœ   — e Zd ZU dZded<   dZded<   ded<   dd	œ	 	 	 	 	 	 	 	 	 dd
„Zdd„Zdd„Zdd„Z	dd„Z
dd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚStreamzJProvides the core interface to iterate over a synchronous stream response.úhttpx2.ResponseÚresponseNúOptional[FinalRequestOptions]Ú_optionsÚSSEBytesDecoderÚ_decoder©Úoptionsc               ó�   — || _         || _        || _        || _        |j	                  «       | _        | j                  «       | _        y ©N©r#   Ú_cast_toÚ_clientr%   Ú_make_sse_decoderr'   Ú
__stream__Ú	_iterator©ÚselfÚcast_tor#   Úclientr)   s        úT/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/openai/_streaming.pyÚ__init__zStream.__init__!   ó>   € ð !ˆŒØˆŒØˆŒØˆŒØ×0Ñ0Ó2ˆŒØŸ™Ó*ˆ�ó    c                ó6   — | j                   j                  «       S r+   )r1   Ú__next__©r3   s    r6   r;   zStream.__next__0   s   € Ø�~‰~×&Ñ&Ó(Ð(r9   c              #  ó6   K  — | j                   D ]  }|–— Œ y ­wr+   ©r1   ©r3   Úitems     r6   Ú__iter__zStream.__iter__3   s   è ø€ Ø—N‘Nò 	ˆDØ‹Jñ	ùs   ‚c              #  óV  K  — 	 | j                   j                  | j                  j                  «       «      E d {  –—†  y 7 Œ# t        «       $ r&}t	        | j                  j
                  ¬«      |‚d }~wt        «       $ r&}t        | j                  j
                  ¬«      |‚d }~ww xY w­w©N)Úrequest)r'   Ú
iter_bytesr#   r   r   rD   r   r   )r3   Úerrs     r6   Ú_iter_eventszStream._iter_events7   s€   è ø€ ð	MØ—}‘}×/Ñ/°·±×0HÑ0HÓ0JÓK×KÒKùÜ!Ó#ò 	JÜ!¨$¯-©-×*?Ñ*?Ô@ÀcÐIûÜ!Ó#ò 	MÜ$¨T¯]©]×-BÑ-BÔCÈÐLûð	MüsC   ‚B)„6A ºA »A ¿B)Á A ÁB&Á!A0Á0B&Â !B!Â!B&Â&B)c              #  ó®  K  — t        t        | j                  «      }| j                  }| j                  j
                  }| j                  «       }	 |D �]Ù  }|j                  j                  d«      r �n»|j                  rÚ|j                  j                  d«      r¿|j                  «       }|j                  dk(  r„t        |«      ry|j                  d«      rhd }|j                  d«      }t        |«      r|j                  d«      }|rt        |t        «      sd}t        || j                  j                   |d   ¬«      ‚ |||j                  dœ||¬«      –— �Œ|j                  «       }t        |«      ry|j                  d«      rhd }|j                  d«      }t        |«      r|j                  d«      }|rt        |t        «      sd}t        || j                  j                   |d   ¬«      ‚ || j"                  �%| j"                  j$                  r||j                  dœn|||¬«      –— �ŒÜ |j'                  «        y # |j'                  «        w xY w­w)	Nú[DONE]úthread.ÚerrorÚmessageú"An error occurred during streaming©rL   rD   Úbody©ÚdataÚevent©rQ   r4   r#   )r   r   r-   r#   r.   Ú_process_response_datarG   rQ   Ú
startswithrR   Újsonr   ÚgetÚ
isinstanceÚstrr   rD   r%   Úsynthesize_event_and_dataÚclose©	r3   r4   r#   Úprocess_dataÚiteratorÚsserQ   rL   rK   s	            r6   r0   zStream.__stream__?   sò  è ø€ Ü”s˜DŸM™MÓ*ˆØ—=‘=ˆØ—|‘|×:Ñ:ˆØ×$Ñ$Ó&ˆð1	Øó -�Ø—8‘8×&Ñ& xÔ0Úð —9’9 §¡×!5Ñ!5°iÔ!@ØŸ8™8›:�Dà—y‘y GÒ+´
¸4Ô0@ÀTÇXÁXÈgÔEVØ"&˜Ø $§¡¨Ó 1˜Ü% eÔ,Ø&+§i¡i°	Ó&:˜GÙ&¬j¸Ä#Ô.FØ&J˜Gä&Ø$+Ø$(§M¡M×$9Ñ$9Ø!% g¡ôð ñ '°TÀCÇIÁIÑ,NÐX_ÐjrÔsÔsàŸ8™8›:�DÜ! $Ô'¨D¯H©H°WÔ,=Ø"&˜Ø $§¡¨Ó 1˜Ü% eÔ,Ø&+§i¡i°	Ó&:˜GÙ&¬j¸Ä#Ô.FØ&J˜Gä&Ø$+Ø$(§M¡M×$9Ñ$9Ø!% g¡ôð ñ 'àŸ=™=Ð4¸¿¹×9`Ò9`ð '+°S·Y±YÒ?à!Ø 'Ø!)ôô ðO-ð` �N‰NÕøˆH�N‰NÕüs   ‚AIÁGI  È/IÉ IÉIc                ó   — | S r+   © r<   s    r6   Ú	__enter__zStream.__enter__x   s   € Øˆr9   c                ó$   — | j                  «        y r+   ©r[   ©r3   Úexc_typeÚexcÚexc_tbs       r6   Ú__exit__zStream.__exit__{   s   € ð 	�
‰
�r9   c                ó8   — | j                   j                  «        y©zŠ
        Close the response and release the connection.

        Automatically called if the response body is read to completion.
        N)r#   r[   r<   s    r6   r[   zStream.closeƒ   s   € ð 	�‰×ÑÕr9   )
r4   útype[_T]r#   r"   r5   r   r)   r$   ÚreturnÚNone©rm   r   )rm   zIterator[_T])rm   úIterator[ServerSentEvent]©rm   r   ©rf   ztype[BaseException] | Nonerg   zBaseException | Nonerh   zTracebackType | Nonerm   rn   ©rm   rn   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r%   r7   r;   rA   rG   r0   rb   ri   r[   ra   r9   r6   r!   r!      s£   … ÙTàÓØ.2€HÐ+Ó2ØÓð 26ñ+ð ð+ð "ð	+ð
 ð+ð /ð+ð 
ó+ó)óóMó7órðà,ðð "ðð %ð	ð
 
óôr9   r!   c                  ó¤   — e Zd ZU dZded<   dZded<   ded<   dd	œ	 	 	 	 	 	 	 	 	 dd
„Zdd„Zdd„Zdd„Z	dd„Z
dd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy)ÚAsyncStreamzLProvides the core interface to iterate over an asynchronous stream response.r"   r#   Nr$   r%   zSSEDecoder | SSEBytesDecoderr'   r(   c               ó�   — || _         || _        || _        || _        |j	                  «       | _        | j                  «       | _        y r+   r,   r2   s        r6   r7   zAsyncStream.__init__“   r8   r9   c              ƒ  óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wr+   )r1   Ú	__anext__r<   s    r6   r}   zAsyncStream.__anext__¢   s   è ø€ Ø—^‘^×-Ñ-Ó/×/Ð/Ð/ús   ‚' %¡'c               óH   K  — | j                   2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wr+   r>   r?   s     r6   Ú	__aiter__zAsyncStream.__aiter__¥   s&   è ø€ ØŸ.™.÷ 	ð 	�$ØŒJð	ø™.ùs   ‚"� “” —"ž  "c               óf  K  — 	 | j                   j                  | j                  j                  «       «      2 3 d {  –—† }|­–— Œ7 Œ
6 y # t        «       $ r&}t	        | j                  j
                  ¬«      |‚d }~wt        «       $ r&}t        | j                  j
                  ¬«      |‚d }~ww xY w­wrC   )r'   Úaiter_bytesr#   r   r   rD   r   r   )r3   r_   rF   s      r6   rG   zAsyncStream._iter_events©   s”   è ø€ ð	MØ!Ÿ]™]×6Ñ6°t·}±}×7PÑ7PÓ7RÓS÷ ð �cØ”	ðøÑSøä!Ó#ò 	JÜ!¨$¯-©-×*?Ñ*?Ô@ÀcÐIûÜ!Ó#ò 	MÜ$¨T¯]©]×-BÑ-BÔCÈÐLûð	MüsT   ‚B1„3A
 ·A»A¼A¿A
 ÁAÁA
 Á	B1Á
B.Á!A8Á8B.Â!B)Â)B.Â.B1c               ó4  K  — t        t        | j                  «      }| j                  }| j                  j
                  }| j                  «       }	 |2 3 d {  –—† }|j                  j                  d«      r%|j                  dk(  rt        |«      ƒ d {  –—†   �n¼|j                  rÛ|j                  j                  d«      rÀ|j                  «       }|j                  dk(  r„t        |«      ry|j                  d«      rhd }|j                  d«      }t        |«      r|j                  d«      }|rt        |t         «      sd}t#        || j                  j$                  |d   ¬«      ‚ |||j                  dœ||¬	«      ­–— �Œ0|j                  «       }t        |«      ry|j                  d«      rhd }|j                  d«      }t        |«      r|j                  d«      }|rt        |t         «      sd}t#        || j                  j$                  |d   ¬«      ‚ || j&                  �%| j&                  j(                  r||j                  dœn|||¬	«      ­–— �Œ|j+                  «       ƒ d {  –—†  y 7 �Œ7 �Œà6 Œ!7 Œ# |j+                  «       ƒ d {  –—†7   w xY w­w)
NrI   zHTTP/1.1rJ   rK   rL   rM   rN   rP   rS   )r   r   r-   r#   r.   rT   rG   rQ   rU   Úhttp_versionr   rR   rV   r   rW   rX   rY   r   rD   r%   rZ   Úacloser\   s	            r6   r0   zAsyncStream.__stream__²   s3  è ø€ Ü”s˜DŸM™MÓ*ˆØ—=‘=ˆØ—|‘|×:Ñ:ˆØ×$Ñ$Ó&ˆð6	$Ø%÷ 2ð 2�cØ—8‘8×&Ñ& xÔ0ð  ×,Ñ,°
Ò:Ü2°8Ó<×<Ð<Úð —9’9 §¡×!5Ñ!5°iÔ!@ØŸ8™8›:�Dà—y‘y GÒ+´
¸4Ô0@ÀTÇXÁXÈgÔEVØ"&˜Ø $§¡¨Ó 1˜Ü% eÔ,Ø&+§i¡i°	Ó&:˜GÙ&¬j¸Ä#Ô.FØ&J˜Gä&Ø$+Ø$(§M¡M×$9Ñ$9Ø!% g¡ôð ñ '°TÀCÇIÁIÑ,NÐX_ÐjrÔsÕsàŸ8™8›:�DÜ! $Ô'¨D¯H©H°WÔ,=Ø"&˜Ø $§¡¨Ó 1˜Ü% eÔ,Ø&+§i¡i°	Ó&:˜GÙ&¬j¸Ä#Ô.FØ&J˜Gä&Ø$+Ø$(§M¡M×$9Ñ$9Ø!% g¡ôð ñ 'àŸ=™=Ð4¸¿¹×9`Ò9`ð '+°S·Y±YÒ?à!Ø 'Ø!)ôõ ð —/‘/Ó#×#Ñ#ðk2ùð =ùð &øðj $ù�(—/‘/Ó#×#Ò#üss   ‚AJÁI: ÁI6ÁI0ÁI6Á9I: ÂI3ÂGI: ÉJÉ*I8É+JÉ0I6É3I: É6I: É8JÉ:JÊJÊJÊJc              ƒ  ó   K  — | S ­wr+   ra   r<   s    r6   Ú
__aenter__zAsyncStream.__aenter__ð   s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr+   rd   re   s       r6   Ú	__aexit__zAsyncStream.__aexit__ó   s   è ø€ ð �j‰j‹l×Òúó   ‚–—c              ƒ  óT   K  — | j                   j                  «       ƒ d{  –—†  y7 Œ­wrk   )r#   r„   r<   s    r6   r[   zAsyncStream.closeû   s   è ø€ ð �m‰m×"Ñ"Ó$×$Ò$ús   ‚( &¡(c              ƒ  ó@   K  — | j                  «       ƒ d{  –—†  y7 Œ­w)zCClose the response and release the connection. Alias for `close()`.Nrd   r<   s    r6   r„   zAsyncStream.aclose  s   è ø€ à�j‰j‹l×Òúr‰   )
r4   rl   r#   r"   r5   r   r)   r$   rm   rn   ro   )rm   zAsyncIterator[_T])rm   úAsyncIterator[ServerSentEvent]rq   rr   rs   )rt   ru   rv   rw   rx   r%   r7   r}   r   rG   r0   r†   rˆ   r[   r„   ra   r9   r6   rz   rz   Œ   s¨   … ÙVàÓØ.2€HÐ+Ó2Ø*Ó*ð 26ñ+ð ð+ð "ð	+ð
 ð+ð /ð+ð 
ó+ó0óóMó<$ó|ðà,ðð "ðð %ð	ð
 
óó%ôr9   rz   c                  ó”   — e Zd Zdddddœ	 	 	 	 	 	 	 	 	 d
d„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zdd„Z	e
dd	„«       Zy)ÚServerSentEventN©rR   rQ   ÚidÚretryc               óL   — |€d}|| _         || _        |xs d | _        || _        y )NÚ )Ú_idÚ_dataÚ_eventÚ_retry)r3   rR   rQ   r�   r‘   s        r6   r7   zServerSentEvent.__init__	  s.   € ð ˆ<ØˆDàˆŒØˆŒ
Ø’m˜tˆŒØˆ�r9   c                ó   — | j                   S r+   )r–   r<   s    r6   rR   zServerSentEvent.event  ó   € à�{‰{Ðr9   c                ó   — | j                   S r+   )r”   r<   s    r6   r�   zServerSentEvent.id  s   € à�x‰xˆr9   c                ó   — | j                   S r+   )r—   r<   s    r6   r‘   zServerSentEvent.retry!  r™   r9   c                ó   — | j                   S r+   )r•   r<   s    r6   rQ   zServerSentEvent.data%  s   € à�z‰zÐr9   c                ó@   — t        j                  | j                  «      S r+   )rV   ÚloadsrQ   r<   s    r6   rV   zServerSentEvent.json)  s   € Ü�z‰z˜$Ÿ)™)Ó$Ð$r9   c           	     óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )NzServerSentEvent(event=z, data=z, id=z, retry=ú)r�   r<   s    r6   Ú__repr__zServerSentEvent.__repr__,  s9   € à'¨¯
©
 |°7¸4¿9¹9¸+ÀUÈ4Ï7É7È)ÐS[Ð\`×\fÑ\fÐ[gÐghÐiÐir9   )
rR   ú
str | NonerQ   r¢   r�   r¢   r‘   ú
int | Nonerm   rn   )rm   r¢   )rm   r£   )rm   rY   )rm   r   )rt   ru   rv   r7   ÚpropertyrR   r�   r‘   rQ   rV   r   r¡   ra   r9   r6   rŽ   rŽ     s²   „ ð !ØØØ ñð ðð ð	ð
 ðð ðð 
óð  òó ðð òó ðð òó ðð òó ðó%ð òjó ñjr9   rŽ   s   [\r\n]c                  ó0   — e Zd ZdZdd„Zdd„Zd	d„Zd
d„Zy)Ú_SSELineDecoderzFIncrementally split CR, LF, and CRLF without copying growing prefixes.c                ó0   — t        «       | _        d| _        y )NF)Ú	bytearrayÚ_bufferÚ_skip_lfr<   s    r6   r7   z_SSELineDecoder.__init__7  s   € Ü “{ˆŒØˆ�r9   c                óR   — | j                   j                  t        |«      || «       y r+   )r©   ÚextendÚ
memoryview)r3   ÚchunkÚstartÚends       r6   Ú_appendz_SSELineDecoder._append;  s    € Ø�‰×ÑœJ uÓ-¨e°CÐ8Õ9r9   c              #  óÒ  K  — d}t         j                  |«      D ]—  }|j                  «       }| j                  r||k(  r||   dk(  rd| _        |dz   }Œ9d| _        | j	                  |||«       t        | j                  «      }| j                  j                  «        ||   dk(  | _        |dz   }|–— Œ™ |t        |«      k  r$d| _        | j	                  ||t        |«      «       y y ­w)Nr   é
   Fr   é   )	Ú_SSE_LINE_ENDÚfinditerr¯   rª   r±   Úbytesr©   ÚclearÚlen)r3   r®   r¯   Úmatchr°   Úlines         r6   Úfeedz_SSELineDecoder.feed>  sÜ   è ø€ ØˆÜ"×+Ñ+¨EÓ2ò 	ˆEØ—+‘+“-ˆCØ�}Š} ¨¢°%¸±*ÀÒ2BØ %�”Ø˜a™�ØØ!ˆDŒMØ�L‰L˜  sÔ+Ü˜Ÿ™Ó&ˆDØ�L‰L×ÑÔ Ø! #™J¨"Ñ,ˆDŒMØ˜!‘GˆEØ‹Jð	ð ”3�u“:ÒØ!ˆDŒMØ�L‰L˜ ¤s¨5£zÕ2ð ùs   ‚C%C'c              #  óŒ   K  — | j                   r4t        | j                   «      }| j                   j                  «        |–— y y ­wr+   )r©   r·   r¸   )r3   r»   s     r6   Úfinishz_SSELineDecoder.finishQ  s5   è ø€ Ø�<Š<Ü˜Ÿ™Ó&ˆDØ�L‰L×ÑÔ Ø‹Jð ùs   ‚AANrs   )r®   r·   r¯   Úintr°   r¿   rm   rn   )r®   r·   rm   úIterator[bytes])rm   rÀ   )rt   ru   rv   rw   r7   r±   r¼   r¾   ra   r9   r6   r¦   r¦   4  s   „ ÙPóó:ó3ô&r9   r¦   c                  ój   — e Zd ZU dZded<   ded<   ded<   ded<   dd	„Zdd
„Zdd„Zdd„Zdd„Z	dd„Z
y)Ú
SSEDecoderzEDecode SSE incrementally without imposing a line or event size limit.z	list[str]r•   r¢   r–   r£   r—   Ú_last_event_idc                ó$   — | j                  «        y r+   )Ú_resetr<   s    r6   r7   zSSEDecoder.__init__`  s   € Ø�‰�r9   c                ó<   — d | _         g | _        d | _        d | _        y r+   )r–   r•   rÃ   r—   r<   s    r6   rÅ   zSSEDecoder._resetc  s   € ØˆŒØˆŒ
Ø"ˆÔØˆ�r9   c              #  óh   K  — |D ])  }| j                  |j                  d«      «      }|sŒ&|–— Œ+ y ­w)Nzutf-8)Údecode)r3   ÚlinesÚraw_liner_   s       r6   Ú_decode_lineszSSEDecoder._decode_linesi  s4   è ø€ Øò 	ˆHØ—+‘+˜hŸo™o¨gÓ6Ó7ˆCÚØ“	ñ	ùs   ‚(2«2c              #  ó   K  — t        «       }	 |D ]*  }| j                  |j                  |«      «      E d{  –—†  Œ, | j                  |j                  «       «      E d{  –—†  | j	                  «        y7 Œ>7 Œ# | j	                  «        w xY w­w)z5Given raw binary data, yield every event encountered.N©r¦   rË   r¼   r¾   rÅ   )r3   r^   Údecoderr®   s       r6   rE   zSSEDecoder.iter_byteso  sy   è ø€ ä!Ó#ˆð	Ø!ò C�Ø×-Ñ-¨g¯l©l¸5Ó.AÓB×BÑBðCà×)Ñ)¨'¯.©.Ó*:Ó;×;Ð;à�K‰K�Mð CøØ;ùà�K‰K�Müs>   ‚BŽ(A9 ¶A5·(A9 ÁA7Á A9 Á$BÁ5A9 Á7A9 Á9BÂBc               ó2  K  — t        «       }	 |2 3 d{  –—† }| j                  |j                  |«      «      D ]  }|­–— Œ	 Œ47 Œ/6 | j                  |j                  «       «      D ]  }|­–— Œ	 	 | j	                  «        y# | j	                  «        w xY w­w)z;Given async raw binary data, yield every event encountered.NrÍ   )r3   r^   rÎ   r®   r_   s        r6   r�   zSSEDecoder.aiter_bytesy  sŽ   è ø€ ä!Ó#ˆð	Ø'÷ ð �eØ×-Ñ-¨g¯l©l¸5Ó.AÓBò �CØ”Iñðø˜xð ×)Ñ)¨'¯.©.Ó*:Ó;ò �Ø”	ñð �K‰K�MøˆD�K‰K�Müs<   ‚BŽB �A”A•A˜,B ÁAÁ*B Á1BÂBÂBc                óz  — |sŽ| j                   s%| j                  s| j                  s| j                  €y t	        | j                   dj                  | j                  «      | j                  | j                  ¬«      }d | _         g | _        d | _        |S |j                  d«      ry |j                  d«      \  }}}|j                  d«      r|dd  }|dk(  r|| _         y |dk(  r| j                  j                  |«       y |dk(  rd	|v r	 y || _        y |d
k(  r	 t        |«      | _        y 	 y # t        t        f$ r Y y w xY w)Nú
r�   ú:ú r   rR   rQ   r�   ú r‘   )r–   r•   rÃ   r—   rŽ   ÚjoinrU   Ú	partitionÚappendr¿   Ú	TypeErrorÚ
ValueError)r3   r»   r_   Ú	fieldnameÚ_Úvalues         r6   rÈ   z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Ñˆ	�1�eà×Ñ˜CÔ Ø˜!˜"�IˆEà˜ÒØˆDŒKð  ð ˜&Ò Ø�J‰J×Ñ˜eÔ$ð ð ˜$ÒØ�u‰}Øð ð ',�Ô#ð ð ˜'Ò!ðÜ! %›j�”ð ð àøô œzÐ*ò Øð ðús   ÄD( Ä(D:Ä9D:Nrs   )rÉ   rÀ   rm   rp   ©r^   rÀ   rm   rp   ©r^   zAsyncIterator[bytes]rm   rŒ   )r»   rY   rm   zServerSentEvent | None)rt   ru   rv   rw   rx   r7   rÅ   rË   rE   r�   rÈ   ra   r9   r6   rÂ   rÂ   X  s;   … ÙOàÓØÓØÓØÓóóóóó
ô.r9   rÂ   c                  ó   — e Zd Zdd„Zdd„Zy)r&   c                 ó   — y)z^Given an iterator that yields raw binary data, iterate over it & yield every event encounteredNra   ©r3   r^   s     r6   rE   zSSEBytesDecoder.iter_bytes¸  ó   € àr9   c                 ó   — y)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNra   rá   s     r6   r�   zSSEBytesDecoder.aiter_bytes¼  râ   r9   NrÝ   rÞ   )rt   ru   rv   rE   r�   ra   r9   r6   r&   r&   ¶  s   „ óôr9   r&   c                óz   — t        | «      xs | }t        j                  |«      xr t        |t        t
        f«      S )zaTypeGuard for determining whether or not the given type is a subclass of `Stream` / `AsyncStream`)r   ÚinspectÚisclassÚ
issubclassr!   rz   )ÚtypÚorigins     r6   Úis_stream_class_typerê   Á  s0   € ä˜‹_Ò# €FÜ�?‰?˜6Ó"ÒP¤z°&¼6Ä;Ð:OÓ'PÐPr9   )Úfailure_messagec          	     óH   — ddl m}m} t        | dt	        d||f«      |¬«      S )a  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!   rz   r   ztuple[type, ...])ÚindexÚgeneric_basesrë   )Ú_base_clientr!   rz   r   r   )Ú
stream_clsrë   r!   rz   s       r6   Úextract_stream_chunk_typerñ   Ç  s-   € ÷ 2ä%ØØÜÐ-°¸Ð/DÓEØ'ô	ð r9   )rè   Útyperm   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])rð   rò   rë   r¢   rm   rò   )4Ú
__future__r   ÚrerV   rå   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r   r   r   Úhttpx2Ú_utilsr   r   Ú_httpx2r   r   Ú_exceptionsr   r   r   Ú_streaming_cleanupr   r.   r   r   Ú_modelsr   r   r!   rz   rŽ   Úcompilerµ   r¦   rÂ   r&   rê   rñ   ra   r9   r6   ú<module>rÿ      sí   ðå "ã 	Û Û Ý ß `× `Ó `ß `× `ã ç :ß ;ß FÑ FÝ 4áß,Ý,ñ ˆTƒ]€ôoˆW�R‰[ô oôdy�'˜"‘+ô y÷x&jñ &jðR �—
‘
˜;Ó'€÷!ñ !÷H[ñ [ð| ô�hó ó ðóQð #'ñØðð  ðð 
ô	r9   