gluonts.core.component 模块#
- class gluonts.core.component.BaseValidatedInitializerModel[source]#
基类:
pydantic.v1.main.BaseModel
带有
validated()
初始化器的组件的基础 Pydantic 模型。另请参阅
validated
使用参数验证逻辑装饰初始化器方法。
- class Config[source]#
基类:
pydantic.v1.config.BaseConfig
所有
validated()
初始化器继承的 Pydantic 模型的 Config。允许在初始化器参数中使用任意类型注解。
- arbitrary_types_allowed: bool = True#
- gluonts.core.component.equals(this: Any, that: Any) bool [source]#
两个任意类型对象之间的结构相等性检查。
默认情况下,此函数委托给
equals_default_impl()
。此外,该函数根据第一个参数的类型分派到专门的实现,因此对于某些类型,上述条件可能更严格。
- 参数
this – 要比较的对象。
that – 要比较的对象。
- 返回值
一个布尔值,指示
this
和that
是否结构相等。- 返回类型
bool
另请参阅
equals_default_impl
两个任意类型对象之间的结构相等性检查的默认语义。
equals_representable_block
Gluon
HybridBlock
输入参数的特殊化。equals_parameter_dict
Gluon
ParameterDict
输入参数的特殊化。
- gluonts.core.component.equals_default_impl(this: Any, that: Any) bool [source]#
两个任意类型对象之间的结构相等性检查的默认语义。
当且仅当满足以下条件时,两个对象
this
和that
被定义为结构相等:它们的类型匹配。
如果它们的初始化器是
validated()
,则它们的初始化器参数成对结构相等。如果它们的初始化器不是
validated()
,则它们是引用相等(即this == that
)。
- 参数
this – 要比较的对象。
that – 要比较的对象。
- 返回值
一个布尔值,指示
this
和that
是否结构相等。- 返回类型
bool
- gluonts.core.component.from_hyperparameters(cls: Type[gluonts.core.component.A], **hyperparameters) gluonts.core.component.A [source]#
使用
validated()
初始化器反射性地创建类实例。- 参数
cls – 要实例化的组件的类型
A
。hyperparameters – 一个键值对字典,用作组件初始化器的参数。
- 返回值
给定类的实例。
- 返回类型
A
- 引发
GluonTSHyperparametersError – 包装了验证初始化器参数时抛出的
ValidationError
。
- gluonts.core.component.skip_encoding(v: Any) bool [source]#
判断输入值 v 是否应使用
encode()
函数编码。这由
validated()
使用,以确定在记录初始化器参数以便后续序列化时应跳过哪些值。这是回退实现,可以通过注册处理函数来为特定类型进行特殊化。
- gluonts.core.component.validated(base_model=None)[source]#
使用带类型参数的验证和自动转换逻辑装饰
__init__
方法。>>> class ComplexNumber: ... @validated() ... def __init__(self, x: float = 0.0, y: float = 0.0) -> None: ... self.x = x ... self.y = y
带有装饰初始化器的类可以使用其他类型的参数进行实例化(例如,类型为
str
的参数y
)。装饰器处理类型转换逻辑。>>> c = ComplexNumber(y='42') >>> (c.x, c.y) (0.0, 42.0)
如果绑定的参数无法转换,装饰器会抛出错误。
>>> c = ComplexNumber(y=None) Traceback (most recent call last): ... pydantic.v1.error_wrappers.ValidationError: 1 validation error for ComplexNumberModel y none is not an allowed value (type=type_error.none.not_allowed)
在内部,装饰器将所有验证和转换逻辑委托给 a Pydantic model,可以通过装饰初始化器的
Model
属性访问该模型。>>> ComplexNumber.__init__.Model <class 'pydantic.v1.main.ComplexNumberModel'>
Pydantic 模型是根据装饰初始化器的参数名称和类型自动合成的。在
ComplexNumber
示例中,合成的 Pydantic 模型对应于以下定义。>>> class ComplexNumberModel(BaseValidatedInitializerModel): ... x: float = 0.0 ... y: float = 0.0
客户端可以选择使用
base_model
装饰器参数自定义合成 Pydantic 模型的基类。默认行为使用BaseValidatedInitializerModel
及其 model config。另请参阅
BaseValidatedInitializerModel
所有合成 Pydantic 模型的默认基类。