Coverage for src/common/app_config.py: 100%
20 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-03-25 22:26 -0400
« prev ^ index » next coverage.py v7.6.10, created at 2025-03-25 22:26 -0400
1"""Configuration for the application, supplied via environment variables
2to support 12-factor app methodology"""
4import os
6from dotenv import load_dotenv
8load_dotenv() # take environment variables from .env.
10DB_HOST = os.getenv("DB_HOST", "not_configured")
11DB_PORT = os.getenv("DB_PORT", "not_configured")
12DB_USER = os.getenv("DB_USER", "not_configured")
13DB_PASSWORD = os.getenv("DB_PASSWORD", "not_configured")
14DB_DATABASE = os.getenv("DB_DATABASE", "not_configured")
15DB_URI = (
16 f"postgresql+psycopg2://{DB_USER}:{DB_PASSWORD}@"
17 + f"{DB_HOST}:{DB_PORT}/{DB_DATABASE}?application_name=cuecode"
18)
20SQLALCHEMY_POOL_RECYCLE = int(os.getenv("SQLALCHEMY_POOL_RECYCLE", "35"))
21SQLALCHEMY_POOL_TIMEOUT = int(os.getenv("SQLALCHEMY_POOL_TIMEOUT", "7"))
22SQLALCHEMY_DATABASE_URI = DB_URI
24LLM_BASE_URL = str(os.getenv("LLM_BASE_URL"))
25LLM_API_KEY = str(os.getenv("LLM_API_KEY"))
26LLM_MODEL = str(os.getenv("LLM_MODEL"))
29# Flask
30# pylint: disable-next=too-few-public-methods
31class FlaskConfig:
32 """Handles getting config from environment variables to pass to the Flask
33 application"""
35 SERVER_NAME = os.getenv("SERVER_NAME")
36 PREFERRED_URL_SCHEME = os.getenv("PREFERRED_URL_SCHEME", "http")
37 WTF_CSRF_SECRET_KEY = os.getenv("WTF_CSRF_SECRET_KEY", "testing")
38 SECRET_KEY = os.getenv("SECRET_KEY", "your-default-secret-key")