
    hje4              
      \   U d Z ddlmZ ddlZ ej        e          ZddlZddlm	Z	m
Z
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d
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" e	rddl#m$Z$ ddl%m&Z& ddl'm(Z( dZ)ed         Z*eeeeeeee e"d	Z+de,d<    G d d          Z-dS )z_ Implement and provide message protocols for communication between Bokeh
Servers and clients.

    )annotationsN)TYPE_CHECKINGAnyLiteraloverload   )ProtocolError)Message)ack)error)ok)	patch_doc)pull_doc_reply)pull_doc_req)push_doc)server_info_reply)server_info_req   )ID)Document)DocumentPatchedEvent)Protocol)	ACKERROROKz	PATCH-DOCzPULL-DOC-REPLYzPULL-DOC-REQzPUSH-DOCzSERVER-INFO-REPLYzSERVER-INFO-REQ%dict[MessageType, type[Message[Any]]]SPECc                     e Zd ZU dZded<   d8dZd9dZed:d            Zed;d            Zed<d            Zed=d            Zed>d!            Zed?d$            Zed@d'            ZedAd*            ZedBd-            ZdCd2ZdDd6Z	d7S )Er   zG Provide a message factory for the Bokeh Server message protocol.

    r   	_messagesreturnNonec                    t           | _        d S N)r   r   selfs    7lib/python3.11/site-packages/bokeh/protocol/__init__.py__init__zProtocol.__init__a   s        strc                    dS )Nz
Protocol() r$   s    r&   __repr__zProtocol.__repr__d   s    |r(   msgtypeLiteral['ACK']metadatar   r   c                    d S r#   r+   r%   r-   r/   s      r&   createzProtocol.createg   s    GJsr(   Literal['ERROR']
request_idr   textr   c                    d S r#   r+   )r%   r-   r4   r5   r/   s        r&   r2   zProtocol.createi   s    fifir(   Literal['OK']r   c                    d S r#   r+   r%   r-   r4   r/   s       r&   r2   zProtocol.createk   s    UXUXr(   Literal['PATCH-DOC']eventslist[DocumentPatchedEvent]r   c                    d S r#   r+   )r%   r-   r;   r/   s       r&   r2   zProtocol.createm   s    wzwzr(   Literal['PULL-DOC-REPLY']documentr   r   c                    d S r#   r+   )r%   r-   r4   r?   r/   s        r&   r2   zProtocol.createo   s     BE  BEr(   Literal['PULL-DOC-REQ']r   c                    d S r#   r+   r1   s      r&   r2   zProtocol.createq   s    Y\Y\r(   Literal['PUSH-DOC']r   c                    d S r#   r+   )r%   r-   r?   r/   s       r&   r2   zProtocol.creates   s    ehehr(   Literal['SERVER-INFO-REPLY']r   c                    d S r#   r+   r9   s       r&   r2   zProtocol.createu   s    svsvr(   Literal['SERVER-INFO-REQ']r   c                    d S r#   r+   r1   s      r&   r2   zProtocol.createw   s    _b_br(   MessageTypeargskwargsMessage[Any]c                j    || j         vrt          d|d           | j         |         j        |i |S )zg Create a new Message instance for the given type.

        Args:
            msgtype (str) :

        zUnknown message type z for Bokeh protocol)r   r	   r2   )r%   r-   rJ   rK   s       r&   r2   zProtocol.createz   sJ     $.(( V V V VWWW-t~g&-t>v>>>r(   header_jsonmetadata_jsoncontent_jsonc                    t          j        |          }d|vr,t                              d|           t	          d          | j        |d                                      |||          S )z Create a Message instance assembled from json fragments.

        Args:
            header_json (``JSON``) :

            metadata_json (``JSON``) :

            content_json (``JSON``) :

        Returns:
            message

        r-   z Bad header with no msgtype was: zNo 'msgtype' in header)jsonloadslogr   r	   r   assemble)r%   rN   rO   rP   headers        r&   rU   zProtocol.assemble   sm     K((F""IICCCDDD 8999~fY/099+}Vbcccr(   N)r    r!   )r    r)   )r-   r.   r/   r   r    r   )
r-   r3   r4   r   r5   r)   r/   r   r    r   )r-   r7   r4   r   r/   r   r    r   )r-   r:   r;   r<   r/   r   r    r   )
r-   r>   r4   r   r?   r   r/   r   r    r   )r-   rA   r/   r   r    r   )r-   rC   r?   r   r/   r   r    r   )r-   rE   r4   r   r/   r   r    r   )r-   rG   r/   r   r    r   )r-   rI   rJ   r   rK   r   r    rL   )rN   r)   rO   r)   rP   r)   r    rL   )
__name__
__module____qualname____doc____annotations__r'   r,   r   r2   rU   r+   r(   r&   r   r   [   sX          5444       JJJ XJiii XiXXX XXzzz Xz E  E  E X E\\\ X\hhh Xhvvv Xvbbb Xb	? 	? 	? 	?d d d d d dr(   r   ).rZ   
__future__r   logging	getLoggerrW   rT   rR   typingr   r   r   r   
exceptionsr	   messager
   messages.ackr   messages.errorr   messages.okr   messages.patch_docr   messages.pull_doc_replyr   messages.pull_doc_reqr   messages.push_docr   messages.server_info_replyr   messages.server_info_reqr   
core.typesr   document.documentr   document.eventsr   __all__rI   r   r[   r   r+   r(   r&   <module>ro      s!     # " " " " " g!!             & % % % % %             ! ! ! ! ! !       ) ) ) ) ) ) 3 3 3 3 3 3 / / / / / / ' ' ' ' ' ' 9 9 9 9 9 9 5 5 5 5 5 5 7,,,,,,666666 
 
$ *&
/ 
/ 
 
 
 
(<d <d <d <d <d <d <d <d <d <dr(   