§
    º¦-ec  ã                  óÀ   — d Z ddlmZ ddlZ ej        e¦  «        ZddlmZm	Z	m
Z
 er&ddlmZ ddlmZmZ ddlmZ d	d
lmZ d	dlmZ d	dlmZ dZ G d„ d¦  «        ZdS )z( Provides the ``ServerSession`` class.

é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚ	Awaitableé   )ÚDocumentPatchedEvent)ÚProtocolÚmessages)ÚMessageé   )ÚApplicationContext)ÚServerSession)Ú	WSHandler)ÚServerConnectionc                  ó–   — e Zd ZU dZded<   d!d„Zed"d„¦   «         Zed#d„¦   «         Zd$d„Z	d%d„Z
d&d„Zd'd„Zd$d„Zed(d„¦   «         Zd S ))r   z0 Wraps a websocket connection to a client.

    zServerSession | NoneÚ_sessionÚprotocolr	   Úsocketr   Úapplication_contextr   Úsessionr   ÚreturnÚNonec                ó€   — || _         || _        || _        || _        | j                             | ¦  «         d| _        d S )Nr   )Ú	_protocolÚ_socketÚ_application_contextr   Ú	subscribeÚ_ping_count)Úselfr   r   r   r   s        ú7lib/python3.11/site-packages/bokeh/server/connection.pyÚ__init__zServerConnection.__init__6   sC   € à!ˆŒØˆŒØ$7ˆÔ!ØˆŒØŒ×Ò Ñ%Ô%Ð%ØˆÔÐÐó    c                ó"   — | j         €J ‚| j         S ©N)r   ©r   s    r    r   zServerConnection.session?   s   € àŒ}Ð(Ð(Ð(ØŒ}Ðr"   c                ó   — | j         S r$   )r   r%   s    r    r   z$ServerConnection.application_contextD   s   € àÔ(Ð(r"   c                óZ   — | j         #| j                              | ¦  «         d| _         dS dS )zTAllow the session to be discarded and don't get change notifications from it anymoreN)r   Úunsubscriber%   s    r    Údetach_sessionzServerConnection.detach_sessionH   s3   € àŒ=Ð$ØŒM×%Ò% dÑ+Ô+Ð+Ø ˆDŒMˆMˆMð %Ð$r"   ÚmessageúMessage[Any]úmsg.okc                óN   — | j                              d|j        d         ¦  «        S )NÚOKÚmsgid©r   ÚcreateÚheader)r   r*   s     r    ÚokzServerConnection.okN   s!   € ØŒ}×#Ò# D¨'¬.¸Ô*AÑBÔBÐBr"   ÚtextÚstrú	msg.errorc                óP   — | j                              d|j        d         |¦  «        S )NÚERRORr/   r0   )r   r*   r4   s      r    ÚerrorzServerConnection.errorQ   s#   € ØŒ}×#Ò# G¨W¬^¸GÔ-DÀdÑKÔKÐKr"   Úeventr   úAwaitable[None]c                ón   — | j                              d|g¦  «        }| j                             |¦  «        S )zW Sends a PATCH-DOC message, returning a Future that's completed when it's written out. z	PATCH-DOC)r   r1   r   Úsend_message)r   r:   Úmsgs      r    Úsend_patch_documentz$ServerConnection.send_patch_documentT   s1   € àŒm×"Ò" ;°°Ñ8Ô8ˆàŒ|×(Ò(¨Ñ-Ô-Ð-r"   c                ó¤   — | j                              t          | j        ¦  «                             d¦  «        ¦  «         | xj        dz  c_        d S )Nzutf-8r   )r   Úpingr5   r   Úencoder%   s    r    Ú	send_pingzServerConnection.send_pingZ   sK   € ØŒ×Ò#˜dÔ.Ñ/Ô/×6Ò6°wÑ?Ô?Ñ@Ô@Ð@ØÐÔ˜AÑÐÔÐÐr"   c                ó   — | j         S r$   )r   r%   s    r    r   zServerConnection.protocol^   s
   € àŒ~Ðr"   N)
r   r	   r   r   r   r   r   r   r   r   )r   r   )r   r   )r   r   )r*   r+   r   r,   )r*   r+   r4   r5   r   r6   )r:   r   r   r;   )r   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r!   Úpropertyr   r   r)   r3   r9   r?   rC   r   © r"   r    r   r   /   s  € € € € € € ðð ð #Ð"Ð"Ñ"ðð ð ð ð ðð ð ñ „Xðð ð)ð )ð )ñ „Xð)ð!ð !ð !ð !ðCð Cð Cð CðLð Lð Lð Lð.ð .ð .ð .ðð ð ð ð ðð ð ñ „Xðð ð r"   r   )rH   Ú
__future__r   ÚloggingÚ	getLoggerrE   ÚlogÚtypingr   r   r   Údocument.eventsr   r   r	   r
   r>   Úprotocol.messager   Úcontextsr   r   r   Úviews.wsr   Ú__all__r   rK   r"   r    ú<module>rV      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø€gÔ˜Ñ!Ô!€ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ð ð $Ø6Ð6Ð6Ð6Ð6Ð6Ø4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ø*Ð*Ð*Ð*Ð*Ð*Ø,Ð,Ð,Ð,Ð,Ð,Ø&Ð&Ð&Ð&Ð&Ð&Ø#Ð#Ð#Ð#Ð#Ð#ð€ð1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1r"   