Files
redmine-reporter/redmine_reporter/formatters/csv.py
Кокос Артем Николаевич ad62ef4f6c Fix CSV & MD
2026-01-26 12:56:57 +07:00

33 lines
983 B
Python

import csv
import io
from typing import List
from .base import Formatter
from ..types import ReportRow
class CSVFormatter(Formatter):
"""Форматтер для экспорта в CSV."""
def __init__(self, **kwargs):
super().__init__()
def format(self, rows: List[ReportRow]) -> str:
output = io.StringIO()
writer = csv.writer(output, dialect="excel")
writer.writerow(["Project", "Version", "Issue ID", "Subject", "Status", "Spent Time"])
for r in rows:
writer.writerow([
r["project"],
r["version"],
r["issue_id"],
r["subject"],
r["status_ru"],
r["time_text"]
])
return output.getvalue()
def save(self, rows: List[ReportRow], output_path: str) -> None:
content = self.format(rows)
with open(output_path, "w", encoding="utf-8", newline="") as f:
f.write(content)