/
valuevvik
/
wbAnalytics
Обзор
Документация
Войти
/
valuevvik
/
wbAnalytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
base_client.py
46 строк
1 KB
valuevvik
initial commit
05 дек 2025, 17:36
05 дек 2025, 17:36
f514336
Код
Авторство
О чём код?
from abc import ABC, abstractmethod import requests import time from models.wb_models import ReportTask class BaseWBClient(ABC): def __init__(self, api_key: str): self.api_key = api_key self.session = requests.Session() self.session.headers.update({"Authorization": api_key}) @abstractmethod def get_base_url(self) -> str: pass @abstractmethod def create_report_task(self, date_from: str, date_to: str) -> ReportTask: pass @abstractmethod def get_report_data(self, task_id: str): pass def check_task_status(self, task_id: str) -> str: """Проверяет статус задания""" url = f"{self.get_base_url()}/tasks/{task_id}/status" response = self.session.get(url) response.raise_for_status() return response.json()["data"]["status"] def wait_for_task_completion(self, task_id: str, log_callback=None) -> bool: """Ожидает завершения генерации отчета""" while True: status = self.check_task_status(task_id) if log_callback: log_callback(f"Статус задания: {status}") if status == "done": return True elif status == "error": return False time.sleep(10)