From 40305ad35dfb8dc7c1c945986848215ac2d7c92d Mon Sep 17 00:00:00 2001 From: Untone Date: Sun, 25 Feb 2024 00:42:22 +0300 Subject: [PATCH] fix-sawarning --- services/db.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/services/db.py b/services/db.py index 6463c3e9..b9410b38 100644 --- a/services/db.py +++ b/services/db.py @@ -5,23 +5,26 @@ from sqlalchemy import event, Engine from typing import Any, Callable, Dict, TypeVar from dogpile.cache import make_region -from sqlalchemy import Column, Integer, create_engine +from sqlalchemy import exc, Column, Integer, create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import Session from sqlalchemy.sql.schema import Table from services.logger import root_logger as logger from settings import DB_URL import warnings -from sqlalchemy import exc +import traceback # Функция для вывода полного трейсбека при предупреждениях def warning_with_traceback(message, category, filename, lineno, line=None): - import traceback + tb = traceback.format_stack() + tb_str = ''.join(tb) + return f'{message} ({filename}, {lineno}): {category.__name__}\n{tb_str}' - log = warnings._formatwarnmsg(message, category, filename, lineno, line) - log += ''.join(traceback.format_stack()) - return log + +# Установка функции вывода трейсбека для предупреждений SQLAlchemy +warnings.formatwarning = warning_with_traceback +warnings.simplefilter('always', exc.SAWarning) # Установка функции вывода трейсбека для предупреждений SQLAlchemy