o
    h                     @   s  d dl mZmZmZmZmZ ddlmZmZm	Z	 ddl
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 ddlmZ zd dl mZ W n eyU   d dlmZ Y nw ded	ee fd
dZdeded	ee fddZdee d	ee fddZ G dd dZ!dS )    )castListTypeUnion
ValuesView   )
Connection	NEED_DATAPAUSED)ConnectionClosedDataEndOfMessageEventInformationalResponseRequestResponse)CLIENTCLOSEDDONE
MUST_CLOSESERVER)Sentinel)Literalconnreturnc                 C   sH   g }	 |   }|ttfv r	 |S tt|}|| t|tu r#	 |S qN)
next_eventr	   r
   r   r   appendtyper   )r   
got_eventsevent r!   e/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/h11/tests/helpers.pyget_all_events   s   

r#   datac                 C   s   |  | t| S r   )receive_datar#   )r   r$   r!   r!   r"   receive_and_get#   s   
r&   	in_eventsc                 C   s   g }| D ]A}t |tu rtt|jddd}|r@t |d t |  u r(tu r@n nt|d j|j |d j|d jd|d< q|| q|S )NF)r$   chunk_start	chunk_end)r   r   bytesr$   r(   r)   r   )r'   
out_eventsr    r!   r!   r"   normalize_data_events*   s   (r-   c                   @   sl   e Zd ZdddZedee fddZ	ddee	 d	e
ee ef d
e
ee eed f defddZdS )ConnectionPairr   Nc                 C   s(   t tt ttti| _t ttt i| _d S r   )r   r   r   r   otherselfr!   r!   r"   __init__?   s   zConnectionPair.__init__c                 C   s
   | j  S r   )r   valuesr0   r!   r!   r"   connsC   s   
zConnectionPair.connsmatchrolesend_eventsexpectc           	      C   s   t |ts|g}d}d}|D ]}| j| |}|d u rd}q||7 }q|r1| j| j|  | |r>| j| j|  d t| j| j|  }|dkrN|}t |tsV|g}||ks\J |S )N    FTr5   )
isinstancelistr   sendr/   r%   r#   )	r1   r6   r7   r8   r$   closed
send_eventnew_datar   r!   r!   r"   r<   H   s(   


zConnectionPair.send)r   N)r5   )__name__
__module____qualname__r2   propertyr   r   r4   r   r   r   r   r   r   r+   r<   r!   r!   r!   r"   r.   >   s    
r.   N)"typingr   r   r   r   r   _connectionr   r	   r
   _eventsr   r   r   r   r   r   r   _stater   r   r   r   r   _utilr   r   ImportErrortyping_extensionsr#   r+   r&   r-   r.   r!   r!   r!   r"   <module>   s    $	