HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/h11/__pycache__/_state.cpython-310.pyc
o

���g�3�@s�UddlmZmZmZmZmZmZmZddlTddl	m
Z
mZgd�ZGdd�deed�Z
Gd	d
�d
eed�ZGdd�deed�ZGd
d�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd�deed�ZGdd �d eed�ZeeeeeeeeeeeeeeeffeefffZe
eeeeeieeeeeieeeieeeieeeieieieiieeeee eee
feiee!ee ee!efee efeieeeeeieeeieeeieeeieieiiiZ"ee#d!<eeeeeefeeeeeffZ$eefe
eieefeeieefeeieefeeieefe
eieefe
eieefe
eiiZ%e$e#d"<Gd#d$�d$�Z&d%S)&�)�cast�Dict�Optional�Set�Tuple�Type�Union�)�*)�LocalProtocolError�Sentinel)�CLIENT�SERVER�IDLE�
SEND_RESPONSE�	SEND_BODY�DONE�
MUST_CLOSE�CLOSED�MIGHT_SWITCH_PROTOCOL�SWITCHED_PROTOCOL�ERRORc@�eZdZdS)r
N��__name__�
__module__�__qualname__�rr�5/usr/local/lib/python3.10/dist-packages/h11/_state.pyr
��r
)�	metaclassc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)rNrrrrrr�rrc@r)�_SWITCH_UPGRADENrrrrrr!�rr!c@r)�_SWITCH_CONNECTNrrrrrr"�rr"�EVENT_TRIGGERED_TRANSITIONS�STATE_TRIGGERED_TRANSITIONSc	@s�eZdZddd�Zdeeddfdd�Zddd	�Zd
eeddfdd�Z	ddeed
ee	de
eeddfdd�Zdeed
eee	e
ee	eeffddfdd�Zddd�Zddd�ZdS)�ConnectionState�returnNcCs d|_t�|_tttti|_dS)NT)�
keep_alive�set�pending_switch_proposalsr
rr�states��selfrrr�__init__�szConnectionState.__init__�rolecCst|j|<|��dS�N)rr*�!_fire_state_triggered_transitions)r,r.rrr�
process_errors
zConnectionState.process_errorcCsd|_|��dS)NF)r'r0r+rrr�process_keep_alive_disabledsz+ConnectionState.process_keep_alive_disabled�switch_eventcCs|j�|�|��dSr/)r)�addr0)r,r3rrr�process_client_switch_proposalsz.ConnectionState.process_client_switch_proposal�
event_type�server_switch_eventcCs�|}|dur|tusJ�||jvrtd�|���||f}|dur(|tur(t�|_|�||�|tur@|tus8J�|�tttf�|�	�dS)Nz3Received server {} event without a pending proposal)
rr)r�format�Responser(�!_fire_event_triggered_transitions�Requestr
r0)r,r.r6r7�_event_typerrr�
process_events"
��zConnectionState.process_eventc
Csf|j|}z
t|||}Wnty+ttt|�}td�|j||j|��d�w||j|<dS)Nz4can't handle event type {} when role={} and state={})	r*r#�KeyErrorrr�Eventrr8r)r,r.r6�state�	new_staterrrr:-s
����z1ConnectionState._fire_event_triggered_transitionscCs�	t|j�}|jr|jtturt|jt<|js$|jttur$t|jt<|js:ttfD]}|j|tur9t|j|<q+|jt|jtf}t	�
|i�}|j�|�|j|krWdSqr/)�dictr*r)r
rrr'rrr$�get�update)r,�start_statesr.�joint_state�changesrrrr0>s&



�
�z1ConnectionState._fire_state_triggered_transitionscCsH|jttttikrtd�|j���|jsJ�|jrJ�tttti|_dS)Nz'not in a reusable state. self.states={})	r*r
rrrr8r'r)rr+rrr�start_next_cyclefs
�

z ConnectionState.start_next_cycle)r&Nr/)rrrr-rrr1r2r5r?rr=rrr:r0rHrrrrr%�s0

���
�
���
�
(r%N)'�typingrrrrrrr�_events�_utilrr�__all__r
rrrrrrrrrrr!r"r?�EventTransitionTyper;�ConnectionClosed�Data�EndOfMessager9�InformationalResponser#�__annotations__�StateTransitionTyper$r%rrrr�<module>s�&p*����	�
����!&�	