Улучшения пайплайна #9

Closed
opened 2026-01-24 16:28:29 +07:00 by artem.kokos · 0 comments
Owner
  1. Улучшить структуру форматтеров:
from abc import ABC, abstractmethod

class Formatter(ABC):
    @abstractmethod
    def format(self, rows: List[ReportRow]) -> Any:
        pass
  • Реализовать каждый формат как подкласс (ODTFormatter, CSVFormatter, ...).
  • Использовать фабрику для выбора формата по расширению файла.
  1. Расширить покрытие тестами

  2. Изолировать шаблон ODT от корня проекта
    Файл template.odt лежит в корне проекта, что неудобно при установке пакета (pip install .) — он не попадает в установленный пакет.

  • Переместить template.odt внутрь пакета: redmine_reporter/templates/template.odt
  • Загружать его через importlib.resources (Python ≥3.9) или pkg_resources:
from importlib import resources
with resources.open_binary("redmine_reporter.templates", "template.odt") as f:
    doc = load(f)
1. Улучшить структуру форматтеров: ```python from abc import ABC, abstractmethod class Formatter(ABC): @abstractmethod def format(self, rows: List[ReportRow]) -> Any: pass ``` * Реализовать каждый формат как подкласс (ODTFormatter, CSVFormatter, ...). * Использовать фабрику для выбора формата по расширению файла. 2. Расширить покрытие тестами 3. Изолировать шаблон ODT от корня проекта Файл template.odt лежит в корне проекта, что неудобно при установке пакета (pip install .) — он не попадает в установленный пакет. * Переместить template.odt внутрь пакета: `redmine_reporter/templates/template.odt` * Загружать его через importlib.resources (Python ≥3.9) или pkg_resources: ```python from importlib import resources with resources.open_binary("redmine_reporter.templates", "template.odt") as f: doc = load(f) ```
artem.kokos self-assigned this 2026-01-24 16:28:29 +07:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#9