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) – 用于代替默认值的主题值

返回值:

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 (ClientSessionServerSessionNone, optional) –

    这用于防止对 Bokeh 应用程序的“回旋镖”更新。

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

返回值:

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

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

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

返回值:

字典或 None

to_serializable(serializer: Serializer) ObjectRep[source]#

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

unapply_theme() None[source]#

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

返回值:

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

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

返回值:

示例

以下是等效的

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派生的抽象基类。