跳到主要内容

_validator

Input Validator

该模块为 AlphaCube 应用定义了输入验证器。它包含一个 Pydantic Input 类,用于验证应用任务的输入数据。输入数据必须遵守特定的格式和验证规则。

验证规则:

  • format 属性必须是 'moves' 或 'stickers'。
  • 对于 'moves' 格式,scramble 属性必须由有效的转动步骤组成。
  • 对于 'stickers' 格式(未实现),可能会执行额外的验证。
  • beam_width 属性必须是正整数。
  • extra_depths 属性必须是非负整数。
备注

顺手度偏好信息是可选的,不会进行严格验证。

使用示例
input_data = {
'format': 'moves',
'scramble': "R U R' U'",
'beam_width': 256,
'extra_depths': 2,
'ergonomic_bias': None
}
validated_input = Input(**input_data)

Input

class Input(BaseModel)

AlphaCube 的输入验证器(和预处理器)。

format

输入数据的格式。必须是 'moves' 或 'stickers'。

scramble

指定格式的打乱数据。

beam_width

任务的束宽(beam width)。必须是正整数。

extra_depths

任务的额外深度。必须是非负整数。

ergonomic_bias

可选的顺手度偏好信息(不进行严格验证)。

validate_format

@validator("format")
@classmethod
def validate_format(cls, value: str) -> str

验证输入格式。

参数

  • value str - 要验证的格式值。

返回

  • str - 验证后的格式值。

抛出

  • ValueError - 如果格式不是 'moves' 或 'stickers'。

validate_beam_width

@validator("beam_width")
@classmethod
def validate_beam_width(cls, value)

验证束宽。

参数

  • value - 要验证的束宽值。

返回

  • int - 验证后的束宽值。

抛出

  • ValueError - 如果束宽不是正整数。

validate_extra_depths

@validator("extra_depths")
@classmethod
def validate_extra_depths(cls, value)

验证额外深度。

参数

  • value - 要验证的额外深度值。

返回

  • int - 验证后的额外深度值。

抛出

  • ValueError - 如果额外深度值为负数。

validate_scramble

@model_validator(mode="before")
@classmethod
def validate_scramble(cls, values)

根据所选格式验证和预处理打乱数据。

参数

  • values dict - 输入值。

返回

  • dict - 包含已验证打乱数据的输入值。

抛出

  • ValueError - 如果 'moves' 格式的 'scramble' 中存在无效的转动步骤。
  • ValueError - 如果 'stickers' 格式(未实现)的 'scramble' 中存在意外的中心块配置。