brancheneinstufung2.py aktualisiert

This commit is contained in:
2025-08-28 07:00:48 +00:00
parent cb8e50cfb3
commit 6dba377e2e

View File

@@ -86,7 +86,7 @@ def main():
formatter_class=argparse.RawTextHelpFormatter formatter_class=argparse.RawTextHelpFormatter
) )
mode_categories = { mode_categories = {
"Daten-Synchronisation": ["sync"], "Daten-Synchronisation": ["sync", "debug_sync"],
"Batch-Verarbeitung": ["wiki_verify", "website_scraping", "summarize_website", "branch_eval", "suggest_parents", "fsm_pitch"], "Batch-Verarbeitung": ["wiki_verify", "website_scraping", "summarize_website", "branch_eval", "suggest_parents", "fsm_pitch"],
"Sequentielle Verarbeitung": ["full_run"], "Sequentielle Verarbeitung": ["full_run"],
"Re-Evaluation": ["reeval"], "Re-Evaluation": ["reeval"],
@@ -168,10 +168,24 @@ def main():
# --- Modus-Dispatching --- # --- Modus-Dispatching ---
start_time = time.time() start_time = time.time()
if selected_mode == "sync": if selected_mode == "debug_sync":
# --- SPEZIFISCHE LOGIK FÜR DEN SYNC-MODUS --- # --- NEUER DEBUG-MODUS ---
logger.info("Führe Initialisierung für Sync-Modus durch...") 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(): if not sheet_handler.load_data():
logger.critical("Konnte initiale Daten aus dem Google Sheet nicht laden. Sync-Prozess wird abgebrochen.") logger.critical("Konnte initiale Daten aus dem Google Sheet nicht laden. Sync-Prozess wird abgebrochen.")
return return
@@ -179,25 +193,31 @@ def main():
d365_file_path = args.sync_file d365_file_path = args.sync_file
if not os.path.exists(d365_file_path): if not os.path.exists(d365_file_path):
logger.critical(f"Export-Datei nicht gefunden: {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: else:
sync_manager = SyncManager(sheet_handler, d365_file_path) sync_manager = SyncManager(sheet_handler, d365_file_path)
sync_manager.run_sync() sync_manager.run_sync()
# Ab hier beginnt die bisherige Logik für alle anderen Modi
else: else:
# --- BISHERIGE LOGIK FÜR ALLE ANDEREN MODI ---
wiki_scraper = WikipediaScraper() wiki_scraper = WikipediaScraper()
data_processor = DataProcessor(sheet_handler=sheet_handler, wiki_scraper=wiki_scraper) data_processor = DataProcessor(sheet_handler=sheet_handler, wiki_scraper=wiki_scraper)
# --- Modul-Versionen loggen (NACH der Initialisierung) ---
modules_to_log = { modules_to_log = {
"DataProcessor": data_processor, "GoogleSheetHandler": google_sheet_handler, "DataProcessor": data_processor,
"WikipediaScraper": wikipedia_scraper, "Helpers": helpers "GoogleSheetHandler": google_sheet_handler,
"WikipediaScraper": wikipedia_scraper,
"Helpers": helpers
} }
log_module_versions(modules_to_log) log_module_versions(modules_to_log)
# --- Ende Version-Logging ---
# Expliziter Setup-Aufruf, nachdem alle Konfigurationen geladen sind.
if not data_processor.setup(): if not data_processor.setup():
logger.critical("Setup des DataProcessors fehlgeschlagen. Das Skript wird beendet.") logger.critical("Setup des DataProcessors fehlgeschlagen. Das Skript wird beendet.")
return 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) 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": if selected_mode == "full_run":