From 812432f0b8472a2ca44513a579781a82454e5345 Mon Sep 17 00:00:00 2001 From: Mykola Solodukha Date: Mon, 17 Mar 2025 10:23:45 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9A=97=EF=B8=8F=20Set=20the=20default=20?= =?UTF-8?q?`=3DNone`=20values=20for=20`settings.DATABASE=5FURL`=20and=20`.?= =?UTF-8?q?REDIS=5FURL`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electro/settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/electro/settings.py b/electro/settings.py index 39eac1e..fae307d 100644 --- a/electro/settings.py +++ b/electro/settings.py @@ -30,7 +30,7 @@ class Settings(BaseSettings): BOT_LANGUAGE: str = "en" # Should mirror the `DEFAULT_LOCALE` setting. User in the Python code # Postgres database credentials - DATABASE_URL: PostgresDsn | None + DATABASE_URL: PostgresDsn | None = None # if the `DATABASE_URL` is not set, then use the following credentials: POSTGRES_HOST: str | None = None POSTGRES_USER: str | None = None @@ -41,7 +41,7 @@ class Settings(BaseSettings): ENABLE_DATABASE_SSL: bool = True # Redis credentials - REDIS_URL: RedisDsn | None + REDIS_URL: RedisDsn | None = None # if the `REDIS_URL` is not set, then use the following credentials: REDIS_HOST: str | None = None REDIS_PORT: int | None = 6379 From 13f0f762700bdc86d4aad88ceffde37c3d92efce Mon Sep 17 00:00:00 2001 From: Mykola Solodukha Date: Mon, 24 Mar 2025 11:06:51 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=9A=91=20Do=20not=20treat=20`=3DNone`?= =?UTF-8?q?=20values=20as=20true-ish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electro/toolkit/redis_storage.py | 6 ++++-- electro/toolkit/tortoise_orm.py | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/electro/toolkit/redis_storage.py b/electro/toolkit/redis_storage.py index 7047838..c87c9f2 100644 --- a/electro/toolkit/redis_storage.py +++ b/electro/toolkit/redis_storage.py @@ -13,10 +13,12 @@ from ..settings import settings -if not (redis_url := settings.REDIS_URL): +if not settings.REDIS_URL: redis_url = f"redis://{settings.REDIS_HOST}:{settings.REDIS_PORT}/{settings.REDIS_DB}" +else: + redis_url = str(settings.REDIS_URL) -redis_config: dict = dj_redis_url.config(default=str(redis_url)) +redis_config: dict = dj_redis_url.config(default=redis_url) STATE_KEY = "state" STATE_DATA_KEY = "data" diff --git a/electro/toolkit/tortoise_orm.py b/electro/toolkit/tortoise_orm.py index 031bef1..0f0ca89 100644 --- a/electro/toolkit/tortoise_orm.py +++ b/electro/toolkit/tortoise_orm.py @@ -45,11 +45,14 @@ class Model(tortoise_Model, metaclass=ModelMeta): def get_tortoise_config(): """Get the configuration for the `tortoise-orm`.""" - if not (database_url := str(settings.DATABASE_URL)): + if not settings.DATABASE_URL: database_url = ( f"postgres://{settings.POSTGRES_USER}:{settings.POSTGRES_PASSWORD}@" f"{settings.POSTGRES_HOST}:{settings.POSTGRES_PORT}/{settings.POSTGRES_DB}" ) + else: + database_url = str(settings.DATABASE_URL) + db = expand_db_url(database_url) ctx = False if settings.ENABLE_DATABASE_SSL: