From ab1788c57f53c8ae39ec5b589a5487a383ddd35c Mon Sep 17 00:00:00 2001 From: jze9 Date: Thu, 16 Jul 2026 11:54:21 +0500 Subject: [PATCH] =?UTF-8?q?refactor:=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BC=D1=91=D1=80=D1=82=D0=B2=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20=D0=B2=20bd/=5F=5Finit=5F=5F.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DATABASE_URL_asyncpg нигде не использовался — реально работает только DATABASE_URL_syncpg/pg8000 через синхронный engine. validate_db_port был не подключён как pydantic-валидатор (нет декоратора) и никогда не вызывался — DB_PORT конвертируется строкой выше через голый int(). Co-Authored-By: Claude Sonnet 5 --- bd/__init__.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/bd/__init__.py b/bd/__init__.py index 2f56e6c..60f821b 100644 --- a/bd/__init__.py +++ b/bd/__init__.py @@ -1,6 +1,5 @@ # Database configuration package from pydantic import BaseModel -import re import os import urllib.parse @@ -11,24 +10,7 @@ class Settings(BaseModel): DB_PASS: str = os.getenv("DB_PASS", "") DB_NAME: str = os.getenv("DB_NAME", "profi") - @classmethod - def validate_db_port(cls, v): - # Проверка и преобразование DB_PORT - if isinstance(v, str): - # Используем регулярное выражение для извлечения целого числа - match = re.search(r'\d+', v) - if match: - return int(match.group()) - else: - raise ValueError(f"Invalid DB_PORT value: {v}") - return v - - @property - def DATABASE_URL_asyncpg(self) -> str: - pwd = urllib.parse.quote_plus(str(self.DB_PASS)) - return f"postgresql+asyncpg://{self.DB_USER}:{pwd}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" - - @property + @property def DATABASE_URL_syncpg(self) -> str: pwd = urllib.parse.quote_plus(str(self.DB_PASS)) return f"postgresql+pg8000://{self.DB_USER}:{pwd}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"