zach
Organize project structure
a807c4d
raw
history blame
1.61 kB
"""
config.py
Global configuration and logger setup for the project. This file centralizes shared
constants and settings, such as the logging configuration and API constraints.
Key Features:
- Configures the logger for consistent logging across all modules.
- Dynamically sets the logging level based on the DEBUG environment variable.
- Provides constants for shared constraints like maximum prompt length.
Constants:
- DEBUG: Indicates whether debug mode is enabled.
"""
# Standard Library Imports
import logging
import os
# Third-Party Library Imports
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Enable debugging mode based on an environment variable
debug_raw = os.getenv("DEBUG", "false").lower()
if debug_raw not in {"true", "false"}:
print(f"Warning: Invalid DEBUG value '{debug_raw}'. Defaulting to 'false'.")
DEBUG = debug_raw == "true"
# Configure the logger
logging.basicConfig(
level=logging.DEBUG if DEBUG else logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
)
logger: logging.Logger = logging.getLogger("tts_arena")
logger.info(f"Debug mode is {'enabled' if DEBUG else 'disabled'}.")
# Log environment variables
def log_env_variable(var_name: str, value: str) -> None:
"""
Logs the value of an environment variable for debugging purposes.
Args:
var_name (str): The name of the environment variable.
value (str): The value of the environment variable.
"""
logger.debug(f"Environment variable '{var_name}' validated with value: {value}")
log_env_variable("DEBUG", str(DEBUG))