bokeh.protocol

Bokehサーバとクライアントとの間の通信を実装し、メッセージプロトコルを提供する。

class Protocol[ソース]

Bokeh Serverメッセージプロトコルにメッセージ工場を提供します。

assemble(header_json, metadata_json, content_json)[ソース]

Jsonフラグメントによって組み立てられたメッセージインスタンスを作成します。

パラメータ
  • header_json (JSON) --

  • metadata_json (JSON) --

  • content_json (JSON) --

戻り値

メッセージ

create(msgtype, *args, **kwargs)[ソース]

所与のタイプのための新しいメッセージインスタンスを作成します。

パラメータ

msgtype (str) --

bokeh.protocol.exceptions

Bokehプロトコルメッセージの処理に関連する命名異常が提供される。

exception MessageError[ソース]

Bokehメッセージ·オブジェクトの構築を指示する際にエラーが発生する.

この例外は、通常、メッセージのJSONフラグメントが全く復号できないことを表す。

exception ProtocolError[ソース]

有線プロトコルセグメントを扱う際のエラーを示す.

この例外は,復号されたメッセージセグメントを正しく組み合わせることができないことを表す.

exception ValidationError[ソース]

回線プロトコルセグメントを検証する際のエラーを示す.

この例外は、一般に、予期されるテキストセグメントのときにバイナリメッセージセグメントが受信されることを表し、その逆も同様

bokeh.protocol.message

基本クラスは、すべてのBokehサーバプロトコル·メッセージ·タイプに提供されます。

Bokerメッセージは一連のJSONセグメントから構成される.メッセージは、Python JSONのようなデータとして指定され、その一般的なフォーマットは:

[
    # these are required
    b'{header}',        # serialized header dict
    b'{metadata}',      # serialized metadata dict
    b'{content},        # serialized content dict

    # these are optional, and come in pairs; header contains num_buffers
    b'{buf_header}',    # serialized buffer header dict
    b'array'            # raw buffer payload data
    ...
]

♪the header セグメントのフォーマットは:

header = {
    # these are required
    'msgid'       : <str> # a unique id for the message
    'msgtype'     : <str> # a message type, e.g. 'ACK', 'PATCH-DOC', etc

    # these are optional
    'num_buffers' : <int> # the number of additional buffers, if any
}

♪the metadata フラグメントは任意の情報を含むことができる。Bokehはいかなる目的でも処理しないが、外部監視や機器ツールに有用である可能性がある。

♪the content フラグメントは特定のメッセージタイプによって定義される.

class Message(header, metadata, content)[ソース]

Messageベースクラスは,Bokeh Serverメッセージの作成,組み立て,完全性検証を実装している.さらにフックも提供しています

__init__(header, metadata, content)[ソース]

新しいメッセージは、タイトル、メタデータ、およびコンテンツ辞書から初期化される。

既存のJSONセグメントからメッセージを組み立てるには、ご利用ください assemble 方法です。

自動生成されたヘッダを使用して新しいメールを作成するには、Subclassを使用してください create 方法です。

パラメータ
  • header (JSON-like) --

  • metadata (JSON-like) --

  • content (JSON-like) --

add_buffer(buf_header, buf_payload)[ソース]

バッファヘッダとペイロードをこのメッセージに関連付ける.

パラメータ
  • buf_header (JSON) -- バッファヘッダ

  • buf_payload (JSON or bytes) -- バッファペイロード

戻り値

なし

例外

MessageError --

classmethod assemble(header_json, metadata_json, content_json)[ソース]

JSONセグメントによって組み立てられた新しいメッセージを作成します。

パラメータ
  • header_json (JSON) --

  • metadata_json (JSON) --

  • content_json (JSON) --

戻り値

消息類.

例外

MessageError --

assemble_buffer(buf_header, buf_payload)[ソース]

ソケットから読み出したバッファヘッドとペイロードを追加します。

これはadd_Buffer()とは異なり,我々は頭を充填するのではなく頭のnum_Buffersを検証しているからである.

