bokeh.core.properties

为了简化和自动化可用于描述情节和场景的模型的创建和使用,Bokeh提供了属性和属性混合的集合。属性类为大量有用类型的集合提供自动验证和序列化。Mixin和container类可以方便地向模型类批量添加属性。

为Bokeh模型提供属性类型

属性是可以在Bokeh模型上指定为类属性的对象,以提供自动序列化、验证和文档。

本文档分为以下几节:

概述

例如,在模块中定义了许多属性类型 Int 表示整数值, Seq 表示序列(如列表或元组等)。属性也可以组合: Seq(Float) 表示浮点值序列。

例如,下面定义了一个具有integer、string和list的模型 [浮动] 性能:

class SomeModel(Model):
    foo = Int
    bar = String(default="something")
    baz = List(Float, help="docs for baz prop")

如前所述,属性可以声明为属性类型,例如。 foo = Int ,在这种情况下,属性将自动在新模型对象上实例化。或者属性可以在类上实例化,并使用默认值和帮助字符串进行配置。

可以通过向初始值设定项指定关键字参数来初始化此类的属性:

m = SomeModel(foo=10, bar="a str", baz=[1,2,3,4])

但也可以通过设置实例的属性:

m.foo = 20

尝试将属性设置为错误类型的值将导致 ValueError 例外:

>>> m.foo = 2.3
Traceback (most recent call last):

  << traceback omitted >>

ValueError: expected a value of type Integral, got 2.3 of type float

具有属性的模型知道如何序列化自己,这一点BokehJS可以理解。此外,属性上提供的任何帮助字符串都可以通过中的Sphinx扩展轻松自动提取 bokeh.sphinxext 模块。

基本特性

class Angle(default=None, help=None, serialized=None, readonly=False)[源代码]

接受浮点角度值。

Angle 等于 Float 但在语义上更有意义的情况下提供。

