Ugrás a fő tartalomhoz

_validator

Bemeneti Validátor

Ez a modul definiálja az AlphaCube alkalmazás bemeneti validátorát. Tartalmaz egy Pydantic Input osztályt, amely validálja az alkalmazás feladatainak bemeneti adatait. A bemeneti adatoknak meg kell felelniük bizonyos formátum- és validálási szabályoknak.

Validálási szabályok:

  • A format attribútumnak 'moves' vagy 'stickers' kell lennie.
  • A 'moves' formátum esetén a scramble attribútumnak érvényes mozdulatokból kell állnia.
  • A 'stickers' formátum esetén (nincs implementálva) további validáció végezhető.
  • A beam_width attribútumnak pozitív egész számnak kell lennie.
  • Az extra_depths attribútumnak nem negatív egész számnak kell lennie.
megjegyzés

Az ergonomikus torzításra vonatkozó információ opcionális, és nincs szigorúan validálva.

Példa a használatra
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)

Bemeneti validátor (és előfeldolgozó) az AlphaCube-hoz.

format

A bemeneti adatok formátuma. 'moves' vagy 'stickers' kell lennie.

scramble

A keverés adatai a megadott formátumban.

beam_width

A sugárszélesség a feladathoz. Pozitív egész számnak kell lennie.

extra_depths

Az extra mélységek száma a feladathoz. Nem negatív egész számnak kell lennie.

ergonomic_bias

Opcionális ergonomikus torzítási információ (nincs szigorúan validálva).

validate_format

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

A bemeneti formátum validálása.

Argumentumok:

  • value str - A validálandó formátumérték.

Visszatérési érték:

  • str - A validált formátumérték.

Kivételek:

  • ValueError - Ha a formátum nem 'moves' vagy 'stickers'.

validate_beam_width

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

A sugárszélesség validálása.

Argumentumok:

  • value - A validálandó sugárszélesség érték.

Visszatérési érték:

  • int - A validált sugárszélesség érték.

Kivételek:

  • ValueError - Ha a sugárszélesség nem pozitív egész szám.

validate_extra_depths

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

Az extra mélységek validálása.

Argumentumok:

  • value - A validálandó extra mélységek értéke.

Visszatérési érték:

  • int - A validált extra mélységek értéke.

Kivételek:

  • ValueError - Ha az extra mélységek értéke negatív.

validate_scramble

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

A keverési adatok validálása és előfeldolgozása a választott formátum alapján.

Argumentumok:

  • values dict - A bemeneti értékek.

Visszatérési érték:

  • dict - A bemeneti értékek a validált keverési adatokkal.

Kivételek:

  • ValueError - Ha érvénytelen mozdulatok vannak a 'scramble'-ben a 'moves' formátum esetén.
  • ValueError - Ha váratlan középső elem konfiguráció van a 'scramble'-ben a 'stickers' formátum esetén (nincs implementálva).