From 903362afeffb30d0a1642e09453283048fbd259e Mon Sep 17 00:00:00 2001 From: Floke Date: Tue, 22 Apr 2025 14:17:22 +0000 Subject: [PATCH] bugfix --- brancheneinstufung.py | 51 ++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index f3522470..2d5aff28 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -4145,21 +4145,46 @@ class DataProcessor: updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wiki Kategorien"] + 1)}{row_num_in_sheet}', 'values': [[final_wiki_data.get('categories', 'k.A.')]]}) updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wikipedia Timestamp"] + 1)}{row_num_in_sheet}', 'values': [[now_timestamp]]}) # AN Timestamp setzen - # Setze S ('Chat Wiki Konsistenzprüfung') zurück, wenn eine Neubewertung nötig ist: - # - Immer bei force_reeval - # - Wenn die URL in M geändert wurde (entweder durch Suche oder weil M vorher leer war) - # - Wenn Status S zuvor "X (URL Copied)" war - url_changed = (url_in_m != final_wiki_data.get('url')) # Prüft ob die NEUE URL anders ist als die ursprünglich in M - if force_reeval or status_s_indicates_reparse or url_changed: - s_idx = COLUMN_MAP.get("Chat Wiki Konsistenzprüfung") - if s_idx is not None: - s_let = self.sheet_handler._get_col_letter(s_idx + 1) - updates.append({'range': f'{s_let}{row_num_in_sheet}', 'values': [["?"]]}) # Fragezeichen für Neubewertung - logging.info(f" -> Status S zurückgesetzt auf '?' für erneute Verifikation (Grund: {'Re-Eval' if force_reeval else ('S=\'X (URL Copied)\'' if status_s_indicates_reparse else 'URL geändert')}).") +# Setze S ('Chat Wiki Konsistenzprüfung') zurück, wenn eine Neubewertung nötig ist: + # - Immer bei force_reeval + # - Wenn die URL in M geändert wurde (entweder durch Suche oder weil M vorher leer war) + # - Wenn Status S zuvor "X (URL Copied)" war + url_changed = (url_in_m != final_wiki_data.get('url')) # Prüft ob die NEUE URL anders ist als die ursprünglich in M + + # Prüfen, ob das Zurücksetzen des Status S überhaupt notwendig ist + if force_reeval or status_s_indicates_reparse or url_changed: + s_idx = COLUMN_MAP.get("Chat Wiki Konsistenzprüfung") + if s_idx is not None: + s_let = self.sheet_handler._get_col_letter(s_idx + 1) + # Füge das Update zum Zurücksetzen von S hinzu + updates.append({'range': f'{s_let}{row_num_in_sheet}', 'values': [["?"]]}) # Fragezeichen für Neubewertung + + # Bestimme den Grund-String VOR dem Logging-Aufruf + grund_message_parts = [] + if force_reeval: + grund_message_parts.append('Re-Eval') + # Beachten Sie: Hier verwenden wir einen normalen String, KEINEN f-String, + # für den Text "S='X (URL Copied)'". Wir escapen die einfachen Anführungszeichen + # nicht, weil wir die äußeren Anführungszeichen des String-Literals ändern (auf doppelt), + # oder wir lassen die einfachen Anführungszeichen einfach unescaped im String. + # Letzteres ist in einem normalen String erlaubt. + if status_s_indicates_reparse: + grund_message_parts.append("S='X (URL Copied)'") # Nutzen Sie doppelte Anführungszeichen außen + if url_changed: + grund_message_parts.append('URL geändert') + + # Verbinde die Gründe, falls mehrere zutreffen + grund_message = ", ".join(grund_message_parts) + + # Logge nun mit dem vorbereiteten Grund-String + logging.info(f" -> Status S zurückgesetzt auf '?' für erneute Verifikation (Grund: {grund_message}).") + + # else: # Diesen else-Zweig gab es vorher nicht, ist auch nicht nötig + # logging.debug(f"Zeile {row_num_in_sheet}: Status S nicht zurückgesetzt (AN da, S nicht X(Copied), kein Re-Eval).") - elif process_wiki: - logging.debug(f"Zeile {row_num_in_sheet}: Überspringe Wikipedia Verarbeitung (AN vorhanden, kein S=\'X (URL Copied)\' und kein Re-Eval).") + elif process_wiki: # Dieser elif-Zweig gehört weiterhin zum if wiki_processing_needed: Block + logging.debug(f"Zeile {row_num_in_sheet}: Überspringe Wikipedia Verarbeitung (AN vorhanden, kein S='X (URL Copied)' und kein Re-Eval).") # --- 3. ChatGPT Evaluationen (Branch etc.) (Prüft AO oder force_reeval oder wiki_data_updated_in_this_run) ---