Przejdź do głównej zawartości

_validator

Walidator danych wejściowych

Ten moduł definiuje walidator danych wejściowych dla aplikacji AlphaCube. Zawiera klasę Pydantic Input, która waliduje dane wejściowe dla zadań aplikacji. Dane wejściowe muszą być zgodne z określonymi regułami formatu i walidacji.

Reguły walidacji:

  • Atrybut format musi mieć wartość 'moves' lub 'stickers'.
  • Dla formatu 'moves', atrybut scramble musi składać się z prawidłowych ruchów.
  • Dla formatu 'stickers' (niezaimplementowane), może być przeprowadzona dodatkowa walidacja.
  • Atrybut beam_width musi być dodatnią liczbą całkowitą.
  • Atrybut extra_depths musi być nieujemną liczbą całkowitą.
notatka

Informacje o preferencjach ergonomicznych są opcjonalne i nie podlegają ścisłej walidacji.

Przykład użycia
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)

Walidator (i preprocesor) danych wejściowych dla AlphaCube.

format

Format danych wejściowych. Musi mieć wartość 'moves' lub 'stickers'.

scramble

Dane sekwencji mieszającej w określonym formacie.

beam_width

Szerokość wiązki dla zadania. Musi być dodatnią liczbą całkowitą.

extra_depths

Liczba dodatkowych głębokości dla zadania. Musi być nieujemną liczbą całkowitą.

ergonomic_bias

Opcjonalne informacje o preferencjach ergonomicznych (nie podlegają ścisłej walidacji).

validate_format

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

Waliduje format danych wejściowych.

Argumenty:

  • value str - Wartość formatu do walidacji.

Zwraca:

  • str - Zwalidowana wartość formatu.

Zgłasza:

  • ValueError - Jeśli format nie jest 'moves' ani 'stickers'.

validate_beam_width

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

Waliduje szerokość wiązki.

Argumenty:

  • value - Wartość szerokości wiązki do walidacji.

Zwraca:

  • int - Zwalidowana wartość szerokości wiązki.

Zgłasza:

  • ValueError - Jeśli szerokość wiązki nie jest dodatnią liczbą całkowitą.

validate_extra_depths

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

Waliduje dodatkowe głębokości.

Argumenty:

  • value - Wartość dodatkowych głębokości do walidacji.

Zwraca:

  • int - Zwalidowana wartość dodatkowych głębokości.

Zgłasza:

  • ValueError - Jeśli wartość dodatkowych głębokości jest ujemna.

validate_scramble

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

Waliduje i przetwarza dane sekwencji mieszającej na podstawie wybranego formatu.

Argumenty:

  • values dict - Wartości wejściowe.

Zwraca:

  • dict - Wartości wejściowe ze zwalidowanymi danymi sekwencji mieszającej.

Zgłasza:

  • ValueError - Jeśli w 'scramble' dla formatu 'moves' znajdują się nieprawidłowe ruchy.
  • ValueError - Jeśli w 'scramble' dla formatu 'stickers' występuje nieoczekiwana konfiguracja środków (niezaimplementowane).