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,)
- class Property(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None)[source]#
Bokeh 模型可以添加的 Bokeh 属性实例的基本类。
- 参数:
default (obj, 可选) – 从此属性创建的属性的默认值。
help (str 或 None, 可选) – 此属性的文档字符串。在生成 Spinx 文档时,bokeh_prop 扩展将自动使用它。(默认值:None)
- __call__(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None) Property[T] [source]#
克隆此属性并允许覆盖
default
和help
。
- __init__(*, default: T | UndefinedType | IntrinsicType = Intrinsic, help: str | None = None) None [source]#
- accepts(tp: type[Property[Any]] | Property[Any], converter: Callable[[Any], T]) Property[T] [source]#
声明其他类型可以转换为此属性类型。
- 参数:
tp (Property) – 可以自动转换为此属性类型的类型。
converter (可调用对象) – 一个接受
value
的函数,用于将值转换为此属性类型。
- 返回值:
self
- asserts(fn: Callable[[HasProps, T], bool], msg_or_fn: str | Callable[[HasProps, str, T], None]) Property[T] [source]#
断言准备好的值满足给定的条件。
断言旨在强制执行超出简单值类型验证的条件。例如,此方法可用于断言
ColumnDataSource
的所有列始终都具有相同的长度。- 参数:
fn (可调用对象) – 一个接受
(obj, value)
的函数,如果值通过断言则返回True,否则返回False。msg_or_fn (str 或 可调用对象) – 断言失败时要打印的消息,或一个接受
(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]#
两个参数的值是否匹配。
如果
new
或old
是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()和主题覆盖转换。
- validate(value: Any, detail: bool = True) None [source]#
确定我们是否可以从此值设置此属性。
验证发生在 transform() 之前
- 参数:
value (obj) – 要针对此属性类型验证的值
detail (bool, 选项) –
是否构建详细的异常
生成详细的类型验证错误消息可能很昂贵。在内部进行不会将异常传递给用户的类型检查时,可以通过将此值设置为 False 来跳过这些消息(默认值:True)
- 返回值:
无
- 引发:
如果该值对于此属性类型无效,则为 ValueError –
- __hash__ = None#