参数
  • default (float or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

class Any(default=None, help=None, serialized=None, readonly=False)[源代码]

接受所有值。

这个 Any 属性不执行任何验证或转换。

参数
  • default (obj or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class AnyModel(HasProps):
...     prop = Any()
...

>>> m = AnyModel()

>>> m.prop = True

>>> m.prop = 10

>>> m.prop = 3.14

>>> m.prop = "foo"

>>> m.prop = [1, 2, 3]
class AnyRef(default=None, help=None, serialized=None, readonly=False)[源代码]

接受所有值并强制引用发现。

class Auto[源代码]

只接受字符串“auto”。

对于可以配置为“自动”行为的属性非常有用。

示例

此属性通常与 Either 财产。

>>> class AutoModel(HasProps):
...     prop = Either(Float, Auto)
...

>>> m = AutoModel()

>>> m.prop = 10.2

>>> m.prop = "auto"

>>> m.prop = "foo"      # ValueError !!

>>> m.prop = [1, 2, 3]  # ValueError !!
class Bool(default=None, help=None, serialized=None, readonly=False)[源代码]

接受布尔值。

参数
  • default (obj or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class BoolModel(HasProps):
...     prop = Bool(default=False)
...

>>> m = BoolModel()

>>> m.prop = True

>>> m.prop = False

>>> m.prop = 10  # ValueError !!
class Byte(default=0, help=None)[源代码]

接受整数字节值(0-255)。

示例

>>> class ByteModel(HasProps):
...     prop = Byte(default=0)
...

>>> m = ByteModel()

>>> m.prop = 255

>>> m.prop = 256  # ValueError !!

>>> m.prop = 10.3 # ValueError !!
class Color(default=None, help=None)[源代码]

以多种方式接受颜色值。

对于颜色,因为我们支持命名颜色和以“#”开头的十六进制值,所以当我们收到一个字符串值时,会有一些解释:如果该值是147个SVG命名的colors之一,或者它以“#”开头,那么它将被解释为一个值。

如果提供了3元组,则将其视为RGB(0..255)。如果提供了4元组,则将其视为RGBa(0..255),alpha是介于0和1之间的浮点。(这遵循HTML5画布API。)

示例

>>> class ColorModel(HasProps):
...     prop = Color()
...

>>> m = ColorModel()

>>> m.prop = "firebrick"

>>> m.prop = "#a240a2"

>>> m.prop = (100, 100, 255)

>>> m.prop = (100, 100, 255, 0.5)

>>> m.prop = "junk"              # ValueError !!

>>> m.prop = (100.2, 57.3, 10.2) # ValueError !!
class Complex(default=None, help=None, serialized=None, readonly=False)[源代码]

接受复杂浮点值。

参数
  • default (complex or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

class DashPattern(default=[], help=None)[源代码]

接受虚线规范。

表示描述虚线的模式。 DashPattern 可以用多种方式指定值:

  • 枚举:“实心”、“虚线”、“虚线”、“点线”、“点划线”、“虚线”

  • 中的一个元组或整数列表 HTML5 Canvas dash specification style . 请注意,如果整数列表的元素数为奇数,那么它将被复制,并且这个复制的列表将成为新的短划线列表。

若要指示短划线已关闭(实线),请指定空列表[]。

class Date(default=None, help=None, serialized=None, readonly=False)[源代码]

接受日期(但不接受日期时间)值。

class Datetime(default=None, help=None)[源代码]

接受日期时间值。

class Either(tp1, tp2, *type_params, **kwargs)[源代码]

根据其他属性类型的序列接受值。

例子:

>>> class EitherModel(HasProps):
...     prop = Either(Bool, Int, Auto)
...

>>> m = EitherModel()

>>> m.prop = True

>>> m.prop = 10

>>> m.prop = "auto"

>>> m.prop = 10.3   # ValueError !!

>>> m.prop = "foo"  # ValueError !!
class Enum(enum, *values, **kwargs)[源代码]

接受枚举中的值。

枚举中的第一个值用作默认值,除非 default 使用关键字参数。

bokeh.core.enums 更多信息。

class Float(default=None, help=None, serialized=None, readonly=False)[源代码]

接受浮点值。

参数
  • default (float or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class FloatModel(HasProps):
...     prop = Float()
...

>>> m = FloatModel()

>>> m.prop = 10

>>> m.prop = 10.3

>>> m.prop = "foo"  # ValueError !!
class FontSize(default=None, help=None, serialized=None, readonly=False)[源代码]
class Image(default=None, help=None, serialized=None, readonly=False)[源代码]

接受图像文件类型,例如PNG、JPEG、TIFF等。

此属性可以配置为:

  • 要加载的字符串文件名 PIL.Image.open

  • 一个RGB(A)NumPy数组将被转换为PNG

  • A PIL.Image.Image 对象

在所有情况下,图像数据都序列化为Base64编码的字符串。

class Instance(instance_type, default=None, help=None, readonly=False, serialized=True)[源代码]

接受的值是 HasProps .

参数

readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

class Int(default=None, help=None, serialized=None, readonly=False)[源代码]

接受带符号整数值。

参数
  • default (int or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class IntModel(HasProps):
...     prop = Int()
...

>>> m = IntModel()

>>> m.prop = 10

>>> m.prop = -200

>>> m.prop = 10.3  # ValueError !!
class Interval(interval_type, start, end, default=None, help=None)[源代码]

接受给定间隔内包含的数值。

参数
  • interval_type (numeric property) -- 范围的数字类型,例如。 IntFloat

  • start (number) -- 范围的最小允许值。值小于 start 将导致验证错误。

  • end (number) -- 范围的最大允许值。值大于 end 将导致验证错误。

示例

>>> class RangeModel(HasProps):
...     prop = Range(Float, 10, 20)
...

>>> m = RangeModel()

>>> m.prop = 10

>>> m.prop = 20

>>> m.prop = 15

>>> m.prop = 2     # ValueError !!

>>> m.prop = 22    # ValueError !!

>>> m.prop = "foo" # ValueError !!
class JSON(default=None, help=None, serialized=None, readonly=False)[源代码]

接受JSON字符串值。

该值由BokehJS作为 一串 包含JSON内容。i、 你必须使用 JSON.parse 将值解压为JavaScript哈希。

参数
  • default (string or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

class MarkerType(**kw)[源代码]
class MinMaxBounds(accept_datetime=False, default='auto', help=None)[源代码]

接受(min,max)边界元组以用于范围。

边界以元组的形式提供 (min, max) 所以不管你的范围是增加还是减少,第一项应该是范围的最小值,第二项应该是最大值。设置最小值>最大值将导致 ValueError .

将“边界”设置为“无”将允许您的绘图尽可能地平移/缩放。如果只希望约束打印的一端,可以将“最小”或“最大”设置为 None 例如 DataRange1d(bounds=(None, 12))

class NonNegativeInt(default=None, help=None, serialized=None, readonly=False)[源代码]

接受非负整数。

class Percent(default=None, help=None, serialized=None, readonly=False)[源代码]

接受浮点百分比值。

Percent 对于指定诸如alpha值和区段之类的内容,可能非常有用,并且在语义上有意义。

参数
  • default (float or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class PercentModel(HasProps):
...     prop = Percent()
...

>>> m = PercentModel()

>>> m.prop = 0.0

>>> m.prop = 0.2

>>> m.prop = 1.0

>>> m.prop = -2  # ValueError !!

>>> m.prop = 5   # ValueError !!
class PositiveInt(default=None, help=None, serialized=None, readonly=False)[源代码]

接受正整数。

class RGB(default=None, help=None, serialized=None, readonly=False)[源代码]

接受颜色.RGB价值观。

class Regex(regex, default=None, help=None)[源代码]

接受与给定正则表达式匹配的字符串。

参数
  • default (string or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class RegexModel(HasProps):
...     prop = Regex("foo[0-9]+bar")
...

>>> m = RegexModel()

>>> m.prop = "foo123bar"

>>> m.prop = "foo"      # ValueError !!

>>> m.prop = [1, 2, 3]  # ValueError !!
class Size(default=None, help=None, serialized=None, readonly=False)[源代码]

接受非负数值。

参数
  • default (float or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class SizeModel(HasProps):
...     prop = Size()
...

>>> m = SizeModel()

>>> m.prop = 0

>>> m.prop = 10e6

>>> m.prop = -10   # ValueError !!

>>> m.prop = "foo" # ValueError !!
class String(default=None, help=None, serialized=None, readonly=False)[源代码]

接受字符串值。

参数
  • default (string or None, optional) -- 从该属性创建的属性的默认值(默认值:无)

  • help (str or None, optional) -- 此属性的文档字符串。它将由 bokeh_prop 生成Spinx文档时的扩展。(默认值:无)

  • serialized (bool, optional) -- 从该属性创建的属性是否应包含在序列化中(默认值:True)

  • readonly (bool, optional) -- 从该属性创建的属性是否为只读。(默认值:False)

示例

>>> class StringModel(HasProps):
...     prop = String()
...

>>> m = StringModel()

>>> m.prop = "foo"

>>> m.prop = 10.3       # ValueError !!

>>> m.prop = [1, 2, 3]  # ValueError !!
class Struct(**fields)[源代码]

接受结构值。

class TimeDelta(default=datetime.timedelta(0), help=None)[源代码]

接受TimeDelta值。

容器属性

class Array(item_type, default=None, help=None)[源代码]

接受NumPy数组值。

class ColumnData(keys_type, values_type, default={}, help=None)[源代码]

接受一个适合作为 data 的属性 ColumnDataSource .

这门课是 Dict 它可以有效地处理NumPy数组列的编码。

class Dict(keys_type, values_type, default={}, help=None)[源代码]

接受Python dict值。

如果传入默认值,则每次新使用此属性时都将使用该默认值的浅副本。

class List(item_type, default=[], help=None)[源代码]

接受Python列表值。

class RelativeDelta(default={}, help=None)[源代码]

接受时间增量值的RelativeDelta dicts。

class Seq(item_type, default=None, help=None)[源代码]

接受非字符串排序的值序列,例如list、tuple、array。

class Tuple(tp1, tp2, *type_params, **kwargs)[源代码]

接受Python元组值。

DataSpec属性

class AngleSpec(default=None, units_default='rad', help=None)[源代码]

A DataSpec 属性,该属性接受数值固定值,并提供关联的units属性来存储角度单位。

单位的可接受值为 "rad""deg" .

class ColorSpec(default, help=None, key_type=<bokeh.core.property.enum.Enum object>)[源代码]

A DataSpec 接受的属性 Color 固定值。

这个 ColorSpec 属性尝试首先将字符串值解释为颜色。否则,字符串值将被解释为字段名。例如:

m.color = "#a4225f"   # value (hex color string)

m.color = "firebrick" # value (named CSS color string)

m.color = "foo"       # field (named "foo")

可以直接使用dict格式或使用 field() 功能:

m.color = { "field": "firebrick" } # field (named "firebrick")

m.color = field("firebrick")       # field (named "firebrick")
class DataDistanceSpec(default=None, help=None)[源代码]

A DataSpec 属性,该属性接受数据空间距离的数值固定值,并提供报告的关联单位属性 "data" 作为单位。

class DataSpec(key_type, value_type, default, help=None)[源代码]

属性的基类,这些属性接受固定值或引用 ColumnDataSource .

许多Bokeh模型都有一些属性,用户可能希望将这些属性设置为单个固定值,或者让属性从数据源中的某一列获取值。作为一个具体的例子,考虑一个带有 x 位置的属性。我们可能需要设置所有被绘制的字形具有相同的位置,比如说 x=10 . 只需能够写下:

glyph.x = 10

或者,根据数据源的“压力”列,可能绘制的每个字形应该具有不同的位置。在这种情况下,我们希望能够写下:

glyph.x = "pressure"

博克 DataSpec 以及子类的一致性。最终,全部 DataSpec 属性解析为字典值,使用 "value" 钥匙,或 "field" 关键点,取决于它的设置方式。

例如:

glyph.x = 10          # => { 'value': 10 }

glyph.x = "pressure"  # => { 'field': 'pressure' }

当浏览器接收到这些底层字典值时,BokehJS知道如何解释它们并采取正确的预期操作(例如,在 x=10 ,或使用 x “压力”列的坐标)。这样,从用户的角度来看,这两个用例都可以用python轻松地表达,而不必处理任何不同的东西。

值得注意的是 DataSpec 也可以使用格式正确的字典值直接设置属性:

glyph.x = { 'value': 10 }         # same as glyph.x = 10

glyph.x = { 'field': 'pressure' } # same as glyph.x = "pressure"

Setting the property directly as a dict can be useful in certain situations. For instance some DataSpec subclasses also add a "units" key to the dictionary. This key is often set automatically, but the dictionary format provides a direct mechanism to override as necessary. Additionally, DataSpec can have a "transform" key, that specifies a client-side transform that should be applied to any fixed or field values before they are uses. As an example, you might want to apply a Jitter transform to the x values:

glyph.x = { 'value': 10, 'transform': Jitter(width=0.4) }

注意 DataSpec 通常单独使用是没有用的。通常,模型将使用以下子类之一定义属性,例如 NumberSpecColorSpec . 例如,一个Bokeh模型 xycolor 可以自动处理固定值或列的属性可能如下所示:

class SomeModel(Model):

    x = NumberSpec(default=0, help="docs for x")

    y = NumberSpec(default=0, help="docs for y")

    color = ColorSpec(help="docs for color") # defaults to None
class DistanceSpec(default=None, units_default='data', help=None)[源代码]

A DataSpec 属性,该属性接受引用 ColumnDataSource ,还提供了一个关联的单位属性来存储单位信息。单位的可接受值为 "screen""data" .

class FontSizeSpec(default, help=None, key_type=<bokeh.core.property.enum.Enum object>)[源代码]

A DataSpec 接受字体大小固定值的属性。

这个 FontSizeSpec 属性尝试首先将字符串值解释为字体大小(即有效的CSS长度值)。否则,字符串值将被解释为字段名。例如:

m.font_size = "13px"  # value

m.font_size = "1.5em" # value

m.font_size = "foo"   # field

所有有效CSS长度单位的完整列表可在此处找到:

https://drafts.csswg.org/css values/#长度

class MarkerSpec(default, help=None, key_type=<bokeh.core.property.enum.Enum object>)[源代码]

A DataSpec 属性,该属性接受标记类型为固定值。

这个 MarkerSpec 属性尝试首先将字符串值解释为标记类型。否则,字符串值将被解释为字段名。例如:

m.font_size = "circle" # value

m.font_size = "square" # value

m.font_size = "foo"    # field
class NumberSpec(default=None, help=None, key_type=<bokeh.core.property.enum.Enum object>, accept_datetime=True, accept_timedelta=True)[源代码]

A DataSpec 属性,该属性接受数值和日期时间固定值。

默认情况下,date和datetime值会立即转换为epoch后的毫秒数。可以通过传递来禁用对日期时间值的处理 accept_datetime=False .

默认情况下,timedelta值会立即转换为绝对毫秒。可以通过传递禁用对timedelta值的处理 accept_timedelta=False

Timedelta值被解释为绝对毫秒。

m.location = 10.3  # value

m.location = "foo" # field
class PropertyUnitsSpec(default, units_type, units_default, help=None)[源代码]

A DataSpec 属性,该属性接受数值固定值,并提供关联的units属性来存储单位信息。

class ScreenDistanceSpec(default=None, help=None)[源代码]

A DataSpec 属性,该属性接受屏幕空间距离的数值固定值,并提供报告的关联单位属性 "screen" 作为单位。

class StringSpec(default, help=None, key_type=<bokeh.core.property.enum.Enum object>)[源代码]

A DataSpec 接受字符串固定值的属性。

因为可接受的固定值和字段名都是字符串,所以有必要显式地消除这些可能性的歧义。默认情况下,字符串值被解释为字段,但是 value() 应将函数解释为可以指定的字符串:

m.title = value("foo") # value

m.title = "foo"        # field
class UnitsSpec(default, units_type, units_default, help=None)[源代码]

A DataSpec 属性,该属性接受数值固定值,并序列化关联的单位值。

帮手

expr(expression, transform=None)[源代码]

方便函数显式返回Bokeh的“expr”规范 DataSpec 财产。

参数
  • expression (Expression) -- 的计算表达式 DataSpec 财产。

  • transform (Transform, optional) -- 要应用的变换(默认值:无)

返回

{ "expr": expression }

返回类型

dict

注解

为了完整起见,包含此函数。属性规范的字符串值默认解释为字段名。

field(name, transform=None)[源代码]

方便函数显式返回Bokeh的“field”规范 DataSpec 财产。

参数
  • name (str) -- 要引用的数据源字段的名称 DataSpec 财产。

  • transform (Transform, optional) -- 要应用的变换(默认值:无)

返回

{ "field": name }

返回类型

dict

注解

为了完整起见,包含此函数。属性规范的字符串值默认解释为字段名。

value(val, transform=None)[源代码]

方便函数显式返回Bokeh的“value”规范 DataSpec 财产。

参数
  • val (any) -- 为指定的固定值 DataSpec 财产。

  • transform (Transform, optional) -- 要应用的变换(默认值:无)

返回

{ "value": name }

返回类型

dict

注解

属性规范的字符串值默认解释为字段名。当您希望使用文本属性指定固定值时,此函数尤其有用。

示例

# The following will take text values to render from a data source
# column "text_column", but use a fixed value "16px" for font size
p.text("x", "y", text="text_column",
       text_font_size=value("16px"), source=source)

特殊属性

class Include(delegate, help='', use_prefix=True)[源代码]

在Bokeh模型中包含“mix-in”属性集合。

bokeh.core.property_mixins 了解更多详细信息。

class Override(**kwargs)[源代码]

重写派生模型中Bokeh属性的属性。

当Bokeh模型的子类化时,可能需要更改属性本身的一些属性,而不是基类上的属性。这可以使用 Override 班级。

目前, Override 只能用于重写 default 属性的值。

关键字参数

default (obj) -- 子类上此属性的默认值

示例

考虑以下类定义:

from bokeh.model import Model
from bokeh.properties import Int, Override

class Parent(Model):
    foo = Int(default=10)

class Child(Parent):
    foo = Override(default=20)

父类具有整数属性 foo 默认值为10。子类使用以下代码:

foo = Override(default=20)

指定 foo 子类实例的属性应为20:

>>> p = Parent()
>>> p.foo
10

>>> c = Child()
>>> c.foo
20

仅验证属性

class PandasDataFrame(default=None, help=None, serialized=None, readonly=False)[源代码]

接受Pandas DataFrame值。

此属性仅用于支持类型验证,例如“accepts”子句。直接添加到boh中是不有用的。

class PandasGroupBy(default=None, help=None, serialized=None, readonly=False)[源代码]

接受Pandas DataFrame值。

此属性仅用于支持类型验证,例如“accepts”子句。直接添加到boh中是不有用的。

验证控制

默认情况下,Bokeh属性对值执行类型验证。这有助于确保Python和JavaScript之间交换的任何数据的一致性,并在用户试图设置错误类型的值时向其提供详细和即时的反馈。但是,这些类型检查会产生一些开销。在某些情况下,为了提高性能,可能需要在特定位置关闭验证,甚至完全关闭验证。以下API可用于控制何时进行类型验证。

class validate(value)[源代码]

bokeh特性的控制验证

它可以用作上下文管理器,也可以用作普通的可调用文件

参数

value (bool) -- 是否应该进行验证

示例

with validate(False):  # do no validate while within this block
    pass

validate(False)  # don't validate ever

参见

validation_on() :检查验证状态

without_property_validation() :函数装饰器

without_property_validation(input_function)[源代码]

在更新回调期间关闭属性验证

示例

@without_property_validation
def update(attr, old, new):
    # do things without validation

参见

validate :用于更细粒度控制的上下文管理器