bokeh.core.has_props#

为具有声明性、类型化和可序列化属性的对象提供一个基类。

注意

这些类是实现 Bokeh 模型和属性系统的非常底层的机制的一部分。这些类或其方法不太可能适用于任何标准用法,也不太可能适用于任何没有直接开发 Bokeh 基础设施的人。

class HasProps(**properties: Any)[source]#

所有具有 Bokeh 属性的类类型的基类。

__init__(**properties: Any) None[source]#
apply_theme(property_values: dict[str, Any]) None[source]#

应用一组主题值,这些值将用于代替默认值,但不会覆盖应用程序设置的值。

传入的字典可以保留原样,并与其他实例共享以节省内存(因此调用者和 HasProps 实例都不应该修改它)。

参数:

property_values (dict) – 用于代替默认值的主题值

返回值:

None

clone(**overrides: Any) Self[source]#

复制 HasProps 对象。

这会创建原始模型的浅克隆,即任何可变容器或子模型都不会被复制。允许在克隆时覆盖特定属性。

classmethod dataspecs() dict[str, DataSpec][source]#

收集此类中所有 DataSpec 属性的名称。

此方法始终遍历类层次结构,并包括在任何父类中定义的属性。

返回值:

DataSpec 属性的名称

返回类型:

set[str]

classmethod descriptors() list[PropertyDescriptor[Any]][source]#

按定义顺序排列的属性描述符列表。

equals(other: HasProps) bool[source]#

模型的结构相等性。

参数:

other (HasProps) – 要比较的另一个实例

返回值:

如果属性在结构上相等,则为 True,否则为 False

classmethod lookup(name: str, *, raises: Literal[True] = True) PropertyDescriptor[Any][source]#
classmethod lookup(name: str, *, raises: Literal[False] = False) PropertyDescriptor[Any] | None

在类中查找 Bokeh 属性的 PropertyDescriptor,提供属性名称。

参数:
  • name (str) – 要搜索的属性的名称

  • raises (bool) – 如果缺少属性,是否引发异常或返回 None

返回值:

名为 name 的属性的描述符

返回类型:

PropertyDescriptor

classmethod properties(*, _with_props: Literal[False] = False) set[str][source]#
classmethod properties(*, _with_props: Literal[True] = True) dict[str, Property[Any]]

收集此类上属性的名称。

警告

在 Bokeh 的未来版本中,此方法将返回一个字典,将属性名称映射到属性对象。要使当前使用此方法的代码适应未来的变化,请将返回值包装在 list 中。

返回值:

属性名称

classmethod properties_with_refs() dict[str, Property[Any]][source]#

收集此类上所有具有引用的属性的名称。

此方法始终遍历类层次结构,并包括在任何父类中定义的属性。

返回值:

具有引用的属性的名称

返回类型:

set[str]

properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) dict[str, Any][source]#

收集一个将属性名称映射到其值的字典。

此方法始终遍历类层次结构,并包括在任何父类中定义的属性。

不可序列化的属性会被跳过,属性值采用“序列化”格式,这可能与您通常从属性中读取的值略有不同;此方法的目的是返回无损重建对象实例所需的信息。

参数:

include_defaults (bool, optional) – 是否包含自对象创建以来未显式设置的属性。 (默认: True)

返回值:

从属性名称到其值的映射

返回类型:

dict

query_properties_with_values(query: Callable[[PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) dict[str, Any][source]#

使用谓词查询 HasProps 实例的属性值。

参数:
  • query (callable) – 接受属性描述符并返回 True 或 False 的可调用对象

  • include_defaults (bool, optional) – 是否包含用户未显式设置的属性(默认: True)

返回值:

匹配属性的属性名称和值的映射

返回类型:

dict

set_from_json(name: str, value: Any, *, setter: Setter | None = None) None[source]#

从 JSON 中设置此对象上的属性值。

参数:
  • name (str) – 要设置的属性的名称

  • value (JSON-value) – 要设置为属性的值

  • setter (ClientSession or ServerSession or None, optional) –

    用于防止 Bokeh 应用程序的“回弹”更新。

    在 Bokeh 服务器应用程序的上下文中,传入的属性更新将用执行更新的会话进行注释。此值将传播到更新触发的任何后续更改通知。会话可以将事件设置程序与其自身进行比较,并抑制来自其自身的任何更新。

返回值:

None

themed_values() dict[str, Any] | None[source]#

获取任何主题提供的覆盖。

结果作为从属性名称到值的字典返回,或者如果主题没有覆盖此实例的任何值,则返回 None

返回值:

字典或 None

to_serializable(serializer: Serializer) ObjectRep[source]#

将此对象转换为可序列化表示形式。

unapply_theme() None[source]#

删除任何主题值并恢复默认值。

返回值:

None

update(**kwargs: Any) None[source]#

从给定的关键字参数更新对象的属性。

返回值:

None

示例

以下是等效的

from bokeh.models import Range1d

r = Range1d

# set properties individually:
r.start = 10
r.end = 20

# update properties together:
r.update(start=10, end=20)
class MetaHasProps(class_name: str, bases: tuple[type, ...], class_dict: dict[str, Any])[source]#

专门化 HasProps 类的构造。

此类是 HasProps元类,负责创建和添加 PropertyDescriptor 实例,这些实例将验证和序列化委托给 Property 属性。

property model_class_reverse_map: dict[str, type[HasProps]]#
class NonQualified[source]#

通过非限定名称解析此类。

class Qualified[source]#

通过完全限定名称解析此类。

abstract(cls: C) C[source]#

用于标记从 HasProps 派生的抽象基类的装饰器。