Source code for PyR3.factory.fields.Select

# -*- coding: utf-8 -*-
from __future__ import annotations

from typing import Any

from .Field import Field


[docs]class Select(Field): def __init__(self, *values, default: int = None) -> None: self.values = values if default is not None: self.default = default
[docs] def digest(self, value: Any = None) -> Any: if value is None: return self.values[self.get_default()] else: return self.clean_value(value)
[docs] def clean_value(self, value: Any = None) -> None: if value in self.values: return value else: raise ValueError( f"Invalid value for {self._trace_location()}, must be one of {self.values}" )