bokeh.core.property.bases#

为 Bokeh 属性系统提供基类。

注意

这些类构成了实现 Bokeh 模型和属性系统的非常底层的机制的一部分。这些类或其方法不太可能适用于任何标准用法,或者不适用于直接在 Bokeh 自身基础设施上进行开发的任何人。

class ContainerProperty(*type_params: type[Property[T]] | Property[T], default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None)[source]#

容器类类型属性的基类。

class PrimitiveProperty(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None)[source]#

简单属性类型的基类。

子类应定义一个类属性 _underlying_type,该属性是属性可接受类型值的元组。

示例

一个简单的 Float 属性版本可能如下所示

class Float(PrimitiveProperty):
    _underlying_type = (numbers.Real,)
validate(value: Any, detail: bool = True) None[source]#

确定我们是否可以从该值设置此属性。

验证发生在 transform() 之前

参数:
  • value (obj) – 要针对此属性类型验证的值

  • detail (bool, options) –

    是否构造详细的异常

    生成详细的类型验证错误消息可能很耗费资源。当执行不会将异常传递给用户的内部类型检查时,可以通过将此值设置为 False 来跳过这些消息(默认值:True)

返回:

None

引发:

ValueError,如果该值对于此属性类型无效

class Property(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None)[source]#

Bokeh 属性实例的基类,可以添加到 Bokeh 模型中。

参数:
  • default (obj, 可选) – 从此属性创建的属性要具有的默认值。

  • help (strNone, 可选) – 此属性的文档字符串。在生成 Spinx 文档时,它将自动被 bokeh_prop 扩展使用。(默认值:None)

__call__(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None) Property[T][source]#

克隆此属性并允许覆盖 defaulthelp

__eq__(other: object) bool[source]#

返回 self==value。

__init__(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None) None[source]#
__repr__() str[source]#

返回 repr(self)。

__str__() str[source]#

返回 str(self)。

accepts(tp: type[Property[Any]] | Property[Any], converter: Callable[[Any], T]) Property[T][source]#

声明其他类型可以转换为此属性类型。

参数:
  • tp (Property) – 可以自动转换为此属性类型的类型。

  • converter (callable) – 接受 value 以执行值到此属性类型转换的函数。

返回:

self

asserts(fn: Callable[[HasProps, T], bool], msg_or_fn: str | Callable[[HasProps, str, T], None]) Property[T][source]#

断言准备好的值满足给定的条件。

断言旨在强制执行超出简单值类型验证的条件。例如,此方法可用于断言 ColumnDataSource 的列始终共同具有相同的长度。

参数:
  • fn (callable) – 接受 (obj, value) 的函数,如果值通过断言,则返回 True,否则返回 False。

  • msg_or_fn (strcallable) – 如果断言失败,则打印的消息;或者,如果断言失败,则调用的接受 (obj, name, value) 的函数。

返回:

self

is_valid(value: Any) bool[source]#

值是否通过验证

参数:

value (obj) – 要针对此属性类型验证的值

返回:

如果有效,则为 True,否则为 False

make_descriptors(name: str) list[PropertyDescriptor[T]][source]#

返回要安装在类上的 PropertyDescriptor 实例列表,以便将属性访问委托给此属性。

参数:

name (str) – 这些描述符所属的属性的名称

返回:

list[PropertyDescriptor]

返回的描述符由 MetaHasProps 元类收集,并在类创建期间添加到 HasProps 子类。

matches(new: T, old: T) bool[source]#

两个参数是否匹配值。

如果 newold 中的任何一个是 NumPy 数组或 Pandas Series 或 Index,则 np.array_equal 的结果将确定值是否匹配。

否则,将返回标准 Python 相等性的结果。

返回:

如果 new 和 old 匹配,则为 True,否则为 False

themed_default(cls: type[HasProps], name: str, theme_overrides: dict[str, Any] | None, *, no_eval: bool = False) T[source]#

默认值,通过 prepare_value() 和主题覆盖进行转换。

transform(value: Any) T[source]#

将值更改为此属性的规范格式。

参数:

value (obj) – 要应用转换的值。

返回:

转换后的值

返回类型:

obj

validate(value: Any, detail: bool = True) None[source]#

确定我们是否可以从该值设置此属性。

验证发生在 transform() 之前

参数:
  • value (obj) – 要针对此属性类型验证的值

  • detail (bool, options) –

    是否构造详细的异常

    生成详细的类型验证错误消息可能很耗费资源。当执行不会将异常传递给用户的内部类型检查时,可以通过将此值设置为 False 来跳过这些消息(默认值:True)

返回:

None

引发:

ValueError,如果该值对于此属性类型无效

wrap(value: T) T[source]#

一些属性类型需要将其值包装在特殊的容器中,等等。

__hash__ = None#
property readonly: bool#

此属性是否为只读。

只读属性只能由客户端(即浏览器中的 BokehJS)修改。

property serialized: bool#

对象序列化时是否应序列化此属性。

例如,对于“虚拟”或“便捷”属性,如果它复制了其他属性中已有的信息,则此项应为 False。

validation_on() bool[source]#

检查属性验证当前是否处于活动状态

返回:

bool