パラメータ
  • buf_header (JSON) -- バッファヘッダ

  • buf_payload (JSON or bytes) -- バッファペイロード

戻り値

なし

例外

ProtocolError --

classmethod create_header(request_id=None)[ソース]

メッセージヘッダ断片dictを返す.

パラメータ

request_id (str or None) -- このメールから返信されたメールのメールID

戻り値

郵便頭.

戻り値の型

dict

async send(conn)[ソース]

与えられた接続上でメッセージを送信する.

パラメータ

conn (WebSocketHandler) -- メッセージを送信するためのWebSocketHandler

戻り値

送信バイト数

戻り値の型

int

async write_buffers(conn, locked=True)[ソース]

任意のバッファヘッダおよびペイロードを所与の接続に書き込みます。

パラメータ
  • conn (object) -- どんなものでも write_message 方法です。通常竜巻は WSHandler あるいは…。 WebSocketClientConnection

  • locked (bool) --

戻り値

送信バイト数

戻り値の型

int

property complete

メッセージを返すすべての必要な部分が存在するかどうか.

戻り値

メッセージが完全であればTrue,そうでなければFalseである.

戻り値の型

bool

bokeh.protocol.messages

ACK

class ack(header, metadata, content)[ソース]

定義 ACK クライアントがBokehサーバに成功裏に接続されたことを確認するためのメッセージ。

♪the content このメッセージの断片は空である.

classmethod create(**metadata)[ソース]

1つを作ることができます ACK メッセージ

どのキーワードパラメータもメッセージに入れます metadata そのまま断片化する。

ERROR

class error(header, metadata, content)[ソース]

定義 ERROR エラー状況をBokehサーバのメッセージに報告する.

♪the content このメッセージのフラグメントのフォーマットは:

{
    'text'      : <error message text>

    # this is optional
    'traceback' : <traceback text>
}
classmethod create(request_id, text, **metadata)[ソース]

1つを作ることができます ERROR メッセージ

パラメータ
  • request_id (str) -- エラーを引き起こすメッセージのメッセージID。

  • text (str) -- エラーメッセージやバックトラックのテキストなどである.

他のキーワードパラメータはメッセージに入れられます metadata そのまま断片化する。

OK

class ok(header, metadata, content)[ソース]

定義 OK 前のメッセージの処理に成功したことを確認するためのメッセージ。

♪the content このメッセージの断片は空である.

classmethod create(request_id, **metadata)[ソース]

1つを作ることができます OK メッセージ

パラメータ

request_id (str) -- 確認を招いたメッセージのメッセージID。

他のキーワードパラメータはメッセージに入れられます metadata そのまま断片化する。

PATCH-DOC

class patch_doc(header, metadata, content)[ソース]

定義 PATCH-DOC 遠隔文書間で文書修復イベントを送信するためのメッセージ。

♪the content このメッセージのフラグメントのフォーマットは:

{
    'events'     : <protocol document events>
    'references' : <model references>
}
apply_to_document(doc, setter=None)[ソース]
classmethod create(events, use_buffers=True, **metadata)[ソース]

1つを作ることができます PATCH-DOC メッセージ

パラメータ

events (list) -- 文書に適用するパッチイベントリスト

他のキーワードパラメータはメッセージに入れられます metadata そのまま断片化する。

process_document_events(events, use_buffers=True)[ソース]

適用するパッチおよび任意のオプションバッファを記述するJSON文字列を作成します。

パラメータ

events -- パッチに変換するイベントリスト

戻り値

Objおよび任意のオプションバッファを所与の更新するために使用することができるJSON文字列

戻り値の型

str, list

PULL-DOC-REPLY

class pull_doc_reply(header, metadata, content)[ソース]

定義 PULL-DOC-REPLY クライアントからの文書引き出し要求を返信するためのメッセージ

♪the content このメッセージのフラグメントのフォーマットは:

{
    'doc' : <Document JSON>
}
classmethod create(request_id, document, **metadata)[ソース]

1つを作ることができます PULL-DOC-REPLY メッセージ

