From f9cb3488dacb18b4403c98c59a35853bbddb612d Mon Sep 17 00:00:00 2001 From: Floke Date: Sat, 19 Jul 2025 19:14:16 +0000 Subject: [PATCH] data_processor.py aktualisiert --- data_processor.py | 51 ++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/data_processor.py b/data_processor.py index c10ed7f4..d3c8f55c 100644 --- a/data_processor.py +++ b/data_processor.py @@ -447,17 +447,21 @@ class DataProcessor: updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wiki Verif. Timestamp"] + 1)}{row_num_in_sheet}', 'values': [[now_timestamp]]}) # --- Finales Schreiben ins Sheet --- - if wiki_data_updated_in_this_run: + if wiki_data_was_extracted_or_updated: key_mapping = { 'Wiki URL': 'url', 'Wiki Sitz Stadt': 'sitz_stadt', 'Wiki Sitz Land': 'sitz_land', 'Wiki Absatz': 'first_paragraph', 'Wiki Branche': 'branche', 'Wiki Umsatz': 'umsatz', 'Wiki Mitarbeiter': 'mitarbeiter', 'Wiki Kategorien': 'categories' } for sheet_col_name, data_key in key_mapping.items(): - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP[sheet_col_name] + 1)}{row_num_in_sheet}', - 'values': [[final_wiki_data.get(data_key, 'k.A.')]] - }) + # KORRIGIERT: Nutze die globale Hilfsfunktion get_col_idx + col_idx = get_col_idx(sheet_col_name) + if col_idx is not None: + col_letter = self.sheet_handler._get_col_letter(col_idx + 1) + updates.append({ + 'range': f'{col_letter}{row_num_in_sheet}', + 'values': [[final_wiki_data.get(data_key, 'k.A.')]] + }) updates.append({ 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wikipedia Timestamp"] + 1)}{row_num_in_sheet}', @@ -506,27 +510,14 @@ class DataProcessor: schema_data=self.schema_data ) - # Updates für die Sheet-Spalten vorbereiten - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num_in_sheet}', - 'values': [[branch_result.get("branch", "FEHLER BRANCH")]] - }) - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num_in_sheet}', - 'values': [[branch_result.get("confidence", "N/A CONF")]] - }) - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num_in_sheet}', - 'values': [[branch_result.get("consistency", "error CONS")]] - }) - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num_in_sheet}', - 'values': [[branch_result.get("justification", "No JUST")]] - }) + updates.append({'range': f'{self.sheet_handler._get_col_letter(get_col_idx("Chat Vorschlag Branche") + 1)}{row_num_in_sheet}', 'values': [[branch_result.get('branch', 'FEHLER')]]}) + updates.append({'range': f'{self.sheet_handler._get_col_letter(get_col_idx("Chat Branche Konfidenz") + 1)}{row_num_in_sheet}', 'values': [[branch_result.get('confidence', 'N/A')]]}) + updates.append({'range': f'{self.sheet_handler._get_col_letter(get_col_idx("Chat Konsistenz Branche") + 1)}{row_num_in_sheet}', 'values': [[branch_result.get('consistency', 'error')]]}) + updates.append({'range': f'{self.sheet_handler._get_col_letter(get_col_idx("Chat Begruendung Abweichung Branche") + 1)}{row_num_in_sheet}', 'values': [[branch_result.get('justification', 'k.A.')]]}) + except Exception as e_branch_eval: - self.logger.error( - f"FEHLER bei Branchen-Einstufung für Zeile {row_num_in_sheet}: {e_branch_eval}") - # Optional: Fehlerwerte in die Spalten schreiben + self.logger.error(f"FEHLER bei Branchen-Einstufung für Zeile {row_num_in_sheet}: {e_branch_eval}") + # Fehlerwerte in die Spalten schreiben error_updates = [ {"key": "Chat Vorschlag Branche", "value": "FEHLER_CALL"}, {"key": "Chat Branche Konfidenz", "value": "N/A"}, @@ -534,10 +525,12 @@ class DataProcessor: {"key": "Chat Begruendung Abweichung Branche", "value": str(e_branch_eval)[:100]} ] for item in error_updates: - updates.append({ - 'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP[item["key"]] + 1)}{row_num_in_sheet}', - 'values': [[item["value"]]] - }) + col_idx = get_col_idx(item["key"]) + if col_idx is not None: + updates.append({ + 'range': f'{self.sheet_handler._get_col_letter(col_idx + 1)}{row_num_in_sheet}', + 'values': [[item["value"]]] + }) # --- NEUER SCHRITT: FSM Pitch generieren --- if 'fsm_pitch' in chat_steps_to_run and self._needs_fsm_pitch(row_data, force_reeval):