File: //usr/local/lib/python3.10/dist-packages/h11/__pycache__/_connection.cpython-310.pyc
o
���g�g � @ sj d dl mZmZmZmZmZmZmZmZm Z ddl
mZmZm
Z
mZmZmZmZ ddlmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) dd l*m+Z+m,Z, g d
�Z-G dd� de)e)d
�Z.G dd� de)e)d
�Z/dZ0de eef de1fdd�Z2de3de eef dee4e ed ee5 f f fdd�Z6G dd� d�Z7dS )� ) �Any�Callable�cast�Dict�List�Optional�Tuple�Type�Union� )�ConnectionClosed�Data�EndOfMessage�Event�InformationalResponse�Request�Response)�get_comma_header�has_expect_100_continue�set_comma_header)�READERS�ReadersType)�
ReceiveBuffer)
�_SWITCH_CONNECT�_SWITCH_UPGRADE�CLIENT�ConnectionState�DONE�ERROR�MIGHT_SWITCH_PROTOCOL� SEND_BODY�SERVER�SWITCHED_PROTOCOL)�LocalProtocolError�RemoteProtocolError�Sentinel)�WRITERS�WritersType)�
Connection� NEED_DATA�PAUSEDc @ � e Zd ZdS )r) N��__name__�
__module__�__qualname__� r0 r0 �:/usr/local/lib/python3.10/dist-packages/h11/_connection.pyr) ( � r) )� metaclassc @ r+ )r* Nr, r0 r0 r0 r1 r* , r2 r* i @ �event�returnc C s0 t | jd�}d|v rdS t| dd�dk rdS dS )N�
connection� closeF�http_version� 1.1T)r �headers�getattr)r4 �
connectionr0 r0 r1 �_keep_aliveH s r= �request_methodr0 c C s� t |�ttfv s
J �t |�tu r4|jdv s+| dks+| dkr-d|j kr)dk r-dS ndS |jdks4J �t|jd�}|rE|dgksCJ �d S t|jd
�}|rVdt|d �ffS t |�tu r^dS d
S )N)�� i0 � HEAD� CONNECT�� �, )�content-length)r � transfer-encoding� chunked)�chunkedr0 � content-lengthrD r )�http/1.0r0 )�typer r �status_coder r: �int)r>