_validator
Input Validator
Este módulo define o validador de entrada para a aplicação AlphaCube. Ele inclui uma classe Pydantic Input
que valida os dados de entrada para as tarefas da aplicação. Os dados de entrada devem seguir regras específicas de formato e validação.
Regras de Validação:
- O atributo
format
deve ser 'moves' ou 'stickers'. - Para o formato 'moves', o atributo
scramble
deve consistir em movimentos válidos. - Para o formato 'stickers' (não implementado), validação adicional pode ser realizada.
- O atributo
beam_width
deve ser um número inteiro positivo. - O atributo
extra_depths
deve ser um número inteiro não negativo.
A informação de viés ergonômico é opcional e não é estritamente validada.
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)
Validador (& pré-processador) de entrada para o AlphaCube.
format
O formato dos dados de entrada. Deve ser 'moves' ou 'stickers'.
scramble
Os dados do embaralhamento no formato especificado.
beam_width
A largura do feixe (beam width) para a tarefa. Deve ser um número inteiro positivo.
extra_depths
O número de profundidades extras para a tarefa. Deve ser um número inteiro não negativo.
ergonomic_bias
Informação opcional de viés ergonômico (não estritamente validada).
validate_format
@validator("format")
@classmethod
def validate_format(cls, value: str) -> str
Valida o formato da entrada.
Argumentos:
value
str - O valor do formato a ser validado.
Retorna:
str
- O valor do formato validado.
Lança:
ValueError
- Se o formato não for 'moves' ou 'stickers'.
validate_beam_width
@validator("beam_width")
@classmethod
def validate_beam_width(cls, value)
Valida a largura do feixe (beam width).
Argumentos:
value
- O valor da largura do feixe a ser validado.
Retorna:
int
- O valor da largura do feixe validado.
Lança:
ValueError
- Se a largura do feixe não for um número inteiro positivo.
validate_extra_depths
@validator("extra_depths")
@classmethod
def validate_extra_depths(cls, value)
Valida as profundidades extras.
Argumentos:
value
- O valor das profundidades extras a ser validado.
Retorna:
int
- O valor das profundidades extras validado.
Lança:
ValueError
- Se o valor das profundidades extras for negativo.
validate_scramble
@model_validator(mode="before")
@classmethod
def validate_scramble(cls, values)
Valida e pré-processa os dados do embaralhamento com base no formato escolhido.
Argumentos:
values
dict - Os valores de entrada.
Retorna:
dict
- Os valores de entrada com os dados do embaralhamento validados.
Lança:
ValueError
- Se houver movimentos inválidos em 'scramble' para o formato 'moves'.ValueError
- Se houver uma configuração inesperada das peças de centro em 'scramble' para o formato 'stickers' (não implementado).