bugfix
This commit is contained in:
@@ -2778,7 +2778,7 @@ class DataProcessor:
|
||||
# Diese Methode gehört in die Klasse DataProcessor.
|
||||
# @retry_on_failure # Nicht sinnvoll auf dieser Orchestrierungsebene
|
||||
def _process_single_row(self, row_num_in_sheet, row_data,
|
||||
steps_to_run, force_reeval=False):
|
||||
steps_to_run, force_reeval=False, clear_x_flag=False): # NEUES ARGUMENT hinzugefügt
|
||||
"""
|
||||
Verarbeitet die Daten für eine einzelne Zeile im Sheet, führt ausgewählte
|
||||
Anreicherungs- und Analyseprozesse durch, basierend auf Timestamps/Status
|
||||
@@ -3348,6 +3348,27 @@ class DataProcessor:
|
||||
# else: self.logger.error("FEHLER: Spaltenschlüssel 'Tokens' nicht in COLUMN_MAP gefunden.")
|
||||
pass # Token-Zählung Implementierung verschoben
|
||||
|
||||
# --- 5b. ReEval Flag (A) löschen (nur wenn im Re-Eval Modus und gewünscht) ---
|
||||
# Dieses Update wird am Ende hinzugefügt, wenn die Verarbeitung erfolgreich (oder zumindest versucht) wurde
|
||||
# und der Aufrufer (process_reevaluation_rows) dies angefordert hat.
|
||||
if force_reeval and clear_x_flag:
|
||||
# Ermitteln Sie den Index der ReEval Flag Spalte
|
||||
reeval_col_idx = COLUMN_MAP.get("ReEval Flag")
|
||||
if reeval_col_idx is not None:
|
||||
flag_col_letter = self.sheet_handler._get_col_letter(reeval_col_idx + 1)
|
||||
if flag_col_letter:
|
||||
# Fügen Sie das Update zum Löschen des 'x'-Flags zur Liste hinzu
|
||||
# Es wird nur gelöscht, wenn die Zeile ansonsten erfolgreich bis hierhin kam.
|
||||
# Wenn eine schwere Exception in _process_single_row auftrat, wird diese Zeile nicht erreicht.
|
||||
updates.append({'range': f'{flag_col_letter}{row_num_in_sheet}', 'values': [['']]})
|
||||
self.logger.debug(f" -> Update zum Löschen des ReEval-Flags (A{row_num_in_sheet}) vorgemerkt.")
|
||||
else:
|
||||
self.logger.error(f"FEHLER: Konnte Spaltenbuchstaben für 'ReEval Flag' ({reeval_col_idx+1}) nicht ermitteln. Flag kann nicht gelöscht werden.")
|
||||
else:
|
||||
self.logger.error("FEHLER: 'ReEval Flag' Spaltenindex nicht in COLUMN_MAP gefunden. Flag kann nicht gelöscht werden.")
|
||||
|
||||
|
||||
|
||||
|
||||
# --- 6. Batch Update für diese Zeile ---
|
||||
# Führen Sie das Batch-Update für alle gesammelten Änderungen dieser Zeile durch.
|
||||
@@ -3459,7 +3480,7 @@ class DataProcessor:
|
||||
|
||||
# Verarbeitung der markierten Zeilen
|
||||
processed_count = 0
|
||||
updates_clear_flag = [] # Updates zum Löschen des 'x'-Flags
|
||||
#updates_clear_flag = [] # Updates zum Löschen des 'x'-Flags
|
||||
rows_actually_processed = [] # Liste der Zeilen, die tatsächlich verarbeitet wurden
|
||||
|
||||
for task in rows_to_process:
|
||||
@@ -3478,18 +3499,19 @@ class DataProcessor:
|
||||
row_num_in_sheet = row_num,
|
||||
row_data = row_data,
|
||||
steps_to_run = steps_to_run_set, # <-- Übergibt die ausgewählten Schritte
|
||||
force_reeval = True # <-- Erzwingt Re-Evaluation unabhängig von Timestamps
|
||||
force_reeval = True, # <-- Erzwingt Re-Evaluation unabhängig von Timestamps
|
||||
clear_x_flag = clear_flag # <-- ÜBERGIBT, OB DAS FLAG GELÖSCHT WERDEN SOLL
|
||||
)
|
||||
processed_count += 1 # Nur zählen, wenn _process_single_row keine Exception geworfen hat
|
||||
rows_actually_processed.append(row_num) # Nur Zeilen hinzufügen, die erfolgreich an _process_single_row übergeben wurden
|
||||
|
||||
# Vorbereiten des Updates zum Löschen des 'x'-Flags (falls gewünscht)
|
||||
if clear_flag:
|
||||
flag_col_letter = self.sheet_handler._get_col_letter(reeval_col_idx + 1)
|
||||
if flag_col_letter:
|
||||
updates_clear_flag.append({'range': f'{flag_col_letter}{row_num}', 'values': [['']]})
|
||||
else:
|
||||
self.logger.error(f"Fehler: Konnte Spaltenbuchstaben für 'ReEval Flag' ({reeval_col_idx+1}) nicht ermitteln.")
|
||||
#if clear_flag:
|
||||
# flag_col_letter = self.sheet_handler._get_col_letter(reeval_col_idx + 1)
|
||||
# if flag_col_letter:
|
||||
# updates_clear_flag.append({'range': f'{flag_col_letter}{row_num}', 'values': [['']]})
|
||||
# else:
|
||||
# self.logger.error(f"Fehler: Konnte Spaltenbuchstaben für 'ReEval Flag' ({reeval_col_idx+1}) nicht ermitteln.")
|
||||
|
||||
except Exception as e_proc:
|
||||
# Wenn _process_single_row einen Fehler wirft, fangen wir ihn hier, loggen ihn
|
||||
@@ -3498,14 +3520,14 @@ class DataProcessor:
|
||||
# Hier könnten Sie einen Fehlerindikator in eine spezielle Spalte schreiben
|
||||
|
||||
# Lösche Flags am Ende in einem Batch-Update
|
||||
if clear_flag and updates_clear_flag:
|
||||
self.logger.info(f"Lösche ReEval-Flags für {len(updates_clear_flag)} erfolgreich verarbeitete Zeilen ({rows_actually_processed})...")
|
||||
# Nutzen Sie die batch_update_cells Methode des Sheet Handlers
|
||||
success = self.sheet_handler.batch_update_cells(updates_clear_flag)
|
||||
if success:
|
||||
self.logger.info("ReEval-Flags erfolgreich gelöscht.")
|
||||
else:
|
||||
self.logger.error("FEHLER beim Löschen der ReEval-Flags nach Re-Evaluation.")
|
||||
#if clear_flag and updates_clear_flag:
|
||||
# self.logger.info(f"Lösche ReEval-Flags für {len(updates_clear_flag)} erfolgreich verarbeitete Zeilen ({rows_actually_processed})...")
|
||||
# # Nutzen Sie die batch_update_cells Methode des Sheet Handlers
|
||||
# success = self.sheet_handler.batch_update_cells(updates_clear_flag)
|
||||
# if success:
|
||||
# self.logger.info("ReEval-Flags erfolgreich gelöscht.")
|
||||
# else:
|
||||
# self.logger.error("FEHLER beim Löschen der ReEval-Flags nach Re-Evaluation.")
|
||||
|
||||
self.logger.info(f"Re-Evaluierung abgeschlossen. {processed_count} Zeilen verarbeitet (Gefunden: {found_count}, Limit: {row_limit}).")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user