_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.
Az ergonomikus torzításra vonatkozó információ opcionális, és nincs szigorúan validálva.
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).