メインコンテンツまでスキップ

入力バリデーター

このモジュールは、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

タスクのビーム幅。正の整数でなければなりません。

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'に予期しないセンターピースの構成がある場合(未実装)。