bokeh.core.validation

验证模块提供了对整个Bokeh模型集合执行完整性检查的功能。

要创建Bokeh可视化,中心任务是从|博克模型|到表示应该在客户端中创建的场景的图形中。有可能做到这一点,直接使用模型对象。然而,为了简化这个过程,Bokeh提供了更高级的接口,比如|博克。绘图|对于用户。

这些接口自动执行常见的“组装”步骤,以确保以一致、可预测的方式创建Bokeh对象图。然而,不管使用什么接口,都有可能以不完整的方式或在某些方面没有意义的方式将Bokeh模型组合在一起。

为了帮助诊断潜在的问题,Bokeh在输出可视化显示时执行验证步骤。此模块包含错误和警告代码以及用于定义验证检查的助手函数。

警告的一个用例是,当用户意外地做了一些他们不想做的事情时,大声地把他们指向正确的方向——例如,空的布局就是这样。由于警告不一定表示误用,所以它们是可配置的。要使警告静音,请使用提供的静音功能。

>>> from bokeh.core.validation import silence
>>> from bokeh.core.validation.warnings import EMPTY_LAYOUT
>>> silence(EMPTY_LAYOUT, True)

错误代码

它们定义了Bokeh验证检查的标准错误代码和消息。

1001 (BAD_COLUMN_NAME)

glyph的属性设置为与中的任何列都不对应的字段名 GlyphRenderer 的数据源。

1002 (MISSING_GLYPH)

A GlyphRenderer 未配置字形。

1003 (NO_SOURCE_FOR_GLYPH)

A GlyphRenderer 没有配置数据源。

1004 (REQUIRED_RANGE)

A Plot 缺少一个或多个必需的默认范围(将导致空白绘图)。

1005 (MISSING_GOOGLE_API_KEY)

googlemapsapi现在需要一个API密钥才能使用。看到了吗https://developers.google.com/maps/documentation/javascript/get-api-key有关如何获取自己的更多信息,请使用 api_key 属性。

1006 (NON_MATCHING_DATA_SOURCES_ON_LEGEND_ITEM_RENDERERS)

上的所有数据源 LegendItem.renderers 必须匹配时间LegendItem.label是类型字段。

1007 (MISSING_MERCATOR_DIMENSION)

MercatorTickerMercatorTickFormatter 模特必须有 dimension 属性设置为 'lat''lon' .

1008 (REQUIRED_SCALE)

A Scale on缺少一个或多个必需的默认比例(将导致空白打印)。

1009 (INCOMPATIBLE_SCALE_AND_RANGE)

A Scale 类型与同一打印维度上的一个或多个范围不兼容(将导致空白打印)。

1010 (CDSVIEW_SOURCE_DOESNT_MATCH)

A GlyphRenderer 有一个 CDSView 其来源与 GlyphRenderer 的数据源。

1011 (MALFORMED_GRAPH_SOURCE)

这个 GraphSource 配置不正确。

1012 (INCOMPATIBLE_MAP_RANGE_TYPE)

地图绘图只能支持 Range1d 类型,而不是数据范围。

1013 (INCOMPATIBLE_POINT_DRAW_RENDERER)

这个 PointDrawTool 渲染器只能引用 XYGlyph 模型。

1014 (INCOMPATIBLE_BOX_EDIT_RENDERER)

这个 BoxEditTool 渲染器只能引用 Rect 字形模型。

1015 (INCOMPATIBLE_POLY_DRAW_RENDERER)

这个 PolyDrawTool 渲染器只能引用 MultiLinePatches 字形模型。

1016 (INCOMPATIBLE_POLY_EDIT_RENDERER)

这个 PolyEditTool 渲染器只能引用 MultiLinePatches 字形模型。

1017 (INCOMPATIBLE_POLY_EDIT_VERTEX_RENDERER)

这个 PolyEditTool 顶点渲染器只能引用 XYGlyph 模型。

1018 (NO_RANGE_TOOL_RANGES)

这个 RangeTool 必须至少有一个 x_rangey_range 配置

1019 (DUPLICATE_FACTORS)

FactorRange 必须为轴指定唯一的分类因子列表。

1020 (BAD_EXTRA_RANGE_NAME)

额外的范围名称配置为与任何范围都不对应的名称。

1021 (EQUAL_SLIDER_START_END)

noUiSlider 大多数都有一个不一样的开始和结束。

1022 (MIN_PREFERRED_MAX_WIDTH)

预期最小宽度<=宽度<=最大宽度

1023 (MIN_PREFERRED_MAX_HEIGHT)

预期最小高度<=高度<=最大高度

