a
    Zg                     @   s   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	 d	Zeejeeeee d
ddZeejeeeee d
ddZdS )    )asynccontextmanagercontextmanager)AnyAsyncIteratorIteratorN   )
SSEDecoder)SSEError)ServerSentEventc                   @   sd   e Zd ZejddddZddddZeejddd	Ze	e
 dd
dZee
 dddZdS )EventSourceN)responsereturnc                 C   s
   || _ d S N	_response)selfr    r   \/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/httpx_sse/_api.py__init__   s    zEventSource.__init__)r   c                 C   s4   | j jdddd }d|vr0td|d S )Nzcontent-type ;r   text/event-streamzJExpected response header Content-Type to contain 'text/event-stream', got )r   headersget	partitionr	   )r   content_typer   r   r   _check_content_type   s    zEventSource._check_content_typec                 C   s   | j S r   r   )r   r   r   r   r      s    zEventSource.responsec                 c   sD   |    t }| j D ]&}|d}||}|d ur|V  qd S N
)r   r   r   
iter_linesrstripdecoder   decoderlineZsser   r   r   iter_sse   s    

zEventSource.iter_ssec                 C  sN   |    t }| j 2 z.3 d H W }|d}||}|d ur|V  q6 d S r   )r   r   r   Zaiter_linesr    r!   r"   r   r   r   	aiter_sse$   s    

zEventSource.aiter_sse)__name__
__module____qualname__httpxResponser   r   propertyr   r   r
   r%   r   r&   r   r   r   r   r      s   	r   )clientmethodurlkwargsr   c                 k   sb   | di }d|d< d|d< | j||fd|i|}t|V  W d    n1 sT0    Y  d S Nr   r   Acceptzno-storezCache-Controlpopstreamr   r-   r.   r/   r0   r   r   r   r   r   connect_sse.   s
    r7   c              	   K  sv   | di }d|d< d|d< | j||fd|i|4 I d H  }t|V  W d   I d H  qr1 I d H sh0    Y  d S r1   r3   r6   r   r   r   aconnect_sse:   s
    "r8   )
contextlibr   r   typingr   r   r   r*   	_decodersr   _exceptionsr	   Z_modelsr
   r   ZClientstrr7   ZAsyncClientr8   r   r   r   r   <module>   s"   #
