from pydantic_settings import BaseSettings, SettingsConfigDict class Configs(BaseSettings): """ Postgresql configuration settings. """ DB: str = "sample_db" USER: str = "sample_user" PASSWORD: str = "password" HOST: str = "10.10.2.14" PORT: int = 5432 ENGINE: str = "postgresql+psycopg2" POOL_PRE_PING: bool = True POOL_SIZE: int = 20 MAX_OVERFLOW: int = 10 POOL_RECYCLE: int = 600 POOL_TIMEOUT: int = 30 ECHO: bool = True @property def url(self): """Generate the database URL.""" return f"{self.ENGINE}://{self.USER}:{self.PASSWORD}@{self.HOST}:{self.PORT}/{self.DB}" model_config = SettingsConfigDict(env_prefix="POSTGRES_") # singleton instance of the POSTGRESQL configuration settings postgres_configs = Configs() print("url", postgres_configs.url)