Ë
    Fü´jÃ=  ã                  óÀ  — 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! 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jV                  d«      Z, G d„ d«      Z- G d„ d«      Z.e G d„ de«      «       Z/dd„Z0ddœ	 	 	 	 	 dd„Z1y)é    )Ú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)Ú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        úO/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/_streaming.pyÚ__init__zStream.__init__    ó>   € ð !ˆŒØˆŒØˆŒØˆŒØ×0Ñ0Ó2ˆŒØŸ™Ó*ˆ�ó    c                ó6   — | j                   j                  «       S r*   )r0   Ú__next__©r2   s    r5   r:   zStream.__next__/   s   € Ø�~‰~×&Ñ&Ó(Ð(r8   c              #  ó6   K  — | j                   D ]  }|–— Œ y ­wr*   ©r0   ©r2   Úitems     r5   Ú__iter__zStream.__iter__2   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   rC   r   r   )r2   Úerrs     r5   Ú_iter_eventszStream._iter_events6   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©	Nz[DONE]zthread.ÚerrorÚmessagez"An error occurred during streaming)rJ   rC   Úbody)ÚdataÚevent)rL   r3   r"   )r   r   r,   r"   r-   Ú_process_response_datarF   rL   Ú
startswithrM   Újsonr   ÚgetÚ
isinstanceÚstrr   rC   r$   Úsynthesize_event_and_dataÚclose©	r2   r3   r"   Úprocess_dataÚiteratorÚsserL   rJ   rI   s	            r5   r/   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    r5   Ú	__enter__zStream.__enter__w   s   € Øˆr8   c                ó$   — | j                  «        y r*   ©rU   ©r2   Úexc_typeÚexcÚexc_tbs       r5   Ú__exit__zStream.__exit__z   s   € ð 	�
‰
�r8   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"   rU   r;   s    r5   rU   zStream.close‚   s   € ð 	�‰×ÑÕr8   )
r3   útype[_T]r"   r!   r4   r   r(   r#   ÚreturnÚNone©rg   r   )rg   zIterator[_T])rg   úIterator[ServerSentEvent]©rg   r   ©r`   ztype[BaseException] | Nonera   zBaseException | Nonerb   zTracebackType | Nonerg   rh   ©rg   rh   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r$   r6   r:   r@   rF   r/   r\   rc   rU   r[   r8   r5   r    r       s£   … ÙTàÓØ.2€HÐ+Ó2ØÓð 26ñ+ð ð+ð "ð	+ð
 ð+ð /ð+ð 
ó+ó)óóMó7órðà,ðð "ðð %ð	ð
 
óôr8   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+   r1   s        r5   r6   zAsyncStream.__init__’   r7   r8   c              ƒ  óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wr*   )r0   Ú	__anext__r;   s    r5   rw   zAsyncStream.__anext__¡   s   è ø€ Ø—^‘^×-Ñ-Ó/×/Ð/Ð/ús   ‚' %¡'c               óH   K  — | j                   2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wr*   r=   r>   s     r5   Ú	__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rB   )r&   Úaiter_bytesr"   r   r   rC   r   r   )r2   rY   rE   s      r5   rF   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               óê  K  — t        t        | j                  «      }| j                  }| j                  j
                  }| j                  «       }	 |2 3 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'                  «       ƒ d {  –—†  y 7 �Œø6 Œ7 Œ
