Validator for kernel sizes (odd integer > 1, or -1 for auto size).
| 231 | |
| 232 | |
| 233 | class KernelSizeValue(ValidatedValue): |
| 234 | """Validator for kernel sizes (odd integer > 1, or -1 for auto size).""" |
| 235 | |
| 236 | def __init__(self, value: int): |
| 237 | self._value: int | None |
| 238 | if value == -1: |
| 239 | # Kernel size of -1 maps to None internally for auto-sized kernel. |
| 240 | self._value = None |
| 241 | elif value < 0: |
| 242 | # Disallow other negative values. |
| 243 | raise ValueError() |
| 244 | elif value % 2 == 0: |
| 245 | # Disallow even values. |
| 246 | raise ValueError() |
| 247 | else: |
| 248 | self._value = value |
| 249 | |
| 250 | @property |
| 251 | def value(self) -> int | None: |
| 252 | return self._value |
| 253 | |
| 254 | def __str__(self) -> str: |
| 255 | if self._value is None: |
| 256 | return "auto" |
| 257 | return str(self._value) |
| 258 | |
| 259 | @staticmethod |
| 260 | def from_config(config_value: str, default: "KernelSizeValue") -> "KernelSizeValue": |
| 261 | try: |
| 262 | return KernelSizeValue(int(config_value)) |
| 263 | except ValueError as ex: |
| 264 | raise OptionParseFailure( |
| 265 | "Value must be an odd integer greater than 1, or set to -1 for auto kernel size." |
| 266 | ) from ex |
| 267 | |
| 268 | |
| 269 | class EscapedString(ValidatedValue): |
no outgoing calls
no test coverage detected