入力バリデーター
このモジュールは、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'に予期しないセンターピースの構成がある場合(未実装)。