bokeh.util#
提供一系列用于实现 Bokeh 功能的通用实用程序。
bokeh.util.browser
#
用于帮助执行涉及浏览器的操作的实用程序函数。
- get_browser_controller(browser: str | None = None) BrowserLike [source]#
返回一个浏览器控制器。
- 参数:
browser (str 或 None) –
浏览器名称,或
None
(默认值:None
) 如果传递字符串'none'
,则返回一个虚拟网络浏览器控制器。否则,使用该值通过 webbrowser 标准库模块选择合适的控制器。如果该值为
None
,则使用系统默认值。- 返回值:
一个网络浏览器控制器
- 返回类型:
控制器
bokeh.util.callback_manager
#
为类添加 on_change
和 on_event
回调接口,提供 PropertyCallbackManager
和 EventCallbackManager
混合类。
bokeh.util.compiler
#
提供用于帮助进行各种JS和CSS编译的函数和类。
- class JavaScript(code: str, file: str | None = None)[source]#
JavaScript中Bokeh自定义模型的实现
示例
class MyExt(Model): __implementation__ = JavaScript(""" <JavaScript code> """)
- class TypeScript(code: str, file: str | None = None)[source]#
TypeScript中Bokeh自定义模型的实现
示例
class MyExt(Model): __implementation__ = TypeScript(""" <TypeScript code> """)
- calc_cache_key(custom_models: dict[str, CustomModel]) str [source]#
生成一个键,用于缓存自定义扩展实现。
除了模型类之外,没有其他元数据,因此这是生成缓存键的唯一依据。
我们从
model.full_name
列表构建模型键。这不是理想的解决方案,但可能以后可以找到更好的解决方案。
- get_cache_hook() Callable[[CustomModel, Implementation], AttrDict | None] [source]#
返回当前缓存钩子,用于根据CustomModel和Implementation查找编译后的代码。
- set_cache_hook(hook: Callable[[CustomModel, Implementation], AttrDict | None]) None [source]#
设置一个编译模型缓存钩子,用于根据CustomModel和Implementation查找编译后的代码。
bokeh.util.dependencies
#
用于检查依赖项的实用程序。
- import_optional(mod_name: str) ModuleType | None [source]#
尝试导入可选的依赖项。
如果请求的模块不可用,则静默返回None。
- 参数:
mod_name (str) – 要尝试导入的可选模块的名称
- 返回值:
导入的模块或None,如果导入失败。
- import_required(mod_name: str, error_msg: str) ModuleType [source]#
尝试导入必需的依赖项。
如果请求的模块不可用,则引发RuntimeError。
- 参数:
- 返回值:
导入的模块
- 引发:
bokeh.util.deprecation
#
bokeh.util.functions
#
函数内省的实用程序。
bokeh.util.hex
#
处理六边形平铺的有用函数。
有关此处使用的概念的更多信息,请参阅此信息页面
- axial_to_cartesian(q: Any, r: Any, size: float, orientation: str, aspect_scale: float = 1) tuple[Any, Any] [source]#
将轴向(q,r)坐标映射到图块中心的笛卡尔(x,y)坐标。
此函数可用于根据六边形平铺将其他 Bokeh 图形放置在笛卡尔坐标中。
此函数改编自
https://www.redblobgames.com/grids/hexagons/#hex-to-pixel
- 参数:
q (array[float]) – 用于分箱的 q 坐标的 NumPy 数组
r (array[float]) – 用于分箱的 r 坐标的 NumPy 数组
size (float) –
六边形平铺的大小。
对于“pointytop”方向,大小定义为从六边形中心到顶角的距离;对于“flattop”方向,大小定义为从中心到侧角的距离。
orientation (str) – 六边形图块方向应为“pointytop”还是“flattop”。
aspect_scale (float, optional) –
沿“交叉”维度缩放六边形。
对于“pointytop”方向,六边形沿水平方向缩放;对于“flattop”,六边形沿垂直方向缩放。
当使用具有
aspect_scale != 1
的绘图时,将此值设置为与绘图匹配可能很有用。
- 返回值:
(array[int], array[int])
- cartesian_to_axial(x: Any, y: Any, size: float, orientation: str, aspect_scale: float = 1) tuple[Any, Any] [source]#
将笛卡尔(x,y)点映射到包含图块的轴向(q,r)坐标。
此函数改编自
https://www.redblobgames.com/grids/hexagons/#pixel-to-hex
- 参数:
x (array[float]) – 要转换的 x 坐标的 NumPy 数组
y (array[float]) – 要转换的 y 坐标的 NumPy 数组
size (float) –
六边形平铺的大小。
对于“pointytop”方向,大小定义为从六边形中心到顶角的距离;对于“flattop”方向,大小定义为从中心到侧角的距离。
orientation (str) – 六边形图块方向应为“pointytop”还是“flattop”。
aspect_scale (float, optional) –
沿“交叉”维度缩放六边形。
对于“pointytop”方向,六边形沿水平方向缩放;对于“flattop”,六边形沿垂直方向缩放。
当使用具有
aspect_scale != 1
的绘图时,将此值设置为与绘图匹配可能很有用。
- 返回值:
(array[int], array[int])
- hexbin(x: Any, y: Any, size: float, orientation: str = 'pointytop', aspect_scale: float = 1) Any [source]#
将数据点等权重分箱到六边形图块中。
对于更复杂的使用案例,例如加权分箱或按其他数量比例缩放单个图块,请考虑使用 HoloViews。
- 参数:
x (array[float]) – 用于分箱的 x 坐标的 NumPy 数组
y (array[float]) – 用于分箱的 y 坐标的 NumPy 数组
size (float) –
六边形平铺的大小。
对于“pointytop”方向,大小定义为从六边形中心到顶角的距离;对于“flattop”方向,大小定义为从中心到侧角的距离。
orientation (str, optional) – 六边形图块方向应为“pointytop”还是“flattop”。(默认值:“pointytop”)
aspect_scale (float, optional) –
匹配绘图的纵横比缩放。
当使用具有
aspect_scale != 1
的绘图时,可以将此参数设置为与绘图匹配,以绘制规则的六边形(而不是“拉伸”的六边形)。这大致相当于在“屏幕空间”中进行分箱,当绘图纵横比缩放不为 1 时,最好使用轴对齐的矩形箱。
- 返回值:
DataFrame
生成的 DataFrame 将具有指定六边形图块位置(轴向坐标)的q和r列,以及提供每个图块计数的counts列。
警告
六边形分箱仅适用于线性刻度,即不适用于对数绘图。
bokeh.util.info
#
bokeh.util.logconfig
#
配置 Bokeh 的日志系统。
默认情况下,不会配置日志记录,以允许 Bokeh 用户完全控制日志记录策略。但是,在开发 Bokeh 时能够任意启用日志记录很有用。这可以通过设置环境变量BOKEH_PY_LOG_LEVEL
来实现。有效值为(按严重性递增顺序排列)
debug
信息
warn
error
fatal
none
默认日志记录级别为none
。
bokeh.util.options
#
用于指定、验证和记录配置选项的实用程序。
- class Options(kw: dict[str, Any])[source]#
利用 Bokeh 属性类型系统来指定和验证配置选项。
Options
的子类使用标准的 Bokeh 属性指定一组配置选项。class ConnectOpts(Options): host = String(default="127.0.0.1", help="a host value") port = Int(default=5590, help="a port value")
然后,可以通过传递一个包含键和值的字典来创建一个
ConnectOpts
,这些键和值对应于配置选项,以及任何其他键和值。对应于ConnectOpts
上属性的项将从字典中**删除**。这对于接受自己的配置关键字参数集以及某些 Bokeh 模型属性集的函数非常有用。
bokeh.util.paths
#
- bokehjs_path(dev: bool = False) Path [source]#
获取 bokehjs 源文件的位置。
默认情况下,使用
bokeh/server/static
中的文件。如果dev
为True
,则首选bokehjs/build
中的文件。但是,如果不可用,则会发出警告并使用前一个文件作为后备。
bokeh.util.serialization
#
用于帮助序列化和反序列化 Bokeh 对象的函数。
某些 NumPy 数组数据类型可以序列化为二进制格式以提高性能和效率。支持的数据类型列表为
np.float32
np.uint32
np.int32
np.int8
np.uint8
np.uint16
np.float64
np.int16
np.bool
- array_encoding_disabled(array: npt.NDArray[Any]) bool [source]#
确定数组是否可以进行二进制编码。
可以编码的 NumPy 数组数据类型为
np.float32
np.uint32
np.int32
np.int8
np.uint8
np.uint16
np.float64
np.int16
np.bool
- 参数:
array (np.ndarray) – 要检查的数组
- 返回值:
bool
- convert_date_to_datetime(obj: date) float [source]#
将日期对象转换为日期时间。
- 参数:
obj (date) – 要转换的对象
- 返回值:
datetime
- convert_datetime_array(array: npt.NDArray[Any]) npt.NDArray[np.floating[Any]] [source]#
将 NumPy 日期时间数组转换为自纪元以来的毫秒数组。
- 参数:
array –
(obj) 要转换的日期时间 NumPy 数组
如果传入的值不是 NumPy 数组,则会原样返回。
- 返回值:
array
- convert_datetime_type(obj: Any | pd.Timestamp | pd.Timedelta | dt.datetime | dt.date | dt.time | np.datetime64) float [source]#
将任何识别的日期、时间或日期时间值转换为自纪元以来的浮点毫秒数。
- convert_timedelta_type(obj: timedelta | timedelta64) float [source]#
将任何识别的时差值转换为浮点绝对毫秒数。
- is_datetime_type(obj: Any) TypeGuard[time | datetime | datetime64] [source]#
判断一个对象是否为 Bokeh 识别的任何日期、时间或日期时间类型。
- is_timedelta_type(obj: Any) TypeGuard[timedelta | timedelta64] [source]#
判断一个对象是否为 Bokeh 识别的任何时间差类型。
- make_globally_unique_css_safe_id() ID [source]#
返回一个全局唯一的 CSS 安全 UUID。
某些情况,例如在 HTML 文档中为动态创建的 Div 赋予 ID,始终需要全局唯一的 ID。使用此函数生成的 ID 可用于
document.querySelector("#id")
等 API。- 返回值:
字符串
- make_globally_unique_id() ID [source]#
返回一个全局唯一的 UUID。
某些情况,例如在 HTML 文档中为动态创建的 Div 赋予 ID,始终需要全局唯一的 ID。
- 返回值:
字符串
- make_id() ID [source]#
为 Bokeh 对象返回一个新的唯一 ID。
通常,此函数将返回简单的单调递增整数 ID(作为字符串),用于识别文档中的 Bokeh 对象。但是,如果希望每个对象都具有全局唯一性,则可以通过设置环境变量
BOKEH_SIMPLE_IDS=no
来覆盖此行为。- 返回值:
字符串
bokeh.util.token
#
用于生成和操作会话 ID 的实用程序。
会话 ID 通常与查看应用程序或绘图的每个浏览器选项卡相关联。每个会话都有自己的状态,与服务器托管的任何其他会话分开。
- check_session_id_signature(session_id: str, secret_key: bytes | None = None, signed: bool | None = False) bool [source]#
检查会话 ID 的签名,如果有效则返回 True。
服务器使用此函数检查会话 ID 是否使用正确的密钥生成。如果禁用签名会话,则此函数始终返回 True。
- check_token_signature(token: str, secret_key: bytes | None = None, signed: bool = False) bool [source]#
检查令牌和包含的签名的签名。
服务器使用此函数检查令牌和包含的会话 ID 是否使用正确的密钥生成。如果禁用签名会话,则此函数始终返回 True。
- generate_jwt_token(session_id: ID, secret_key: bytes | None = None, signed: bool = False, extra_payload: dict[str, Any] | None = None, expiration: int = 300) str [source]#
根据会话 ID 和其他有效负载生成 JWT 令牌。
- generate_secret_key() str [source]#
生成一个新的安全生成的密钥,适用于 SHA-256 HMAC 签名。
例如,此密钥可用于对 Bokeh 服务器会话 ID 进行签名。
- generate_session_id(secret_key: bytes | None = None, signed: bool = False) ID [source]#
生成随机会话 ID。
通常,连接到 Bokeh 应用程序的每个浏览器选项卡都有其自己的会话 ID。在 Bokeh 应用程序的生产部署中,会话 ID 应为随机且不可猜测的,否则应用程序的用户可能会相互干扰。
bokeh.util.strings
#
用于字符串操作或编码的有用函数。
- append_docstring(docstring: str | None, extra: str) str | None [source]#
安全地追加到文档字符串。
当 Python 使用
-OO
选项执行时,文档字符串将被删除并替换为None
值。此函数在此情况下防止追加额外的内容。
- format_docstring(docstring: None, *args: Any, **kwargs: Any) None [source]#
- format_docstring(docstring: str, *args: Any, **kwargs: Any) str
安全地格式化文档字符串。
当 Python 使用
-OO
选项执行时,文档字符串将被删除并替换为None
值。此函数在此情况下防止应用字符串格式化选项。
bokeh.util.tornado
#
与Tornado相关的内部实用程序
bokeh.util.terminal
#
提供格式化终端输出的实用程序。
bokeh.util.version
#
为Bokeh库提供版本。
此模块使用versioneer来管理版本字符串。在开发过程中,versioneer将根据当前的git修订版本计算版本字符串。对于基于标签的打包版本,版本字符串硬编码在打包用于分发的文件中。
- __version__#
此已安装的Bokeh库的完整版本字符串
- 函数
- base_version
返回基本版本字符串,不附加任何“dev”、“rc”或本地构建信息。
- is_full_release
返回当前安装的版本是否为完整版本。
bokeh.util.warnings
#
提供Bokeh特定的警告子类。
这些子类的主要用途是强制默认情况下无条件地向用户显示它们。