# |j'                  «       ƒ d {  –—†7   w xY w­wrH   )r   r   r,   r"   r-   rN   rF   rL   rO   rM   rP   r   rQ   rR   rS   r   rC   r$   rT   ÚacloserV   s	            r5   r/   zAsyncStream.__stream__±   s  è ø€ Ü”s˜DŸM™MÓ*ˆØ—=‘=ˆØ—|‘|×:Ñ:ˆØ×$Ñ$Ó&ˆð1	$Ø%÷ -ð -�cØ—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Ò?à!Ø 'Ø!)ôõ ð —/‘/Ó#×#Ñ#ða-ù˜Xøð` $ù�(—/‘/Ó#×#Ò#üsa   ‚AI3ÁI ÁIÁIÁIÁGI È5I3ÉIÉ	I3ÉIÉI ÉI3ÉI0É)I,É*I0É0I3c              ƒ  ó   K  — | S ­wr*   r[   r;   s    r5   Ú
__aenter__zAsyncStream.__aenter__ê   s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr*   r^   r_   s       r5   Ú	__aexit__zAsyncStream.__aexit__í   s   è ø€ ð �j‰j‹l×Òúó   ‚–—c              ƒ  óT   K  — | j                   j                  «       ƒ d{  –—†  y7 Œ­wre   )r"   r}   r;   s    r5   rU   zAsyncStream.closeõ   s   è ø€ ð �m‰m×"Ñ"Ó$×$Ò$ús   ‚( &¡(c              ƒ  ó@   K  — | j                  «       ƒ d{  –—†  y7 Œ­w)zCClose the response and release the connection. Alias for `close()`.Nr^   r;   s    r5   r}   zAsyncStream.acloseý   s   è ø€ à�j‰j‹l×Òúr‚   )
r3   rf   r"   r!   r4   r   r(   r#   rg   rh   ri   )rg   zAsyncIterator[_T])rg   úAsyncIterator[ServerSentEvent]rk   rl   rm   )rn   ro   rp   rq   rr   r$   r6   rw   ry   rF   r/   r   r�   rU   r}   r[   r8   r5   rt   rt   ‹   s¨   … ÙVàÓØ.2€HÐ+Ó2Ø*Ó*ð 26ñ+ð ð+ð "ð	+ð
 ð+ð /ð+ð 
ó+ó0óóMó7$órðà,ðð "ðð %ð	ð
 