1024 (CDSVIEW_FILTERS_WITH_CONNECTED)

CDSView 过滤器与具有连接拓扑(如线或面片)的图示符不兼容。

1025 (INCOMPATIBLE_LINE_EDIT_RENDERER)

这个 LineEditTool 渲染器只能引用 MultiLineLine 字形模型。

1026 (INCOMPATIBLE_LINE_EDIT_INTERSECTION_RENDERER)

这个 LineEditTool 交叉路口仅可参考 LineGlyph 模型。

1027 (REPEATED_LAYOUT_CHILD)

同一个模型不能在布局中多次使用。

9999 (外景)

指示自定义错误检查失败。

警告代码

这些定义了Bokeh验证检查的标准警告代码和消息。

1000 (MISSING_RENDERERS)

A Plot 对象没有配置渲染器(将导致空白打印)。

1002 (EMPTY_LAYOUT)

布局模型没有子级(将导致布局为空)。

1004 (BOTH_CHILD_AND_ROOT)

每个组件只能在一个地方呈现,不能既是根又是布局。

9999 (外景)

指示自定义警告检查失败。

帮助程序函数

这些helper函数可用于对Bokeh模型集合执行完整性检查,或将模型上的方法标记为警告或错误检查。

check_integrity(models)[源代码]

对Bokeh模型集合应用验证和完整性检查。

参数

models (seq[Model]) -- 要测试的模型集合

返回

没有

此函数将针对检测到的所有错误或警告条件发出日志警告和错误消息。例如,没有任何子级的布局将触发警告:

>>> empty_row = Row

>>> check_integrity([empty_row])
W-1002 (EMPTY_LAYOUT): Layout has no children: Row(id='2404a029-c69b-4e30-9b7d-4b7b6cdaad5b', ...)
silence(warning: int, silence: bool = True) → Set[int][源代码]

对所有Bokeh型号的特别警告保持沉默。

参数
  • warning (Warning) -- 博克警告安静

  • silence (bool) -- 是否停止警告

返回

包含所有静音警告的集合

此函数用于添加或删除运行时引用的一组消音器的警告 check_integrity . 如果在消音器上加了一个警告-那么它永远不会升起。

>>> from bokeh.core.validation.warnings import EMPTY_LAYOUT
>>> bokeh.core.validation.silence(EMPTY_LAYOUT, True)
{1002}

若要重新启用警告,请使用相同的方法,但将silence参数设置为false

>>> bokeh.core.validation.silence(EMPTY_LAYOUT, False)
set()
error(code_or_name)[源代码]

Decorator为Bokeh错误条件标记验证器方法

参数

code_or_name (int or str) -- 代码来自 bokeh.validation.errors 或自定义检查的字符串标签

返回

Bokeh模型方法的装饰器

返回类型

callable

修饰的函数的名称应以开头 _check ,并在检测到错误条件时返回字符串消息,以及 None 如果没有检测到不良情况。

实例:

第一个示例使用数字代码表示中提供的标准错误 bokeh.validation.errors . 这种用法主要是Bokeh核心开发人员感兴趣的。

from bokeh.validation.errors import REQUIRED_RANGES

@error(REQUIRED_RANGES)
def _check_no_glyph_renderers(self):
    if bad_condition: return "message"

第二个例子展示了如何通过向装饰器传递任意字符串标签来实现自定义警告检查。这种用法主要是任何用自己的定制模型扩展Bokeh的人感兴趣的。

@error("MY_CUSTOM_WARNING")
def _check_my_custom_warning(self):
    if bad_condition: return "message"
warning(code_or_name)[源代码]

Decorator为Bokeh错误条件标记验证器方法

参数

code_or_name (int or str) -- 代码来自 bokeh.validation.errors 或自定义检查的字符串标签

返回

Bokeh模型方法的装饰器

返回类型

callable

修饰的函数的名称应以开头 _check ,并在检测到错误条件时返回字符串消息,以及 None 如果没有检测到不良情况。

实例:

第一个示例使用数字代码表示中提供的标准警告 bokeh.validation.warnings . 这种用法主要是Bokeh核心开发人员感兴趣的。

from bokeh.validation.warnings import MISSING_RENDERERS

@warning(MISSING_RENDERERS)
def _check_no_glyph_renderers(self):
    if bad_condition: return "message"

第二个例子展示了如何通过向装饰器传递任意字符串标签来实现自定义警告检查。这种用法主要是任何用自己的定制模型扩展Bokeh的人感兴趣的。

@warning("MY_CUSTOM_WARNING")
def _check_my_custom_warning(self):
    if bad_condition: return "message"