Aller au contenu principal

_validator

Validateur d'entrée

Ce module définit le validateur d'entrée pour l'application AlphaCube. Il comprend une classe Input de Pydantic qui valide les données d'entrée pour les tâches de l'application. Les données d'entrée doivent respecter un format spécifique et des règles de validation.

Règles de validation :

  • L'attribut format doit être soit 'moves' (mouvements) soit 'stickers' (autocollants).
  • Pour le format 'moves', l'attribut scramble doit être composé de mouvements valides.
  • Pour le format 'stickers' (non implémenté), des validations supplémentaires peuvent être effectuées.
  • L'attribut beam_width doit être un entier positif.
  • L'attribut extra_depths doit être un entier non négatif.
remarque

Les informations de biais ergonomique sont optionnelles et ne sont pas strictement validées.

Exemple d'utilisation
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)

Validateur (et préprocesseur) d'entrée pour AlphaCube.

format

Le format des données d'entrée. Doit être soit 'moves' soit 'stickers'.

scramble

Les données de mélange dans le format spécifié.

beam_width

La largeur de faisceau pour la tâche. Doit être un entier positif.

extra_depths

Le nombre de profondeurs supplémentaires pour la tâche. Doit être un entier non négatif.

ergonomic_bias

Informations optionnelles sur le biais ergonomique (non strictement validées).

validate_format

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

Valide le format d'entrée.

Arguments:

  • value str - La valeur du format à valider.

Renvoie:

  • str - La valeur du format validée.

Lève:

  • ValueError - Si le format n'est ni 'moves' ni 'stickers'.

validate_beam_width

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

Valide la largeur de faisceau.

Arguments:

  • value - La valeur de la largeur de faisceau à valider.

Renvoie:

  • int - La valeur de la largeur de faisceau validée.

Lève:

  • ValueError - Si la largeur de faisceau n'est pas un entier positif.

validate_extra_depths

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

Valide les profondeurs supplémentaires.

Arguments:

  • value - La valeur des profondeurs supplémentaires à valider.

Renvoie:

  • int - La valeur des profondeurs supplémentaires validée.

Lève:

  • ValueError - Si la valeur des profondeurs supplémentaires est négative.

validate_scramble

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

Valide et prétraite les données de mélange en fonction du format choisi.

Arguments:

  • values dict - Les valeurs d'entrée.

Renvoie:

  • dict - Les valeurs d'entrée avec les données de mélange validées.

Lève:

  • ValueError - S'il y a des mouvements invalides dans 'scramble' pour le format 'moves'.
  • ValueError - Si configuration inattendue des pièces centrales dans 'scramble' pour le format 'stickers' (non implémenté).