From bd1588b28181e13116c1905b1aa848700fc25db0 Mon Sep 17 00:00:00 2001 From: Floke Date: Thu, 28 Aug 2025 07:00:48 +0000 Subject: [PATCH] brancheneinstufung2.py aktualisiert --- brancheneinstufung2.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/brancheneinstufung2.py b/brancheneinstufung2.py index b1015e38..b311e3de 100644 --- a/brancheneinstufung2.py +++ b/brancheneinstufung2.py @@ -86,7 +86,7 @@ def main(): formatter_class=argparse.RawTextHelpFormatter ) mode_categories = { - "Daten-Synchronisation": ["sync"], + "Daten-Synchronisation": ["sync", "debug_sync"], "Batch-Verarbeitung": ["wiki_verify", "website_scraping", "summarize_website", "branch_eval", "suggest_parents", "fsm_pitch"], "Sequentielle Verarbeitung": ["full_run"], "Re-Evaluation": ["reeval"], @@ -168,10 +168,24 @@ def main(): # --- Modus-Dispatching --- start_time = time.time() - if selected_mode == "sync": - # --- SPEZIFISCHE LOGIK FÜR DEN SYNC-MODUS --- + if selected_mode == "debug_sync": + # --- NEUER DEBUG-MODUS --- + logger.info("Führe Initialisierung für Sync-Debug-Modus durch...") + if not sheet_handler.load_data(): + logger.critical("Konnte initiale Daten aus dem Google Sheet nicht laden. Debug-Prozess wird abgebrochen.") + return + + d365_file_path = args.sync_file + if not os.path.exists(d365_file_path): + logger.critical(f"Export-Datei nicht gefunden: {d365_file_path}") + else: + # Wir übergeben den sheet_handler, um eine erneute Verbindung zu vermeiden + sync_manager = SyncManager(sheet_handler, d365_file_path) + sync_manager.debug_sync() # Aufruf der neuen Debug-Funktion + + # Der elif-Block für den regulären Sync + elif selected_mode == "sync": logger.info("Führe Initialisierung für Sync-Modus durch...") - if not sheet_handler.load_data(): logger.critical("Konnte initiale Daten aus dem Google Sheet nicht laden. Sync-Prozess wird abgebrochen.") return @@ -179,25 +193,31 @@ def main(): d365_file_path = args.sync_file if not os.path.exists(d365_file_path): logger.critical(f"Export-Datei nicht gefunden: {d365_file_path}") - print(f"\n! FEHLER: Die angegebene Sync-Datei wurde nicht gefunden: {d365_file_path}") else: sync_manager = SyncManager(sheet_handler, d365_file_path) sync_manager.run_sync() + + # Ab hier beginnt die bisherige Logik für alle anderen Modi else: - # --- BISHERIGE LOGIK FÜR ALLE ANDEREN MODI --- wiki_scraper = WikipediaScraper() data_processor = DataProcessor(sheet_handler=sheet_handler, wiki_scraper=wiki_scraper) + # --- Modul-Versionen loggen (NACH der Initialisierung) --- modules_to_log = { - "DataProcessor": data_processor, "GoogleSheetHandler": google_sheet_handler, - "WikipediaScraper": wikipedia_scraper, "Helpers": helpers + "DataProcessor": data_processor, + "GoogleSheetHandler": google_sheet_handler, + "WikipediaScraper": wikipedia_scraper, + "Helpers": helpers } log_module_versions(modules_to_log) + # --- Ende Version-Logging --- + # Expliziter Setup-Aufruf, nachdem alle Konfigurationen geladen sind. if not data_processor.setup(): logger.critical("Setup des DataProcessors fehlgeschlagen. Das Skript wird beendet.") return + # --- Modus-Dispatching für die restlichen Modi --- steps_to_run_set = set(step.strip().lower() for step in args.steps.split(',') if step.strip() in valid_steps) if args.steps else set(valid_steps) if selected_mode == "full_run":