From 94edb8e001a81767831227d9707cd2d96a3919d1 Mon Sep 17 00:00:00 2001 From: "James C. Palmer" Date: Sat, 23 Mar 2024 16:37:37 -0700 Subject: [PATCH] Add functionality to specify config file and app prefix --- software/source/core/models.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/software/source/core/models.py b/software/source/core/models.py index 419d8d1..10b871f 100644 --- a/software/source/core/models.py +++ b/software/source/core/models.py @@ -2,15 +2,16 @@ Application configuration models. """ +import os + from pydantic import BaseModel from pydantic_settings import ( BaseSettings, PydanticBaseSettingsSource, - SettingsConfigDict, YamlConfigSettingsSource, ) -APP_PREFIX = "01_" +APP_PREFIX: str = os.getenv("01_APP_PREFIX", "01_") class Client(BaseModel): @@ -95,13 +96,6 @@ class Config(BaseSettings): tts: TTS = TTS() tunnel: Tunnel = Tunnel() - model_config = SettingsConfigDict( - env_prefix=APP_PREFIX, - env_file=".env", - env_file_encoding="utf-8", - yaml_file="config.yaml", - ) - @classmethod def settings_customise_sources( cls, @@ -114,4 +108,9 @@ class Config(BaseSettings): """ Modify the order of precedence for settings sources. """ - return (YamlConfigSettingsSource(settings_cls),) + return ( + YamlConfigSettingsSource( + settings_cls, + yaml_file=os.getenv(f"{APP_PREFIX}CONFIG_FILE", "config.yaml"), + ), + )