
    g                         d dl mZmZ d dlmZmZmZ d dlZddlm	Z	 ddl
mZ ddlmZ  G d d	      Zed
ej                  dedededee   f
d       Zed
ej$                  dedededee   f
d       Zy)    )asynccontextmanagercontextmanager)AnyAsyncIteratorIteratorN   )
SSEDecoder)SSEError)ServerSentEventc                       e Zd Zdej                  ddfdZd	dZedej                  fd       Zde	e
   fdZdee
   fdZy)
EventSourceresponsereturnNc                     || _         y N	_response)selfr   s     C/var/www/openai/venv/lib/python3.12/site-packages/httpx_sse/_api.py__init__zEventSource.__init__   s	    !    c                     | j                   j                  j                  dd      j                  d      d   }d|vrt	        d|      y )Nzcontent-type ;r   text/event-streamzJExpected response header Content-Type to contain 'text/event-stream', got )r   headersget	partitionr
   )r   content_types     r   _check_content_typezEventSource._check_content_type   sZ    ~~--11."EOOPSTUVWl2#&(  3r   c                     | j                   S r   r   )r   s    r   r   zEventSource.response   s    ~~r   c              #      K   | j                          t               }| j                  j                         D ]+  }|j	                  d      }|j                  |      }|(| - y wN
)r    r	   r   
iter_linesrstripdecoder   decoderlinesses       r   iter_ssezEventSource.iter_sse   sV       ",NN--/D;;t$D..&C		 0s   AA&A&c                   K   | j                          t               }| j                  j                         2 3 d {   }|j	                  d      }|j                  |      }|.| 47 /6 y wr#   )r    r	   r   aiter_linesr&   r'   r(   s       r   	aiter_ssezEventSource.aiter_sse$   s_       ",..446 	$;;t$D..&C			6s+   5A/A-A+A-%A/%A/+A--A/)r   N)__name__
__module____qualname__httpxResponser   r    propertyr   r   r   r,   r   r/    r   r   r   r      s_    " "D " %..  (?3 !? r   r   clientmethodurlkwargsr   c              +      K   |j                  di       }d|d<   d|d<    | j                  ||fd|i|5 }t        |       d d d        y # 1 sw Y   y xY wwNr   r   Acceptzno-storezCache-Controlpopstreamr   r7   r8   r9   r:   r   r   s         r   connect_sserB   .   s^      jjB'G+GH)GO	vs	>G	>v	>((## 
?	>	>s   3AA	AAAc                   K   |j                  di       }d|d<   d|d<    | j                  ||fd|i|4 d {   }t        |       d d d       d {    y 7 #7 # 1 d {  7  sw Y   y xY wwr<   r>   rA   s         r   aconnect_sserD   :   sp      jjB'G+GH)GOv}}VSD'DVDD(## EDDDDDDsD   7A6AA6A!A6AA6A6!A3'A*(A3/A6)
contextlibr   r   typingr   r   r   r3   	_decodersr	   _exceptionsr
   _modelsr   r   ClientstrrB   AsyncClientrD   r6   r   r   <module>rM      s    : / /  ! ! $   F $LL$"%$,/$;>$k$ $ $$$ 
$ 	$
 ;$ $r   