U
    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 z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   sB   g }|   }|ttfkrq>tt|}|| t|tkrq>q|S N)Z
next_eventr	   r
   r   r   appendtyper   )r   
got_eventsevent r    R/var/www/html/assets/scripts/venv/lib/python3.8/site-packages/h11/tests/helpers.pyget_all_events   s    

r"   )r   datar   c                 C   s   |  | t| S r   )receive_datar"   )r   r#   r    r    r!   receive_and_get#   s    
r%   )	in_eventsr   c                 C   s   g }| D ]}t |tkr,tt|jddd}|rt |d t |  krPtkrn 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&   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 r   )r   r   r   r   otherselfr    r    r!   __init__?   s    zConnectionPair.__init__c                 C   s
   | j  S r   )r   valuesr.   r    r    r!   connsC   s    zConnectionPair.connsmatch)rolesend_eventsexpectr   c           	      C   s   t |ts|g}d}d}|D ]*}| j| |}|d kr>d}q||7 }q|rb| j| j|  | |r|| j| j|  d t| j| j|  }|dkr|}t |ts|g}||kst|S )N    FTr3   )
isinstancelistr   sendr-   r$   r"   AssertionError)	r/   r4   r5   r6   r#   closedZ
send_eventZnew_datar   r    r    r!   r:   H   s(    


zConnectionPair.send)r3   )__name__
__module____qualname__r0   propertyr   r   r2   r   r   r   r   r   r   r*   r:   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   ImportErrorZtyping_extensionsr"   r*   r%   r+   r,   r    r    r    r!   <module>   s   $	