a
    %ñ»j¯3  ã                   @   sØ  U d dl mZmZmZmZmZmZmZ ddlT ddl	m
Z
mZ g d¢ZG dd„ deed�ZG d	d
„ d
eed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd„ deed�ZG dd „ d eed�Zeee eee eeee eee ee f f ee f f f Zeeeeeeieeeeeieeeieeeieeeiei ei ei ieeeee eeefeiee!ee ee!efee efeieeeeeieeeieeeieeeiei ei iiZ"ee#d!< eeee ee f eee ee f f Z$eefeeieefeeieefeeieefeeieefeeieefeeieefeeiiZ%e$e#d"< G d#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   e Zd ZdS )r   N©Ú__name__Ú
__module__Ú__qualname__© r   r   ú0E:\soccer\ml_env\Lib\site-packages\h11/_state.pyr   †   s   r   )Ú	metaclassc                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   Š   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   �   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   “   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   —   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   ›   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   Ÿ   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   £   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   §   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   ¬   s   r   c                   @   s   e Zd ZdS )r   Nr   r   r   r   r   r   °   s   r   c                   @   s   e Zd ZdS )Ú_SWITCH_UPGRADENr   r   r   r   r   r   ´   s   r   c                   @   s   e Zd ZdS )Ú_SWITCH_CONNECTNr   r   r   r   r   r    ¸   s   r    ÚEVENT_TRIGGERED_TRANSITIONSÚSTATE_TRIGGERED_TRANSITIONSc                   @   sÄ   e Zd Zddœdd„Zee ddœdd„Zddœdd	„Zee dd
œdd„Zdee ee	 e
ee  ddœdd„Zee eee	 eee	 ee f f ddœdd„Zddœdd„Zddœdd„ZdS )ÚConnectionStateN)Úreturnc                 C   s    d| _ tƒ | _tttti| _d S )NT)Ú
keep_aliveÚsetÚpending_switch_proposalsr   r   r   Ústates©Úselfr   r   r   Ú__init__ú   s    zConnectionState.__init__)Úroler$   c                 C   s   t | j|< |  ¡  d S ©N)r   r(   Ú!_fire_state_triggered_transitions)r*   r,   r   r   r   Úprocess_error  s    
zConnectionState.process_errorc                 C   s   d| _ |  ¡  d S )NF)r%   r.   r)   r   r   r   Úprocess_keep_alive_disabled  s    z+ConnectionState.process_keep_alive_disabled)Úswitch_eventr$   c                 C   s   | j  |¡ |  ¡  d S r-   )r'   Úaddr.   )r*   r1   r   r   r   Úprocess_client_switch_proposal  s    z.ConnectionState.process_client_switch_proposal)r,   Ú
event_typeÚserver_switch_eventr$   c                 C   s†   |}|d ur2|t u sJ ‚|| jvr*tdƒ‚||f}|d u rJ|tu rJtƒ | _|  ||¡ |tu rz|tu sjJ ‚|  t ttf¡ |  ¡  d S )Nz@Received server _SWITCH_UPGRADE event without a pending proposal)	r   r'   r   ÚResponser&   Ú!_fire_event_triggered_transitionsÚRequestr   r.   )r*   r,   r4   r5   Z_event_typer   r   r   Úprocess_event  s    
ÿzConnectionState.process_event)r,   r4   r$   c              
   C   sj   | j | }zt| | | }W n< tyZ   ttt |ƒ}td |j|| j | ¡ƒd ‚Y n0 || j |< d S )Nz4can't handle event type {} when role={} and state={})	r(   r!   ÚKeyErrorr   r   ÚEventr   Úformatr   )r*   r,   r4   ÚstateÚ	new_stater   r   r   r7   +  s    
ÿÿüz1ConnectionState._fire_event_triggered_transitionsc                 C   s²   t | jƒ}| jr(| jt tu r(t| jt< | jsF| jt tu rFt| jt< | jsrttfD ]}| j| tu rTt| j|< qT| jt | jt f}t	 
|i ¡}| j |¡ | j|kr d S q d S r-   )Údictr(   r'   r   r   r   r%   r   r   r"   ÚgetÚupdate)r*   Zstart_statesr,   Zjoint_stateÚchangesr   r   r   r.   <  s     



z1ConnectionState._fire_state_triggered_transitionsc                 C   sH   | j ttttikr"td| j › �ƒ‚| js,J ‚| jr6J ‚tttti| _ d S )Nz%not in a reusable state. self.states=)r(   r   r   r   r   r%   r'   r   r)   r   r   r   Ústart_next_cycled  s    
ÿ

z ConnectionState.start_next_cycle)N)r   r   r   r+   r   r   r/   r0   r3   r;   r   r9   r   r   r7   r.   rC   r   r   r   r   r#   ù   s"    ü
ûü(r#   N)'Útypingr   r   r   r   r   r   r   Z_eventsZ_utilr   r   Ú__all__r   r   r   r   r   r   r   r   r   r   r   r   r    r;   ZEventTransitionTyper8   ZConnectionClosedZDataZEndOfMessager6   ZInformationalResponser!   Ú__annotations__ZStateTransitionTyper"   r#   r   r   r   r   Ú<module>q   s†   &*ÿÿÿÿ	ø
üüîõ!&ÿ	ö