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
|
sqlmodel
|
||||||
pydantic
|
pydantic
|
||||||
sqlalchemy
|
sqlalchemy
|
||||||
|
pydantic-settings
|
||||||
Loading…
x
Reference in New Issue
Block a user