Skip to content

ccproxy.config.loader

ccproxy.config.loader

Configuration file loader for ccproxy.

ConfigurationError

Bases: Exception

Configuration loading error.

ConfigLoader

ConfigLoader()

Load configuration from multiple sources.

Source code in ccproxy/config/loader.py
def __init__(self) -> None:
    self._cached_config: dict[str, Any] | None = None

load

load(config_file=None)

Load configuration from multiple sources.

Priority: ENV > config file > defaults

Parameters:

Name Type Description Default
config_file Path | None

Optional path to config file

None

Returns:

Type Description
Settings

Settings instance with loaded configuration

Raises:

Type Description
ConfigurationError

If config file is invalid or cannot be loaded

Source code in ccproxy/config/loader.py
def load(self, config_file: Path | None = None) -> Settings:
    """Load configuration from multiple sources.

    Priority: ENV > config file > defaults

    Args:
        config_file: Optional path to config file

    Returns:
        Settings instance with loaded configuration

    Raises:
        ConfigurationError: If config file is invalid or cannot be loaded
    """
    config_data = self._load_config_file(config_file)

    # Environment variables take precedence over config file
    return Settings(**config_data) if config_data else Settings()

clear_cache

clear_cache()

Clear cached configuration.

Source code in ccproxy/config/loader.py
def clear_cache(self) -> None:
    """Clear cached configuration."""
    self._cached_config = None

load_config

load_config(config_file=None)

Load configuration using the global loader.

Parameters:

Name Type Description Default
config_file Path | None

Optional path to config file

None

Returns:

Type Description
Settings

Settings instance with loaded configuration

Source code in ccproxy/config/loader.py
def load_config(config_file: Path | None = None) -> Settings:
    """Load configuration using the global loader.

    Args:
        config_file: Optional path to config file

    Returns:
        Settings instance with loaded configuration
    """
    return config_loader.load(config_file)