1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
U
M±dô3ã@sêUddlmZmZmZmZmZmZmZddlTddl    m
Z
m Z ddddd    d
d d d ddg Z Gdd„de e dZ Gdd„de e dZGdd„de e dZGdd„de e dZGdd    „d    e e dZGdd
„d
e e dZGdd „d e e dZGdd „d e e dZGdd„de e dZGdd „d e e dZGdd„de e dZGdd„de e dZGdd„de e dZeee eee eeeeeeeee ffee fffZe eeeeeieeeeeieeeieeeieeeieieieiieeeee eee feiee!ee ee!efee efeieeeeeieeeieeeieeeieieiiiZ"ee#d <eeee ee feee ee ffZ$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@s eZdZdS)r N©Ú__name__Ú
__module__Ú __qualname__©rrúAd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\h11/_state.pyr †s)Ú    metaclassc@s eZdZdS)rNrrrrrrŠsc@s eZdZdS)rNrrrrrrsc@s eZdZdS)rNrrrrrr“sc@s eZdZdS)rNrrrrrr—sc@s eZdZdS)rNrrrrrr›sc@s eZdZdS)rNrrrrrrŸsc@s eZdZdS)rNrrrrrr£sc@s eZdZdS)rNrrrrrr§sc@s eZdZdS)rNrrrrrr¬sc@s eZdZdS)rNrrrrrr°sc@s eZdZdS)Ú_SWITCH_UPGRADENrrrrrr´src@s eZdZdS)Ú_SWITCH_CONNECTNrrrrrr ¸sr ÚEVENT_TRIGGERED_TRANSITIONSÚSTATE_TRIGGERED_TRANSITIONSc@sÄeZdZddœdd„Zeeddœdd„Zddœdd    „Zeedd
œd d „Zdeeee    e
eedd œdd„Z eee ee    e ee    eeffddœdd„Zddœdd„Zddœdd„ZdS)ÚConnectionStateN)ÚreturncCs d|_tƒ|_tttti|_dS)NT)Ú
keep_aliveÚsetÚpending_switch_proposalsr rrÚstates©ÚselfrrrÚ__init__úszConnectionState.__init__)Úroler$cCst|j|<| ¡dS©N)rr(Ú!_fire_state_triggered_transitions)r*r,rrrÚ process_errors
zConnectionState.process_errorcCsd|_| ¡dS)NF)r%r.r)rrrÚprocess_keep_alive_disabled sz+ConnectionState.process_keep_alive_disabled)Ú switch_eventr$cCs|j |¡| ¡dSr-)r'Úaddr.)r*r1rrrÚprocess_client_switch_proposals z.ConnectionState.process_client_switch_proposal)r,Ú
event_typeÚserver_switch_eventr$cCsŒ|}|dk    r8|tkst‚||jkr0td |¡ƒ‚||f}|dkrP|tkrPtƒ|_| ||¡|tkr€|t    kspt‚| ttt    f¡| 
¡dS)Nz3Received server {} event without a pending proposal) rÚAssertionErrorr'r ÚformatÚResponser&Ú!_fire_event_triggered_transitionsÚRequestr r.)r*r,r4r5Z _event_typerrrÚ process_events" 
ÿÿ  zConnectionState.process_event)r,r4r$c
Csl|j|}zt|||}Wn>tk
r\ttt|ƒ}td |j||j|¡ƒd‚YnX||j|<dS)Nz4can't handle event type {} when role={} and state={})    r(r!ÚKeyErrorrrÚEventr r7r)r*r,r4ÚstateZ    new_staterrrr9-s
ÿÿüz1ConnectionState._fire_event_triggered_transitionscCs²t|jƒ}|jr(|jttkr(t|jt<|jsF|jttkrFt|jt<|jsrttfD]}|j|tkrTt|j|<qT|jt|jtf}t     
|i¡}|j  |¡|j|krdSqdSr-) Údictr(r'r rrr%rrr"ÚgetÚupdate)r*Z start_statesr,Z joint_stateÚchangesrrrr.>s 
 
 
 
z1ConnectionState._fire_state_triggered_transitionscCsH|jttttikr"td |j¡ƒ‚|js,t‚|jr6t‚tt    tt    i|_dS)Nz'not in a reusable state. self.states={})
r(r rrr r7r%r6r'rr)rrrÚstart_next_cyclefs
ÿ
 
z ConnectionState.start_next_cycle)N)rrrr+rr r/r0r3r=rr;rrr9r.rCrrrrr#ùs" ü
û ü (r#N)'ÚtypingrrrrrrrZ_eventsZ_utilr r Ú__all__r rrrrrrrrrrrr r=ZEventTransitionTyper:ZConnectionClosedÚDataZ EndOfMessager8ZInformationalResponser!Ú__annotations__ZStateTransitionTyper"r#rrrrÚ<module>qsÖ$õ*ÿÿÿÿ    
 
ø
üü
îõ !&ÿ    ö