パラメータ
  • request_id (str) -- Pull要求メッセージのメッセージID

  • document (Document) -- 返信する文書

他のキーワードパラメータはメッセージに入れられます metadata そのまま断片化する。

PULL-DOC-REQ

class pull_doc_req(header, metadata, content)[ソース]

定義 PULL-DOC-REQ 新しいBokeh文書を有するBokehサーバから返信を要求するためのメッセージ。

♪the content このメッセージの断片は空である.

classmethod create(**metadata)[ソース]

1つを作ることができます PULL-DOC-REQ メッセージ

どのキーワードパラメータもメッセージに入れます metadata そのまま断片化する。

PUSH-DOC

class push_doc(header, metadata, content)[ソース]

定義 PUSH-DOC クライアントからBokehサーバに文書をプッシュするためのメッセージ。

♪the content このメッセージのフラグメントのフォーマットは:

{
    'doc' : <Document JSON>
}
classmethod create(document, **metadata)[ソース]
push_to_document(doc)[ソース]
例外

ProtocolError --

SERVER-INFO-REPLY

class server_info_reply(header, metadata, content)[ソース]

定義 SERVER-INFO-REPLY クライアントからのサーバ情報要求に応答するためのメッセージ。

♪the content このメッセージのフラグメントのフォーマットは:

{
    'version_info' : {
        'bokeh'  : <bokeh library version>
        'server' : <bokeh server version>
    }
}
classmethod create(request_id, **metadata)[ソース]

1つを作ることができます SERVER-INFO-REPLY メッセージ

パラメータ

request_id (str) -- INFO要求メッセージのメッセージID

他のキーワードパラメータはメッセージに入れられます metadata そのまま断片化する。

SERVER-INFO-REQ

class server_info_req(header, metadata, content)[ソース]

定義 SERVER-INFO-REQ Bokehサーバに要求するためのメッセージは、自身に関する情報を提供する。

♪the content このメッセージの断片は空である.

classmethod create(**metadata)[ソース]

1つを作ることができます SERVER-INFO-REQ メッセージ

どのキーワードパラメータもメッセージに入れます metadata そのまま断片化する。

bokeh.protocol.receiver

WebSocket有線メッセージセグメントを処理可能な完全なBokeh Serverメッセージオブジェクトに組み立てる.

class Receiver(protocol)[ソース]

有線メッセージセグメントを受信し、完全なBokehサーバメッセージオブジェクトを組み立てる。

vt.はい。行け! MessageError あるいは…。 ValidationError 受信機は、その状態をリセットし、新しいメッセージの消費を試みる。

♪the 受信されたデータは、送信の意味に特に依存するバイトまたはUnicodeであってもよい(WebSocketは両方可能である)。

[
    # these are required
    b'{header}',        # serialized header dict
    b'{metadata}',      # serialized metadata dict
    b'{content},        # serialized content dict

    # these are optional, and come in pairs; header contains num_buffers
    b'{buf_header}',    # serialized buffer header dict
    b'array'            # raw buffer payload data
    ...
]

♪the header セグメントのフォーマットは:

header = {
    # these are required
    'msgid'       : <str> # a unique id for the message
    'msgtype'     : <str> # a message type, e.g. 'ACK', 'PATCH-DOC', etc

    # these are optional
    'num_buffers' : <int> # the number of additional buffers, if any
}

♪the metadata フラグメントは任意の情報を含むことができる。Bokehはいかなる目的でも処理しないが、外部監視や機器ツールに有用である可能性がある。

♪the content フラグメントは特定のメッセージタイプによって定義される.

__init__(protocol)[ソース]

受信機は、特定のBokehプロトコルを使用して構成される。

パラメータ

protocol (Protocol) -- 収集されたメッセージセグメントを組み合わせるためのBokehプロトコルオブジェクト。

async consume(fragment)[ソース]

単一のプロトコルメッセージセグメントを使用する。

パラメータ

fragment (JSON) -- 組み立てなければならないメッセージ断片。完全なメッセージを組み立てた後、受信側の状態は、新しいメッセージの使用を開始するようにリセットされる。