B
    Ce                 @   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 yd dl mZ W n  ek
r   d dlmZ Y nX eee dd	d
Zeeee dddZee ee d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   sF   g }x<|   }|ttfkrP tt|}|| t|tkrP qW |S )N)Z
next_eventr	   r
   r   r   appendtyper   )r   
got_eventsevent r   e/var/www/downstreamdata.science/rtclock/rtclock-venv/lib/python3.7/site-packages/h11/tests/helpers.pyget_all_events   s    

r!   )r   datar   c             C   s   |  | t| S )N)receive_datar!   )r   r"   r   r   r    receive_and_get#   s    
r$   )	in_eventsr   c             C   s   g }x| D ]}t |tkr.tt|jddd}|rt |d t |  krRtkrn n,t|d j|j |d j|d jd|d< q
|| q
W |S )NF)r"   chunk_start	chunk_end)r   r   bytesr"   r&   r'   r   )r%   Z
out_eventsr   r   r   r    normalize_data_events*   s    
(r*   c               @   sh   e Zd ZddddZeee dddZdee	 e
ee ef e
ee eed f edd	d
ZdS )ConnectionPairN)r   c             C   s(   t tt ttti| _t ttt i| _d S )N)r   r   r   r   other)selfr   r   r    __init__?   s    zConnectionPair.__init__c             C   s
   | j  S )N)r   values)r-   r   r   r    connsC   s    zConnectionPair.connsmatch)rolesend_eventsexpectr   c       	      C   s   t |ts|g}d}d}x2|D ]*}| j| |}|d kr@d}q||7 }qW |rf| j| j|  | |r| j| j|  d t| j| j|  }|dkr|}t |ts|g}||kst|S )N    FTr1   )
isinstancelistr   sendr,   r#   r!   AssertionError)	r-   r2   r3   r4   r"   closedZ
send_eventZnew_datar   r   r   r    r8   H   s(    


zConnectionPair.send)r1   )__name__
__module____qualname__r.   propertyr   r   r0   r   r   r   r   r   r   r)   r8   r   r   r   r    r+   >   s
   *r+   N)"typingr   r   r   r   r   _connectionr   r	   r
   Z_eventsr   r   r   r   r   r   r   _stater   r   r   r   r   Z_utilr   r   ImportErrortyping_extensionsr!   r)   r$   r*   r+   r   r   r   r    <module>   s   $	