aboutsummaryrefslogtreecommitdiff
path: root/jb/settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'jb/settings.py')
-rw-r--r--jb/settings.py42
1 files changed, 21 insertions, 21 deletions
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")