#!/usr/bin/env python3 import argparse import os from pathlib import Path from datetime import datetime import base64 def create_html_dashboard(base_filename: str, charts_dir: str = "charts", output_file: str = None): """ Create an HTML dashboard with all generated charts. Args: base_filename: Base filename used for the data charts_dir: Directory containing chart PNG files output_file: Output HTML file path """ charts_path = Path(charts_dir) if not charts_path.exists(): print(f"Charts directory not found: {charts_path}") return # Chart files to include (in display order) chart_files = [ ("monthly_comparison.png", "Porównanie miesięczne", "Porównanie zużycia energii w poszczególnych miesiącach"), ("cost_analysis_miesięczne.png", "Analiza kosztów - miesięczna", "Koszty i przychody z energii elektrycznej w ujęciu miesięcznym"), ("monthly_hourly_profiles.png", "Profile godzinowe miesięczne", "Średnie godzinowe zużycie energii dla każdego miesiąca"), ("monthly_timeseries.png", "Trend miesięczny", "Miesięczne zużycie energii w czasie"), ("cost_analysis_dzienne.png", "Analiza kosztów - dzienna", "Koszty i przychody z energii elektrycznej w ujęciu dziennym"), ("weekly_timeseries.png", "Trend tygodniowy", "Tygodniowe zużycie energii w czasie"), ("daily_timeseries.png", "Trend dzienny", "Dzienne zużycie energii w czasie"), ("daily_stacked.png", "Obszar skumulowany", "Dzienne zużycie - wykres obszarowy"), ("hourly_timeseries.png", "Dane godzinowe", "Zużycie energii w ciągu dnia (próbka 30 dni)") ] # Encode images to base64 for embedding encoded_images = {} for filename, _, _ in chart_files: chart_path = charts_path / filename if chart_path.exists(): with open(chart_path, 'rb') as f: encoded_images[filename] = base64.b64encode(f.read()).decode('utf-8') # Generate HTML html_content = f"""
Analiza zużycia energii elektrycznej
Plik źródłowy: {base_filename}
Data generowania: {datetime.now().strftime('%d/%m/%Y %H:%M')}
Typ analizy: Kompletna analiza czasowa (godzinowa, dzienna, tygodniowa, miesięczna)
{description}