óó%ôr8   rt   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©rM   rL   ÚidÚretryc               óL   — |€d}|| _         || _        |xs d | _        || _        y )NÚ )Ú_idÚ_dataÚ_eventÚ_retry)r2   rM   rL   r‰   rŠ   s        r5   r6   zServerSentEvent.__init__  s.   € ð ˆ<ØˆDàˆŒØˆŒ
Ø’m˜tˆŒØˆ�r8   c                ó   — | j                   S r*   )r�   r;   s    r5   rM   zServerSentEvent.event  ó   € à�{‰{Ðr8   c                ó   — | j                   S r*   )r�   r;   s    r5   r‰   zServerSentEvent.id  s   € à�x‰xˆr8   c                ó   — | j                   S r*   )r�   r;   s    r5   rŠ   zServerSentEvent.retry  r’   r8   c                ó   — | j                   S r*   )rŽ   r;   s    r5   rL   zServerSentEvent.data  s   € à�z‰zÐr8   c                ó@   — t        j                  | j                  «      S r*   )rP   ÚloadsrL   r;   s    r5   rP   zServerSentEvent.json#  s   € Ü�z‰z˜$Ÿ)™)Ó$Ð$r8   c           	     óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )NzServerSentEvent(event=z, data=z, id=z, retry=ú)rˆ   r;   s    r5   Ú__repr__zServerSentEvent.__repr__&  s9   € à'¨¯
©
 |°7¸4¿9¹9¸+ÀUÈ4Ï7É7È)ÐS[Ð\`×\fÑ\fÐ[gÐghÐiÐir8   )
rM   ú
str | NonerL   r›   r‰   r›   rŠ   ú
int | Nonerg   rh   )rg   r›   )rg   rœ   )rg   rS   )rg   r   )rn   ro   rp   r6   ÚpropertyrM   r‰   rŠ   rL   rP   r   rš   r[   r8   r5   r‡   r‡     s²   „ ð !ØØØ ñð ðð ð	ð
 ðð ðð 
óð  òó ðð òó ðð òó ðð òó ðó%ð òjó ñjr8   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    r5   r6   z_SSELineDecoder.__init__1  s   € Ü “{ˆŒØˆ�r8   c                óR   — | j                   j                  t        |«      || «       y r*   )r¢   ÚextendÚ
memoryview)r2   ÚchunkÚstartÚends       r5   Ú_appendz_SSELineDecoder._append5  s    € Ø�‰×ÑœJ uÓ-¨e°CÐ8Õ9r8   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)r2   r§   r¨   Úmatchr©   Úlines         r5   Úfeedz_SSELineDecoder.feed8  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±   )r2   r´   s     r5   Úfinishz_SSELineDecoder.finishK  s5   è ø€ Ø�<Š<Ü˜Ÿ™Ó&ˆDØ�L‰L×ÑÔ Ø‹Jð ùs   ‚AANrm   )r§   r°   r¨   Úintr©   r¸   rg   rh   )r§   r°   rg   úIterator[bytes])rg   r¹   )rn   ro   rp   rq   r6   rª   rµ   r·   r[   r8   r5   rŸ   rŸ   .  s   „ ÙPóó:ó3ô&r8   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    r5   r6   zSSEDecoder.__init__Z  s   € Ø�‰�r8   c                ó<   — d | _         g | _        d | _        d | _        y r*   )r�   rŽ   r¼   r�   r;   s    r5   r¾   zSSEDecoder._reset]  s   € ØˆŒØˆŒ
Ø"ˆÔØˆ�r8   c              #  óh   K  — |D ])  }| j                  |j                  d«      «      }|sŒ&|–— Œ+ y ­w)Nzutf-8)Údecode)r2   ÚlinesÚraw_linerY   s       r5   Ú_decode_lineszSSEDecoder._decode_linesc  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¾   )r2   rX   Údecoderr§   s       r5   rD   zSSEDecoder.iter_bytesi  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Æ   )r2   rX   rÇ   r§   rY   s        r5   r{   zSSEDecoder.aiter_bytess  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   rM   rL   r‰   ú rŠ   )r�   rŽ   r¼   r�   r‡   ÚjoinrO   Ú	partitionÚappendr¸   Ú	TypeErrorÚ
ValueError)r2   r´   rY   Ú	fieldnameÚ_Úvalues         r5   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:Nrm   )rÂ   r¹   rg   rj   ©rX   r¹   rg   rj   ©rX   zAsyncIterator[bytes]rg   r…   )r´   rS   rg   zServerSentEvent | None)rn   ro   rp   rq   rr   r6   r¾   rÄ   rD   r{   rÁ   r[   r8   r5   r»   r»   R  s;   … ÙOàÓØÓØÓØÓóóóóó
ô.r8   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 encounteredNr[   ©r2   rX   s     r5   rD   zSSEBytesDecoder.iter_bytes²  ó   € àr8   c                 ó   — y)zdGiven an async iterator that yields raw binary data, iterate over it & yield every event encounteredNr[   rÚ   s     r5   r{   zSSEBytesDecoder.aiter_bytes¶  rÛ   r8   NrÖ   r×   )rn   ro   rp   rD   r{   r[   r8   r5   r%   r%   °  s   „ óôr8   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    rt   )ÚtypÚorigins     r5   Úis_stream_class_typerã   »  s0   € ä˜‹_Ò# €FÜ�?‰?˜6Ó"ÒP¤z°&¼6Ä;Ð:OÓ'PÐPr8   )Ú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    rt   r   ztuple[type, ...])ÚindexÚgeneric_basesrä   )Ú_base_clientr    rt   r   r   )Ú
stream_clsrä   r    rt   s       r5   Úextract_stream_chunk_typerê   Á  s-   € ÷ 2ä%ØØÜÐ-°¸Ð/DÓEØ'ô	ð r8   )rá   Útyperg   z;TypeGuard[type[Stream[object]] | type[AsyncStream[object]]])ré   rë   rä   r›   rg   rë   )2Ú
__future__r   ÚrerP   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   r-   r   r   Ú_modelsr   r   r    rt   r‡   Úcompiler®   rŸ   r»   r%   rã   rê   r[   r8   r5   ú<module>r÷      sê   ðå "ã 	Û Û Ý ß `× `Ó `ß `× `ã ç :ß ;ß FÑ Fáß,Ý,ñ ˆTƒ]€ôoˆW�R‰[ô oôdt�'˜"‘+ô t÷n&jñ &jðR �—
‘
˜;Ó'€÷!ñ !÷H[ñ [ð| ô�hó ó ðóQð #'ñØðð  ðð 
ô	r8   