bokeh.document.document#
注意
本节记录了实现Document的物理文件系统模块。然而,预期的公共接口在bokeh.document中。
提供Document类,它是一个容器,用于将Bokeh模型反映到客户端的BokehJS库。
作为一个具体的例子,考虑一个包含Slider和Select小部件的列布局,以及一个带有一些工具、轴和网格的图表,以及一个用于圆形的字形渲染器。这个文档的简化表示可能如下图所示:
Bokeh 文档是 Bokeh 模型(例如图表、工具、字形等)的集合,可以作为一个整体进行序列化。#
- class Document(*, theme: ~bokeh.themes.theme.Theme = <bokeh.themes.theme.Theme object>, title: str = 'Bokeh Application')[源代码]
Bokeh 序列化的基本单位。
文档实例收集Bokeh模型(例如图表、布局、小部件等),以便它们可以反映到BokehJS客户端运行时中。由于模型可能引用其他模型(例如,一个图表有一个渲染器列表),将单个模型转换为JSON通常没有用处或意义。因此,
Document是Bokeh序列化的最小单位。- add_next_tick_callback(callback: Callback) NextTickCallback[source]
添加回调以在事件循环的下一个刻度上调用一次。
- Parameters:
callback (callable) – 一个回调函数,在下一个时间点执行。
- Returns:
可以与
remove_next_tick_callback一起使用- Return type:
注意
下一个刻度回调仅在Bokeh服务器会话的上下文中有效。当Bokeh输出到独立的HTML或Jupyter笔记本单元格时,此函数将无效。
- add_periodic_callback(callback: Callback, period_milliseconds: int) PeriodicCallback[source]
添加一个回调函数,以便在会话期间定期调用。
- Parameters:
callback (callable) – 一个定期执行的回调函数
period_milliseconds (int) – 每次回调执行之间的毫秒数。
- Returns:
可以与
remove_periodic_callback一起使用- Return type:
注意
周期性回调仅在Bokeh服务器会话的上下文中有效。当Bokeh输出到独立的HTML或Jupyter笔记本单元格时,此函数将无效。
- add_root(model: Model, setter: Setter | None = None) None[source]
将模型添加为此文档的根。
对此模型的任何更改(包括对其引用的其他模型的更改)将触发在此文档上注册的
on_change回调。- Parameters:
model (Model) – 要添加为此文档根部的模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
在Bokeh服务器应用程序的上下文中,对属性的传入更新 将被标注为正在执行更新的会话。这个值会通过更新触发的 任何后续更改通知传播。会话可以将事件设置器与自身进行比较, 并抑制来自自身的任何更新。
- add_timeout_callback(callback: Callback, timeout_milliseconds: int) TimeoutCallback[source]
添加回调函数,在指定的超时时间过后调用一次。
- Parameters:
callback (callable) – 超时后执行的回调函数
timeout_milliseconds (int) – 回调执行前的毫秒数。
- Returns:
可以与
remove_timeout_callback一起使用- Return type:
注意
超时回调仅在Bokeh服务器会话的上下文中有效。当Bokeh输出到独立的HTML或Jupyter笔记本单元格时,此函数将无效。
- apply_json_patch(patch_json: PatchJson | Serialized[PatchJson], *, setter: Setter | None = None) None[source]
应用一个JSON补丁对象并处理任何产生的事件。
- Parameters:
patch_json (JSON-data) – 包含要应用的补丁的JSON对象。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
在Bokeh服务器应用程序的上下文中,对属性的传入更新 将被标注为正在执行更新的会话。这个值会通过更新触发的 任何后续更改通知传播。会话可以将事件设置器与自身进行比较, 并抑制来自自身的任何更新。
- Returns:
无
- classmethod from_json(doc_json: DocJson | Serialized[DocJson]) Document[source]
从JSON加载文档。
- doc_json (JSON-data) :
用于创建新文档的JSON编码文档。
- Return type:
- classmethod from_json_string(json: str) Document[source]
从JSON加载文档。
- json (str) :
一个包含JSON编码文档的字符串,用于从中创建一个新的文档。
- Return type:
- get_model_by_id(model_id: ID) Model | None[source]
在本文档中查找给定ID的模型,如果未找到则返回
None。- Parameters:
model_id (str) – 要搜索的模型的ID
- Returns:
模型或无
- get_model_by_name(name: str) Model | None[source]
在本文档中查找给定名称的模型,如果未找到,则返回
None。- Parameters:
name (str) – 要搜索的模型的名称
- Returns:
模型或无
- hold(policy: Literal['combine', 'collect'] = 'combine') None[source]
激活文档保留。
当保持处于活动状态时,不会应用任何模型更改或触发回调。一旦调用
unhold,在保持期间收集的事件将根据保持策略进行应用。- Parameters:
policy ('combine' 或 'collect', 可选) –
在保持期间收集的事件是否应尝试合并(默认:'combine')
当设置为
'collect'时,所有事件将被收集并在调用unhold时按原样重放。当设置为
'combine'时,Bokeh 将尝试将兼容的事件合并在一起。通常,改变同一模型上相同属性的不同事件可以合并。例如,如果发生以下序列:doc.hold('combine') slider.value = 10 slider.value = 11 slider.value = 12
然后只会触发一个回调,即最后一个
slider.value = 12。- Returns:
无
注意
hold仅适用于文档更改事件,即在模型上设置属性。它不适用于诸如ButtonClick等事件。
- on_event(event: str | type[Event], *callbacks: Callable[[Event], None]) None[source]
如果接收到bokeh事件,提供回调函数来调用。
- remove_next_tick_callback(callback_obj: NextTickCallback) None[source]
移除之前使用
add_next_tick_callback添加的回调函数。- Parameters:
callback_obj – 从
add_next_tick_callback返回的值- Returns:
无
- Raises:
ValueError, 如果回调从未被添加或已经运行或已被移除 –
- remove_on_change(*callbacks: Any) None[source]
移除之前使用
on_change添加的回调。- Raises:
KeyError, 如果回调从未被添加 –
- remove_periodic_callback(callback_obj: PeriodicCallback) None[source]
移除之前使用
add_periodic_callback添加的回调- Parameters:
callback_obj – 从
add_periodic_callback返回的值- Returns:
无
- Raises:
ValueError, 如果回调从未被添加或已经被移除 –
- remove_root(model: Model, setter: Setter | None = None) None[source]
从该文档中移除作为根模型的模型。
对此模型的更改仍可能触发此文档上的
on_change回调,如果该模型仍被其他根模型引用。- Parameters:
model (Model) – 要添加为此文档根部的模型。
setter (ClientSession 或 ServerSession 或 None, 可选) –
这用于防止对Bokeh应用程序的“回旋镖”更新。 (默认值: None)
在Bokeh服务器应用程序的上下文中,对属性的传入更新 将被标注为正在执行更新的会话。这个值会通过更新触发的 任何后续更改通知传播。会话可以将事件设置器与自身进行比较, 并抑制来自自身的任何更新。
- remove_timeout_callback(callback_obj: TimeoutCallback) None[source]
移除之前使用
add_timeout_callback添加的回调函数。- Parameters:
callback_obj – 从
add_timeout_callback返回的值- Returns:
无
- Raises:
ValueError, 如果回调从未被添加或已经运行或已被移除 –
- replace_with_json(json: DocJson) None[source]
用JSON编码的文档覆盖此文档中的所有内容。
- json (JSON-data) :
一个JSON编码的文档,用于覆盖此文档。
- Returns:
无
- select(selector: SelectorType) Iterable[Model][source]
查询此文档以匹配给定选择器的对象。
- Parameters:
selector (类似JSON的查询字典) – 你可以通过类型或名称进行查询,例如
{"type": HoverTool},{"name": "mycircle"}- Returns:
序列[模型]
- select_one(selector: SelectorType) Model | None[source]
查询此文档以查找与给定选择器匹配的对象。 如果找到多个对象,则会引发错误。返回 单个匹配对象,如果未找到任何内容,则返回 None
- Parameters:
selector (类似JSON的查询字典) – 你可以通过类型或名称进行查询,例如
{"type": HoverTool},{"name": "mycircle"}- Returns:
模型或无
- set_select(selector: SelectorType | type[Model], updates: dict[str, Any]) None[source]
使用指定的属性/值更新来更新与给定选择器匹配的对象。
- Parameters:
selector (类似JSON的查询字典) – 你可以通过类型或名称进行查询,例如
{"type": HoverTool},{"name": "mycircle"}更新 (dict)
- Returns:
无
- property session_callbacks: list[SessionCallback]
本文档的所有会话回调列表。
- property session_context: SessionContext | None
本文档的
SessionContext。
- property session_destroyed_callbacks: set[SessionDestroyedCallback]
此文档的所有on_session_destroyed回调函数的列表。
- property template: Template
用于渲染此文档的Jinja2模板。
- property theme: 主题
当前影响此文档中模型的
Theme实例。将此设置为
None将设置默认主题。(即此属性 永远不会返回None。)更改主题可能会触发文档中模型上的模型更改事件,如果主题修改了任何模型属性。
- property title: str
本文档的标题。
这个标题将设置在独立的HTML文档上,但不会在例如使用
autoload_server时设置。