diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 2ee832d5..3c155103 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -6623,23 +6623,23 @@ class DataProcessor: # ... (Logik für den letzten Batch mit ThreadPoolExecutor) ... self.logger.debug(f" FINALER Branch Batch beendet. {len(results_list)} Ergebnisse erhalten ({batch_error_count} Fehler).") - # Sammle Sheet Updates (W, X, Y, AO, AP) fuer diesen finalen Batch. - if results_list: + # Sammle Sheet Updates (AH, AI, AJ, AK, BC, BD) fuer diesen finalen Batch. + if results_list: # Beginn des Blocks, zu dem das problematische if gehören sollte current_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") current_version = getattr(Config, 'VERSION', 'unknown') batch_sheet_updates = [] results_list.sort(key=lambda x: x['row_num']) - for res_data in results_list: # <--- HIER IST DIE ZWEITE SCHLEIFE + for res_data in results_list: # Beginn der inneren Schleife row_num = res_data['row_num'] result = res_data['result'] - self.logger.debug(f" FINALER Batch Zeile {row_num}: Ergebnis aus evaluate_branch_task: {result}") # DEBUG + self.logger.debug(f" FINALER Batch Zeile {row_num}: Ergebnis aus evaluate_branch_task: {result}") # Sammle Updates fuer AH, AI, AJ, AK, BC, BD batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num}', 'values': [[result.get("branch", "FEHLER BRANCH")]]}) batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num}', - 'values': [[result.get("confidence", "N/A CONF")]]}) # <<< HIER ANPASSEN + 'values': [[result.get("confidence", "N/A CONF")]]}) batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num}', 'values': [[result.get("consistency", "error CONS")]]}) batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num}', @@ -6649,21 +6649,30 @@ class DataProcessor: 'values': [[current_timestamp]]}) batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Version"] + 1)}{row_num}', 'values': [[current_version]]}) - # Fuege diese Updates zur globalen Liste hinzu (wird dann nur noch einmal gesendet) - # all_sheet_updates.extend(batch_sheet_updates) # Nicht hier sammeln, direkt senden + # Ende der inneren for-Schleife (for res_data in results_list) + + # Sende die gesammelten Updates fuer DIESEN finalen Batch. + # DIESER BLOCK MUSS AUF DERSELBEN EBENE WIE DIE if results_list BEDINGUNG SEIN (oder eine Ebene tiefer, wenn er nur bei results_list ausgeführt werden soll) + # Basierend auf der Logik, dass Updates nur gesendet werden, WENN es welche gibt, gehört es eine Ebene tiefer als if results_list. + # Also auf der Ebene der batch_sheet_updates = [] Initialisierung. - # Sende die gesammelten Updates fuer DIESEN finalen Batch. - if batch_sheet_updates: - self.logger.debug(f" Sende FINALES Sheet-Update fuer {len(results_list)} Zeilen ({len(batch_sheet_updates)} Zellen)...") # <<< GEÄNDERT - # Nutzt die batch_update_cells Methode des Sheet Handlers (Block 14) mit Retry. - success = self.sheet_handler.batch_update_cells(batch_sheet_updates) - if success: - self.logger.info(f" FINALES Sheet-Update fuer Branch Batch erfolgreich.") # <<< GEÄNDERT - # Der Fehlerfall wird von batch_update_cells geloggt + # ---> KORREKTE EINRÜCKUNG FÜR DEN FOLGENDEN BLOCK <--- + # Dieser Block sollte auf derselben Ebene sein wie die Initialisierung von batch_sheet_updates + # oder, wenn er nur ausgeführt werden soll, wenn results_list nicht leer ist, + # dann innerhalb des `if results_list:` Blocks, aber NACH der `for`-Schleife. + # Im Screenshot ist es direkt nach der for-Schleife, also innerhalb von `if results_list:`. + if batch_sheet_updates: # Diese Zeile muss dieselbe Einrückung haben wie z.B. "current_timestamp =" + self.logger.debug(f" Sende FINALES Sheet-Update fuer {len(results_list)} Zeilen ({len(batch_sheet_updates)} Zellen)...") + success = self.sheet_handler.batch_update_cells(batch_sheet_updates) + if success: + self.logger.info(f" FINALES Sheet-Update fuer Branch Batch erfolgreich.") + # Der Fehlerfall wird von batch_update_cells geloggt + # Ende des `if results_list:` Blocks + # Ende des `if tasks_for_processing_batch:` Blocks (für den finalen Batch) # Logge den Abschluss des Modus - self.logger.info(f"Brancheneinschaetzung (Parallel Batch) abgeschlossen. {processed_count} Zeilen verarbeitet (in Batch aufgenommen), {skipped_count} Zeilen uebersprungen.") # <<< GEÄNDERT + self.logger.info(f"Brancheneinschaetzung (Parallel Batch) abgeschlossen. {processed_count} Zeilen verarbeitet (in Batch aufgenommen), {skipped_count} Zeilen uebersprungen.") # Keine Pause nach diesem Modus noetig, da die naechste Aktion im Dispatcher (Block 34) folgt.