settings ¶
Main Tux configuration using Pydantic Settings.
This module provides the main configuration class and global instance, using the extracted models and proper pydantic-settings for environment variable binding.
Configuration loading priority (highest to lowest): 1. Environment variables 2. .env file 3. config.toml file 4. config.yaml file 5. config.json file 6. Default values
Classes:
-
Config–Main Tux configuration using Pydantic Settings with multi-format support.
Functions:
-
validate_environment–Validate critical environment variables for security and correctness.
Classes¶
Config ¶
Bases: BaseSettings
Main Tux configuration using Pydantic Settings with multi-format support.
Configuration is loaded from multiple sources in priority order: 1. Environment variables (highest priority) 2. .env file 3. config.toml file 4. config.yaml file 5. config.json file 6. Default values (lowest priority)
Methods:
-
settings_customise_sources–Customize settings sources to load from multiple file formats.
-
get_prefix–Get command prefix for current environment.
-
is_prefix_override_enabled–Check if prefix override is enabled by environment variable.
-
is_debug_enabled–Check if debug mode is enabled.
-
get_cog_ignore_list–Get cog ignore list for current environment.
-
get_database_url–Legacy method - use database_url property instead.
-
get_github_private_key–Get the GitHub private key, handling base64 encoding if needed.
Attributes:
-
database_url(str) –Get database URL with proper host resolution.
Attributes¶
database_url property ¶
database_url: str
Get database URL with proper host resolution.
NOTE: This is used for: - Production application (DatabaseService) - Integration tests (real PostgreSQL) - Alembic migrations
py-pglite unit tests do NOT use this URL - they create their own.
Functions¶
settings_customise_sources classmethod ¶
settings_customise_sources(
settings_cls: type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> tuple[PydanticBaseSettingsSource, ...]
Customize settings sources to load from multiple file formats.
Priority order (highest to lowest): 1. Init settings (programmatic overrides) 2. Environment variables 3. .env file 4. config.toml file 5. config.yaml file 6. config.json file 7. File secret settings (Docker secrets, etc.)
Parameters:
-
settings_cls(type[BaseSettings]) –The settings class
-
init_settings(PydanticBaseSettingsSource) –Init settings source
-
env_settings(PydanticBaseSettingsSource) –Environment settings source
-
dotenv_settings(PydanticBaseSettingsSource) –.env file settings source
-
file_secret_settings(PydanticBaseSettingsSource) –File secret settings source
Returns:
-
tuple[PydanticBaseSettingsSource, ...]–Tuple of settings sources in priority order
is_prefix_override_enabled ¶
is_prefix_override_enabled() -> bool
Check if prefix override is enabled by environment variable.
Returns True if BOT_INFO__PREFIX was explicitly set in environment variables, indicating the user wants to override all database prefix settings.
Returns:
-
bool–True if prefix override is enabled, False otherwise.
get_cog_ignore_list ¶
Functions¶
validate_environment ¶
validate_environment() -> None
Validate critical environment variables for security and correctness.
Raises:
-
ValueError–If an insecure default password is used.