From ba6ca3c7a074e027801d2ab903ef20f90e742668 Mon Sep 17 00:00:00 2001 From: Kadu Date: Tue, 19 Aug 2025 16:45:18 +0200 Subject: [PATCH] fix: Fix report generation to respect data completeness check - Modified generate_yearly_report(), generate_monthly_report(), and generate_period_report() to use force=False when downloading yearly data - Removed hardcoded force=True that was bypassing the smart downloading logic - Report generation now respects data completeness check and avoids unnecessary downloads - Maintains backward compatibility and data integrity - Reports are still generated with most current data when needed --- src/rate_reporter.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/rate_reporter.py b/src/rate_reporter.py index 7bc8518..5838f98 100644 --- a/src/rate_reporter.py +++ b/src/rate_reporter.py @@ -110,11 +110,10 @@ def generate_yearly_report(year, currency_code, output_dir="data"): print(f"Generuji report kurzů pro {currency_code} za rok {year}...") # Zkontrolujeme, zda databáze obsahuje data pro daný rok - # Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní - print(f"Stahuji roční data pro rok {year}...") - # Stáhneme roční data s vynuceným stažením + # Stáhneme roční data pouze pokud nejsou kompletní + print(f"Kontroluji dostupnost ročních dat pro rok {year}...") os.makedirs("data", exist_ok=True) - data_fetcher.download_yearly_data(year, output_dir="data", force=True) + data_fetcher.download_yearly_data(year, output_dir="data", force=False) # Vytvoříme seznam všech dní v roce start_date = datetime(year, 1, 1) @@ -195,11 +194,10 @@ def generate_monthly_report(year, month, currency_code, output_dir="data"): print(f"Generuji report kurzů pro {currency_code} za {month}/{year}...") # Zkontrolujeme, zda databáze obsahuje data pro daný rok - # Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní - print(f"Stahuji roční data pro rok {year}...") - # Stáhneme roční data s vynuceným stažením + # Stáhneme roční data pouze pokud nejsou kompletní + print(f"Kontroluji dostupnost ročních dat pro rok {year}...") os.makedirs("data", exist_ok=True) - data_fetcher.download_yearly_data(year, output_dir="data", force=True) + data_fetcher.download_yearly_data(year, output_dir="data", force=False) # Vytvoříme seznam všech dní v měsíci start_date = datetime(year, month, 1) @@ -301,15 +299,14 @@ def generate_period_report(start_date_str, end_date_str, currency_code, output_d end_date = today # Zkontrolujeme, zda databáze obsahuje data pro roky v rozmezí - # Pro generování reportu vždy stáhneme aktuální roční data, aby byl report kompletní + # Stáhneme roční data pouze pokud nejsou kompletní start_year = start_date.year end_year = end_date.year for year in range(start_year, end_year + 1): - print(f"Stahuji roční data pro rok {year}...") - # Stáhneme roční data s vynuceným stažením + print(f"Kontroluji dostupnost ročních dat pro rok {year}...") os.makedirs("data", exist_ok=True) - data_fetcher.download_yearly_data(year, output_dir="data", force=True) + data_fetcher.download_yearly_data(year, output_dir="data", force=False) # Otevřeme CSV soubor pro zápis filename = f"report_{currency_code}_{start_date_str.replace('.', '_')}_to_{end_date_str.replace('.', '_')}.csv"