Zum Hauptinhalt springen

Input-Validator

Dieses Modul definiert den Input-Validator für die AlphaCube-Anwendung. Es enthält eine Pydantic-Klasse Input, die Eingabedaten für die Aufgaben der Anwendung validiert. Die Eingabedaten müssen bestimmten Format- und Validierungsregeln entsprechen.

Validierungsregeln:

  • Das Attribut format muss entweder 'moves' oder 'stickers' sein.
  • Für das Format 'moves' muss das Attribut scramble aus gültigen Zügen bestehen.
  • Für das Format 'stickers' (nicht implementiert) können zusätzliche Validierungen durchgeführt werden.
  • Das Attribut beam_width muss eine positive ganze Zahl sein.
  • Das Attribut extra_depths muss eine nicht-negative ganze Zahl sein.
note

Die Informationen zur ergonomischen Verzerrung sind optional und werden nicht streng validiert.

Beispielverwendung
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)

Input-Validator (und Präprozessor) für AlphaCube.

format

Das Format der Eingabedaten. Muss entweder 'moves' oder 'stickers' sein.

scramble

Die Scramble-Daten im angegebenen Format.

beam_width

Die Beam-Breite für die Aufgabe. Muss eine positive ganze Zahl sein.

extra_depths

Die Anzahl der zusätzlichen Tiefen für die Aufgabe. Muss eine nicht-negative ganze Zahl sein.

ergonomic_bias

Optionale Informationen zur ergonomischen Verzerrung (nicht streng validiert).

validate_format

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

Validiert das Eingabeformat.

Argumente:

  • value str - Der zu validierende Formatwert.

Rückgabe:

  • str - Der validierte Formatwert.

Wirft:

  • ValueError - Wenn das Format nicht 'moves' oder 'stickers' ist.

validate_beam_width

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

Validiert die Beam-Breite.

Argumente:

  • value - Der zu validierende Wert für die Beam-Breite.

Rückgabe:

  • int - Der validierte Wert für die Beam-Breite.

Wirft:

  • ValueError - Wenn die Beam-Breite keine positive ganze Zahl ist.

validate_extra_depths

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

Validiert die zusätzlichen Tiefen.

Argumente:

  • value - Der zu validierende Wert für die zusätzlichen Tiefen.

Rückgabe:

  • int - Der validierte Wert für die zusätzlichen Tiefen.

Wirft:

  • ValueError - Wenn der Wert für die zusätzlichen Tiefen negativ ist.

validate_scramble

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

Validiert und verarbeitet die Scramble-Daten basierend auf dem gewählten Format vor.

Argumente:

  • values dict - Die Eingabewerte.

Rückgabe:

  • dict - Die Eingabewerte mit validierten Scramble-Daten.

Wirft:

  • ValueError - Wenn es ungültige Züge in 'scramble' für das Format 'moves' gibt.
  • ValueError - Bei unerwarteter Mittelstück-Konfiguration in 'scramble' für das Format 'stickers' (nicht implementiert).