/
AntiManager
/
table_structure_analyzer
Обзор
Документация
Войти
/
AntiManager
/
table_structure_analyzer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
core/base_analyzer.py
45 строк
2 KB
Eugene
fix big data
26 дек 2025, 19:16
26 дек 2025, 19:16
5be946c
Код
Авторство
О чём код?
""" Базовый класс для анализаторов файлов """ from abc import ABC, abstractmethod from typing import Dict, List, Any, Optional, Tuple from pathlib import Path import logging class BaseAnalyzer(ABC): """Абстрактный базовый класс анализатора файлов""" SUPPORTED_EXTENSIONS: List[str] = [] @abstractmethod def get_sheet_info(self, file_path: str) -> Dict[str, List[str]]: """Возвращает информацию о листах и колонках""" pass @abstractmethod def get_sheet_data(self, file_path: str, sheet_name: str, max_rows: int = 10) -> List[Dict[str, Any]]: """Возвращает данные листа для предпросмотра""" pass @abstractmethod def analyze_structure(self, file_path: str, sheet_names: List[str] = None) -> Dict[str, Any]: """Анализирует структуру файла""" pass @classmethod def supports_extension(cls, extension: str) -> bool: """Проверяет поддержку расширения файла""" return extension.lower() in cls.SUPPORTED_EXTENSIONS # Новые методы для быстрой оценки @abstractmethod def fast_row_count(self, file_path: str, sheet_name: str) -> int: """Быстрая оценка количества строк без чтения всех данных""" pass @abstractmethod def get_sheet_dimensions(self, file_path: str, sheet_name: str) -> Tuple[int, int]: """Быстрое получение размеров листа (строки, столбцы)""" pass