bokeh.document.events#
提供代表Bokeh文档各种更改的事件。
这些事件在内部用于表示文档的更改。有关面向用户(例如UI或工具)事件的信息,请参阅bokeh.events的参考。
这些事件用于传入和传出的websocket消息,并在内部用于触发回调。例如,当用户调用Document 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)[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
column_source (ColumnDataSource)
cols (list[str]) – 可选的显式列名列表以进行更新。如果为None,所有列都将被更新(默认值:None)
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: 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> }
- Parameters:
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)[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
column_source (ColumnDataSource) – 要应用补丁的数据源。
补丁 (list)
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: None)
- to_serializable(serializer: Serializer) ColumnsPatched[源代码]#
创建此事件的JSON表示,适合发送给客户端。
{ 'kind' : 'ColumnsPatched' 'column_source' : <reference to a CDS> 'patches' : <patches to apply to column_source> }
- Parameters:
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)[源代码]#
一个具体的事件,表示高效地将新数据流式传输到
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)[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
column_source (ColumnDataSource) – 用于流式传输新数据的数据源。
data (dict 或 DataFrame) –
要流式传输的新数据。
如果是DataFrame,将会存储为
{c: df[c] for c in df.columns}rollover (int, optional) – 一个滚动限制。如果数据源列超过此限制,较早的值将被丢弃以保持列长度在限制以下。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: 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> }
- Parameters:
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]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
在Bokeh服务器应用程序的上下文中,对属性的传入更新 将被标注为正在执行更新的会话。这个值会通过更新触发的 任何后续更改通知传播。会话可以将事件设置器与自身进行比较, 并抑制来自自身的任何更新。
callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: 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表示,适合发送给客户端。
子类必须实现此方法。
- Parameters:
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[源代码]#
创建此事件的JSON表示,适合发送给客户端。
子类必须实现此方法。
- Parameters:
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]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
model (Model) – 要更新的模型
attr (str) – 要更新模型上的属性名称。
new (object) – 属性的新值
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: None)
- combine(event: DocumentChangedEvent) bool[source]#
- to_serializable(serializer: Serializer) ModelChanged[源代码]#
创建此事件的JSON表示,适合发送给客户端。
- Parameters:
serializer (Serializer)
- class RootAddedEvent(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
一个具体的事件,表示向文档的“根”模型集合中添加新模型的更改。
- __init__(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None) None[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
model (Model) – 作为文档根添加的Bokeh模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: None)
- to_serializable(serializer: Serializer) RootAdded[source]#
创建此事件的JSON表示,适合发送给客户端。
{ 'kind' : 'RootAdded' 'title' : <reference to a Model> }
- Parameters:
serializer (Serializer)
- class RootRemovedEvent(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None)[source]#
一个具体的事件,表示从文档的“根”模型集合中移除现有模型的更改。
- __init__(document: Document, model: Model, setter: Setter | None = None, callback_invoker: Invoker | None = None) None[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
model (Model) – 要作为文档根移除的Bokeh模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: None)
- to_serializable(serializer: Serializer) RootRemoved[source]#
创建此事件的JSON表示,适合发送给客户端。
{ 'kind' : 'RootRemoved' 'title' : <reference to a Model> }
- Parameters:
serializer (Serializer)
- class SessionCallbackAdded(document: Document, callback: SessionCallback)[source]#
一个具体的事件,表示向文档添加新回调(例如周期性、超时或“下一个刻度”)的更改。
- __init__(document: Document, callback: SessionCallback) None[源代码]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
callback (SessionCallback) – 要添加的回调函数
- class SessionCallbackRemoved(document: Document, callback: SessionCallback)[source]#
一个具体的事件,表示从文档中移除现有回调(例如周期性、超时或“下一个滴答”)的更改。
- __init__(document: Document, callback: SessionCallback) None[源代码]#
- Parameters:
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]#
- Parameters:
document (Document) – 一个需要更新的Bokeh文档。
标题 (str) – 要在文档上设置的新标题
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
更多详情请参见
DocumentChangedEvent。callback_invoker (callable, optional) – 一个可调用对象,用于调用任何应在此事件触发后执行的模型回调。(默认值: None)
- combine(event: DocumentChangedEvent) bool[source]#
- to_serializable(serializer: Serializer) TitleChanged[source]#
创建此事件的JSON表示,适合发送给客户端。
{ 'kind' : 'TitleChanged' 'title' : <new title to set> }
- Parameters:
serializer (Serializer)