Coverage for lintro / enums / config_format.py: 100%
12 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Configuration format enum definitions.
3This module defines the supported configuration formats.
4"""
6from __future__ import annotations
8from enum import StrEnum, auto
11class ConfigFormat(StrEnum):
12 """Supported configuration formats.
14 Values are lower-case string identifiers to align with CLI choices.
15 """
17 YAML = auto()
18 JSON = auto()
21def normalize_config_format(value: str | ConfigFormat) -> ConfigFormat:
22 """Normalize a raw value to a ConfigFormat enum.
24 Args:
25 value: str or ConfigFormat to normalize.
27 Returns:
28 ConfigFormat: Normalized enum value.
30 Raises:
31 ValueError: If the value is not a valid config format.
32 """
33 if isinstance(value, ConfigFormat):
34 return value
35 try:
36 return ConfigFormat[value.upper()]
37 except KeyError as err:
38 raise ValueError(
39 f"Unknown config format: {value!r}. "
40 f"Supported formats: {list(ConfigFormat)}",
41 ) from err