bokeh.document.events#
提供表示 Bokeh 文档各种更改的事件。
这些事件在内部用于向文档发出更改信号。有关面向用户的(例如 UI 或工具)事件的信息,请参阅 bokeh.events 的参考。
这些事件用于传入和传出的 websocket 消息,以及在内部触发回调。例如,当用户调用文档 API 或设置导致文档“补丁事件”的属性时发生的事件序列。
user invokes Document API
-> Document API triggers event objects
-> registered callbacks are executed
-> Sesssion callback generates JSON message from event object
-> Session sends JSON message over websocket
但是,事件也可以从客户端触发,并作为 JSON 消息通过传输层到达,这就是为什么 JSON 处理和文档 API 必须分开的原因。考虑事件的替代序列
Session recieves 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)
cols (list[str]) – 可选的要更新的列名称的显式列表。如果为 None,则将更新所有列(默认值:None)
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对 Bokeh 应用程序进行“回旋镖”更新。(默认值:None)
请参阅
DocumentChangedEvent
以获取更多详细信息。callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值: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, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值: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 文档。
列源 (列数据源) – 要向其流式传输新数据的列数据源。
数据 (字典 或 DataFrame) –
要流式传输的新数据。
如果为 DataFrame,将存储为
{c: df[c] for c in df.columns}
翻转 (整数,可选) – 翻转限制。如果数据源列超过此限制,将丢弃较早的值以使列长度保持在限制之下。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对 Bokeh 应用程序进行“回旋镖”更新。(默认值:None)
请参阅
DocumentChangedEvent
以获取更多详细信息。callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值:None)
- to_serializable(序列化器: 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 服务器应用程序的上下文中,传入的属性更新将使用正在执行更新的会话进行注释。此值会传播到更新触发的任何后续更改通知。会话可以将其自身与事件设置程序进行比较,并抑制任何源自自身的更新。
callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值:None)
- combine(event: DocumentChangedEvent) bool [source]#
- class DocumentPatchedEvent(document: Document, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
表示更新 Bokeh 模型及其属性的事件的基类。
- static handle_event(doc: Document, event_rep: DocumentPatched, setter: Setter | None) None [source]#
- 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) – 要更新的模型
attr (str) – 要在模型上更新的属性的名称。
new (object) – 属性的新值
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对 Bokeh 应用程序进行“回旋镖”更新。(默认值:None)
请参阅
DocumentChangedEvent
以获取更多详细信息。callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值:None)
- combine(event: DocumentChangedEvent) bool [source]#
- 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 模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对 Bokeh 应用程序进行“回旋镖”更新。(默认值:None)
请参阅
DocumentChangedEvent
以获取更多详细信息。callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值: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 模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对 Bokeh 应用程序进行“回旋镖”更新。(默认值:None)
请参阅
DocumentChangedEvent
以获取更多详细信息。callback_invoker (callable, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值: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]#
表示从文档中删除现有回调函数(例如,周期性、超时或“下一个刻度”)更改的具体事件。
- __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, 可选) – 一个可调用对象,它将调用任何模型回调,这些回调应在响应触发此事件的更改时执行。(默认值:None)
- combine(event: DocumentChangedEvent) bool [source]#
- to_serializable(serializer: Serializer) TitleChanged [source]#
创建此事件的 JSON 表示形式,适合发送到客户端。
{ 'kind' : 'TitleChanged' 'title' : <new title to set> }
- 参数:
serializer (Serializer)