Zum Hauptinhalt springen

_validator

Eingabe-Validator

Dieses Modul definiert den Eingabe-Validator für die AlphaCube-Anwendung. Es enthält eine Pydantic-Klasse Input, die 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) kann eine zusätzliche Validierung durchgeführt werden.
  • Das Attribut beam_width muss eine positive ganze Zahl sein.
  • Das Attribut extra_depths muss eine nicht-negative ganze Zahl sein.
hinweis

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

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

Eingabe-Validator (& Vorverarbeiter) für AlphaCube.

format

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

scramble

Die Scramble-Daten im angegebenen Format.

beam_width

Die Strahlbreite (Beam Width) 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 Gewichtung (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 Strahlbreite.

Argumente:

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

Rückgabe:

  • int - Der validierte Wert für die Strahlbreite.

Wirft:

  • ValueError - Wenn die Strahlbreite 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 & 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 im 'scramble' für das Format 'moves' ungültige Züge vorhanden sind.
  • ValueError - Wenn eine unerwartete Mittelstein-Konfiguration im 'scramble' für das Format 'stickers' vorliegt (nicht implementiert).