Add CSV format support

Closes #5
This commit is contained in:
Кокос Артем Николаевич
2026-01-22 16:42:39 +07:00
parent 6416df481e
commit 2a39de467f
3 changed files with 67 additions and 15 deletions

View File

@@ -0,0 +1,40 @@
import csv
import io
from typing import List, Tuple
from redminelib.resources import Issue
from .formatter import get_version, hours_to_human, STATUS_TRANSLATION
def format_csv(
issue_hours: List[Tuple[Issue, float]],
fill_time: bool = True,
dialect: str = "excel"
) -> str:
"""
Formats the list of issues with spent time into CSV.
Returns a string containing the CSV content.
"""
output = io.StringIO()
writer = csv.writer(output, dialect=dialect)
# Header
writer.writerow(["Project", "Version", "Issue ID", "Subject", "Status", "Spent Time"])
for issue, hours in issue_hours:
project = str(issue.project)
version = get_version(issue)
status_en = str(issue.status)
status_ru = STATUS_TRANSLATION.get(status_en, status_en)
time_text = hours_to_human(hours) if fill_time else ""
writer.writerow([
project,
version,
issue.id,
issue.subject,
status_ru,
time_text
])
return output.getvalue()