Coverage for src / ezcompiler / shared / exceptions / utils / config_exceptions.py: 100.00%
12 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-27 06:49 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-27 06:49 +0000
1# ///////////////////////////////////////////////////////////////
2# CONFIG_EXCEPTIONS - Configuration exceptions
3# Project: ezcompiler
4# ///////////////////////////////////////////////////////////////
6"""
7Configuration exceptions - Specialized exceptions for configuration operations.
9This module defines exceptions for various configuration-related failures
10used by ConfigUtils and configuration validation.
11"""
13from __future__ import annotations
15# ///////////////////////////////////////////////////////////////
16# IMPORTS
17# ///////////////////////////////////////////////////////////////
18from .base import EzCompilerError
20# ///////////////////////////////////////////////////////////////
21# EXCEPTIONS
22# ///////////////////////////////////////////////////////////////
25class ConfigError(EzCompilerError):
26 """Base exception for configuration errors."""
29class ConfigFieldValidationError(ConfigError):
30 """Raised when configuration field validation fails."""
33class ConfigPathError(ConfigError):
34 """Raised when configuration paths are invalid."""
37class CompilerOptionError(ConfigError):
38 """Raised when compiler option is invalid."""
41class OutputFolderError(ConfigError):
42 """Raised when output folder configuration is invalid."""
45class IncludeFilesError(ConfigError):
46 """Raised when include files configuration is invalid."""
49class MissingRequiredConfigError(ConfigError):
50 """Raised when required configuration is missing."""
53class ConfigFileNotFoundError(ConfigError):
54 """Raised when a configuration file cannot be found."""
57class ConfigFileParseError(ConfigError):
58 """Raised when a configuration file cannot be parsed."""
61class TomlNotAvailableError(ConfigError):
62 """Raised when TOML parsing is requested but tomllib/tomli is not available."""