bokeh.document.events#
提供表示 Bokeh 文档各种更改的事件。
这些事件在内部用于 сигнализировать 文档的更改。有关面向用户的(例如 UI 或工具)事件的信息,请参阅 bokeh.events 的参考。
这些事件用于传入和传出的 websocket 消息,以及在内部用于触发回调。例如,当用户调用 Document API 或设置属性时,会发生一系列事件,从而导致 Document 的“补丁事件”
user invokes Document API
    -> Document API triggers event objects
    -> registered callbacks are executed
    -> Session callback generates JSON message from event object
    -> Session sends JSON message over websocket
但是事件也可能从客户端触发,并作为 JSON 消息通过传输层到达,这就是为什么 JSON 处理和 Document API 必须分离的原因。考虑事件的替代序列
Session receives JSON message over websocket
    -> Document calls event.handle_json
    -> handle_json invokes appropriate Document API
    -> Document API triggers event objects
    -> registered callbacks are executed
    -> Session callback suppresses outgoing event
最后请注意,通过在创建事件对象时记录“setter”来避免消息“ping-pong”。如果会话回调注意到事件 setter 本身,则不会采取进一步的操作(例如,发送与刚刚处理的传入事件相同的传出更改事件)。
- class ColumnDataChangedEvent(document: Document, model: Model, attr: str, data: DataDict | None = None, cols: list[str] | None = None, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示高效地替换 - ColumnDataSource的所有现有数据- __init__(document: Document, model: Model, attr: str, data: DataDict | None = None, cols: list[str] | None = None, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- column_source (ColumnDataSource) 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - to_serializable(serializer: Serializer) ColumnDataChanged[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'ColumnDataChanged' 'column_source' : <reference to a CDS> 'data' : <new data to steam to column_source> 'cols' : <specific columns to update> } - 参数:
- serializer (Serializer) 
 
 
- class ColumnsPatchedEvent(document: Document, model: Model, attr: str, patches: Patches, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示高效地将数据补丁应用于 - ColumnDataSource- __init__(document: Document, model: Model, attr: str, patches: Patches, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- column_source (ColumnDataSource) – 要应用补丁的数据源。 
- patches (list) 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - to_serializable(serializer: Serializer) ColumnsPatched[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'ColumnsPatched' 'column_source' : <reference to a CDS> 'patches' : <patches to apply to column_source> } - 参数:
- serializer (Serializer) 
 
 
- class ColumnsStreamedEvent(document: Document, model: Model, attr: str, data: DataDict | pd.DataFrame, rollover: int | None = None, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示高效地将新数据流式传输到 - ColumnDataSource- __init__(document: Document, model: Model, attr: str, data: DataDict | pd.DataFrame, rollover: int | None = None, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- column_source (ColumnDataSource) – 要将新数据流式传输到的数据源。 
- data (dict 或 DataFrame) – - 要流式传输的新数据。 - 如果是 DataFrame,将存储为 - {c: df[c] for c in df.columns}
- rollover (int,可选) – 滚动限制。如果数据源列超出此限制,则会丢弃较早的值,以使列长度保持在该限制之下。 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - to_serializable(serializer: Serializer) ColumnsStreamed[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'ColumnsStreamed' 'column_source' : <reference to a CDS> 'data' : <new data to steam to column_source> 'rollover' : <rollover limit> } - 参数:
- serializer (Serializer) 
 
 
- class DocumentChangedEvent(document: Document, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 所有内部事件的基类,表示对 Bokeh 文档的更改。 - __init__(document: Document, setter: Setter | None = None, callback_invoker: Invoker | None = None) None[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 在 Bokeh 服务器应用程序的上下文中,传入的属性更新将使用执行更新的会话进行注释。此值将通过更新触发的任何后续更改通知进行传播。会话可以将事件 setter 与自身进行比较,并抑制任何源自自身的更新。 
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - combine(event: DocumentChangedEvent) bool[source]#
 
- class DocumentPatchedEvent(document: Document, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 用于表示更新 Bokeh 模型及其属性的事件的基类。 - to_serializable(serializer: Serializer) MessageSent | ModelChanged | ColumnDataChanged | ColumnsStreamed | ColumnsPatched | TitleChanged | RootAdded | RootRemoved[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - 子类必须实现此方法。 - 参数:
- serializer (Serializer) 
 
 
- class MessageSentEvent(document: Document, msg_type: str, msg_data: Any | bytes, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 
- to_serializable(serializer: Serializer) MessageSent[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - 子类必须实现此方法。 - 参数:
- serializer (Serializer) 
 
 
- class ModelChangedEvent(document: Document, model: Model, attr: str, new: Any, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示更新特定 Bokeh 模型的属性和值。 - __init__(document: Document, model: Model, attr: str, new: Any, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- model (Model) – 要更新的 Model 
- attr (str) – 要在模型上更新的属性的名称。 
- new (object) – 属性的新值 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - combine(event: DocumentChangedEvent) bool[source]#
 - dispatch(receiver: Any) None[source]#
- 将此事件的处理分发给接收器。 - 如果 - receiver._document_model_changed存在,此方法将调用它。
 - to_serializable(serializer: Serializer) ModelChanged[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - 参数:
- serializer (Serializer) 
 
 
- class RootAddedEvent(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示更改以将新 Model 添加到 Document 的“根”模型集合中。 - __init__(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None) None[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- model (Model) – 要作为 Document 根添加的 Bokeh Model。 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - to_serializable(serializer: Serializer) RootAdded[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'RootAdded' 'title' : <reference to a Model> } - 参数:
- serializer (Serializer) 
 
 
- class RootRemovedEvent(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示更改以从 Document 的“根”模型集合中删除现有 Model。 - __init__(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None) None[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- model (Model) – 要作为 Document 根删除的 Bokeh Model。 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - to_serializable(serializer: Serializer) RootRemoved[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'RootRemoved' 'title' : <reference to a Model> } - 参数:
- serializer (Serializer) 
 
 
- class SessionCallbackAdded(document: Document, callback: SessionCallback)[source]#
- 一个具体的事件,表示更改以将新回调(例如,周期性、超时或“下一个刻度”)添加到 Document。 - __init__(document: Document, callback: SessionCallback) None[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- callback (SessionCallback) – 要添加的回调 
 
 
 
- class SessionCallbackRemoved(document: Document, callback: SessionCallback)[source]#
- 一个具体的事件,表示更改以从 Document 中删除现有回调(例如,周期性、超时或“下一个刻度”)。 - __init__(document: Document, callback: SessionCallback) None[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- callback (SessionCallback) – 要删除的回调 
 
 
 
- class TitleChangedEvent(document: Document, title: str, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 一个具体的事件,表示 Bokeh 文档的标题已更改。 - __init__(document: Document, title: str, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
- 参数:
- document (Document) – 要更新的 Bokeh 文档。 
- title (str) – 要在文档上设置的新标题 
- setter (ClientSession 或 ServerSession 或 None,可选) – - 这用于防止对 Bokeh 应用程序的“回旋镖”更新。(默认值:None) - 有关更多详细信息,请参见 - DocumentChangedEvent。
- callback_invoker (callable,可选) – 一个可调用对象,它将调用任何应执行以响应触发此事件的更改的 Model 回调。(默认值:None) 
 
 
 - combine(event: DocumentChangedEvent) bool[source]#
 - to_serializable(serializer: Serializer) TitleChanged[source]#
- 创建此事件的 JSON 表示,适合发送给客户端。 - { 'kind' : 'TitleChanged' 'title' : <new title to set> } - 参数:
- serializer (Serializer)