From bbc373bd2e9617c8da829b3a180e9c42f139a380 Mon Sep 17 00:00:00 2001 From: Max Nanis Date: Thu, 10 Sep 2026 10:27:51 -0700 Subject: Less from init, more from generalresearch, basic db test from shared conftest --- jb/settings.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'jb/settings.py') diff --git a/jb/settings.py b/jb/settings.py index f0851a5..a425b31 100644 --- a/jb/settings.py +++ b/jb/settings.py @@ -4,10 +4,13 @@ from os.path import dirname as pdirname from os.path import join as pjoin from pathlib import Path -from generalresearch.models.custom_types import InfluxDsn -from jb.models.custom_types import UUIDStr -from pydantic import Field, HttpUrl, PostgresDsn, RedisDsn, SecretStr, model_validator -from pydantic_settings import BaseSettings, SettingsConfigDict +from generalresearch.config import GRLBaseSettings, is_debug +from generalresearch.models.custom_types import ( + InfluxDsn, + UUIDStr, +) +from pydantic import Field, HttpUrl, PostgresDsn, SecretStr, model_validator +from pydantic_settings import SettingsConfigDict BASE_DIR = pdirname(pdirname(abspath(__file__))) @@ -15,11 +18,15 @@ BASE_HTML_PATH = Path(BASE_DIR) / "templates" / "base.html" BASE_HTML = BASE_HTML_PATH.read_text() -class AmtJbBaseSettings(BaseSettings): - debug: bool = Field(default=True) +class Settings(GRLBaseSettings): - redis: RedisDsn | None = Field(default=None) - redis_timeout: float = Field(default=0.10) + model_config = SettingsConfigDict( + env_file=(".env.test", ".env.testing", ".env.staging", ".env.prod"), + env_file_encoding="utf-8", + case_sensitive=False, + extra="allow", + cli_parse_args=False, + ) amt_jb_db: PostgresDsn | None = Field(default=None) @@ -30,20 +37,8 @@ class AmtJbBaseSettings(BaseSettings): aws_owner_id: str | None = Field(default=None) aws_subscription_arn: str | None = Field(default=None) + # --- Pytest --- -class Settings(AmtJbBaseSettings): - model_config = SettingsConfigDict( - env_file=( - pjoin(BASE_DIR, x) - for x in [".env.test", ".env.testing", ".env.staging", ".env.prod"] - ), - env_file_encoding="utf-8", - case_sensitive=False, - extra="allow", - cli_parse_args=False, - ) - - debug: bool = False app_name: str = "AMT JB API" base_url: HttpUrl = Field(default=HttpUrl("https://jamesbillings67.com/")) @@ -70,6 +65,11 @@ class Settings(AmtJbBaseSettings): @model_validator(mode="after") def validate_host_and_key(self) -> "Settings": + self.debug = is_debug() + + if self.debug: + return self + if not self.amt_jb_db: raise ValueError("amt_jb_db is required") -- cgit v1.2.3