from datetime import datetime
from typing import Any
from jinja2 import Template
from src.formatters.base import BaseFormatter
HTML_TEMPLATE = """
Git Insights Report
Generated: {{ timestamp }}
{% if commit_analysis %}
Commit Analysis
{{ commit_analysis.total_commits }}
Total Commits
{{ commit_analysis.unique_authors }}
Authors
{% endif %}
"""
class HTMLFormatter(BaseFormatter):
"""HTML output formatter."""
@staticmethod
def format(data: Any) -> str:
"""Format data as HTML."""
template = Template(HTML_TEMPLATE)
return template.render(
timestamp=datetime.now().isoformat(),
commit_analysis=data.commit_analysis if hasattr(data, "commit_analysis") else None,
)