refactor: big refactor

This commit is contained in:
2026-03-18 22:15:49 +03:00
parent 7e0e4a0b71
commit 1199ce1554
11 changed files with 264 additions and 555 deletions

View File

@@ -1,7 +1,7 @@
# --- Абстрактный базовый класс (Контракт) ---
# Copyright Stanislav Mironov
from abc import ABC, abstractmethod
from datetime import datetime, time
from datetime import time
import openpyxl
import xlrd
@@ -27,6 +27,7 @@ class TranschendentnostCell:
def is_empty(self):
return self._is_empty
# --- Абстрактный базовый класс (Контракт) ---
class ExcelSheetReader(ABC):
"""
Абстрактный базовый класс, определяющий интерфейс для чтения данных из листа Excel.
@@ -130,7 +131,6 @@ class ExcelSheetReader(ABC):
# --- Реализация №1: Обертка для xlrd ---
class XlrdSheetReader(ExcelSheetReader):
def __init__(self, file_path, sheet_index=0):
super().__init__(file_path)
@@ -219,7 +219,6 @@ class XlrdSheetReader(ExcelSheetReader):
# --- Реализация №2: Обертка-транслятор для openpyxl ---
class OpenpyxlSheetReader(ExcelSheetReader):
def __init__(self, file_path, sheet_name=None):
super().__init__(file_path)
@@ -309,8 +308,7 @@ class OpenpyxlSheetReader(ExcelSheetReader):
return []
# --- Фабричная функция (Ваша единственная точка входа) ---
# --- Фабричная функция (единственная точка входа) ---
def create_reader(file_path, **kwargs) -> ExcelSheetReader:
"""
Создает и возвращает подходящий экземпляр ридера в зависимости от расширения файла.