duplicate_checker.py aktualisiert

This commit is contained in:
2025-08-18 12:27:31 +00:00
parent 2f009027c3
commit f973c24df7

View File

@@ -414,35 +414,39 @@ def main(job_id=None):
results.append({'Match':'', 'Score': best_score, 'Match_Grund': f"{best_comp} | {reason} TH={applied_threshold}"})
logger.info(f" --> Kein Match (Score={best_score}) {best_comp} | {reason} TH={applied_threshold}")
# Ergebnisse zurückschreiben
update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Sheet...")
logger.info("Schreibe Ergebnisse ins Sheet (SAFE in-place, keine Spaltenverluste)…")
res_df = pd.DataFrame(results, index=match_df.index)
write_df = match_df.copy()
write_df['Match'] = res_df['Match']
write_df['Score'] = res_df['Score']
write_df['Match_Grund'] = res_df['Match_Grund']
# --- Ergebnisse zurückschreiben ---
logger.info("Matching-Prozess abgeschlossen. Bereite Ergebnisse für den Upload vor...")
update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Google Sheet...")
drop_cols = ['normalized_name','normalized_domain','block_key','Effektive Website','domain_use_flag']
for c in drop_cols:
if c in write_df.columns:
write_df.drop(columns=[c], inplace=True)
result_df = pd.DataFrame(results)
# Füge die Ergebnisse zu den Originaldaten hinzu
# original_matching_df ist die saubere Kopie von Anfang an
output_df = pd.concat([original_matching_df.reset_index(drop=True), result_df], axis=1)
# Backup-Logik
now = datetime.now().strftime("%Y-%m-%d_%H-%M")
backup_path = os.path.join(Config.LOG_DIR, f"{now}_backup_{MATCHING_SHEET_NAME}.csv")
try:
write_df.to_csv(backup_path, index=False, encoding='utf-8')
logger.info(f"Lokales Backup geschrieben: {backup_path}")
# Stelle sicher, dass das Log-Verzeichnis existiert
os.makedirs(Config.LOG_DIR, exist_ok=True)
output_df.to_csv(backup_path, index=False, encoding='utf-8-sig', sep=';')
logger.info(f"Lokales Backup der Ergebnisse wurde in '{backup_path}' geschrieben.")
except Exception as e:
logger.warning(f"Backup fehlgeschlagen: {e}")
logger.warning(f"Backup der Ergebnisse konnte nicht geschrieben werden: {e}")
data = [write_df.columns.tolist()] + write_df.fillna('').values.tolist()
ok = sheet.clear_and_write_data(MATCHING_SHEET_NAME, data)
# Konvertiere in Liste von Listen für den Upload
data_to_write = [output_df.columns.tolist()] + output_df.fillna('').values.tolist()
logger.info(f"Versuche, {len(data_to_write) - 1} Ergebniszeilen in das Sheet '{MATCHING_SHEET_NAME}' zu schreiben...")
ok = sheet.clear_and_write_data(MATCHING_SHEET_NAME, data_to_write)
if ok:
logger.info("Ergebnisse erfolgreich geschrieben")
logger.info("Ergebnisse erfolgreich in das Google Sheet geschrieben.")
update_status(job_id, "Abgeschlossen", f"{total} Accounts erfolgreich geprüft.")
else:
logger.error("Fehler beim Schreiben ins Google Sheet")
logger.error("Fehler beim Schreiben der Ergebnisse ins Google Sheet.")
update_status(job_id, "Fehlgeschlagen", "Fehler beim Schreiben ins Google Sheet.")
# Summary