From 46a30c32ed14afd7138a9c16a69c8461128dd27f Mon Sep 17 00:00:00 2001 From: Maksim Date: Mon, 1 Sep 2025 19:20:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python_parser/core/services.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/python_parser/core/services.py b/python_parser/core/services.py index 0d3f791..16e7da0 100644 --- a/python_parser/core/services.py +++ b/python_parser/core/services.py @@ -99,9 +99,35 @@ class ReportService: # Получаем парсер parser = get_parser(request.report_type) + + # Устанавливаем DataFrame в парсер для использования в геттерах + parser.df = df - # Получаем значение - value = parser.get_value(df, request.get_params) + # Получаем параметры запроса + get_params = request.get_params or {} + + # Определяем имя геттера (по умолчанию используем первый доступный) + getter_name = get_params.pop("getter", None) + if not getter_name: + # Если геттер не указан, берем первый доступный + available_getters = list(parser.getters.keys()) + if available_getters: + getter_name = available_getters[0] + print(f"⚠️ Геттер не указан, используем первый доступный: {getter_name}") + else: + return DataResult( + success=False, + message="Парсер не имеет доступных геттеров" + ) + + # Получаем значение через указанный геттер + try: + value = parser.get_value(getter_name, get_params) + except ValueError as e: + return DataResult( + success=False, + message=f"Ошибка параметров: {str(e)}" + ) # Формируем результат if value is not None: