from datetime import datetime from typing import Any from jinja2 import Template from src.formatters.base import BaseFormatter HTML_TEMPLATE = """ Git Insights Report

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, )