Add app settings
This commit is contained in:
parent
1e137a4f3a
commit
38dda8ce80
33
backend/app/settings.py
Normal file
33
backend/app/settings.py
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
import os
|
||||
from functools import lru_cache
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class _BaseConfig(BaseSettings):
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env", extra="ignore", nested_model_default_partial_update=True
|
||||
)
|
||||
|
||||
|
||||
class _AppSettings(_BaseConfig):
|
||||
environment: str = Field(default=os.getenv("ENVIRONMENT"))
|
||||
|
||||
|
||||
class _DbSettings(_BaseConfig):
|
||||
username: str = Field(default=os.getenv("PG_USER"), alias="PG_USER")
|
||||
password: str = Field(default=os.getenv("PG_PASSWORD"), alias="PG_PASSWORD")
|
||||
db_name: str = Field(default=os.getenv("PG_DB_NAME"), alias="PG_DB_NAME")
|
||||
|
||||
|
||||
class _Settings(_BaseConfig):
|
||||
app: _AppSettings = _AppSettings()
|
||||
db: _DbSettings = _DbSettings()
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_settings() -> _Settings:
|
||||
return _Settings()
|
||||
@ -3,3 +3,4 @@ uvicorn
|
||||
sqlmodel
|
||||
pydantic
|
||||
sqlalchemy
|
||||
pydantic-settings
|
||||
Loading…
x
Reference in New Issue
Block a user