1111import difflib
1212import datetime
1313import sqlite3
14+ import warnings
1415from typing import Set , Dict , List , Tuple , Any , Optional
1516from dataclasses import dataclass , field
1617from functools import lru_cache
@@ -570,6 +571,12 @@ def analyze_file(path: str) -> AnalysisResult:
570571 # Fallback zu latin-1
571572 with open (path , "r" , encoding = "latin-1" ) as f :
572573 code = f .read ()
574+ warnings .warn (
575+ f"Datei '{ path } ' konnte nicht als UTF-8 gelesen werden. "
576+ "latin-1 Fallback wurde verwendet -- Analyse-Ergebnisse koennen Artefakte enthalten." ,
577+ UnicodeWarning ,
578+ stacklevel = 2 ,
579+ )
573580 except Exception as e :
574581 raise RuntimeError (f"Fehler beim Lesen der Datei: { e } " )
575582 except Exception as e :
@@ -800,7 +807,7 @@ def generate_report(result: AnalysisResult) -> str:
800807 report .append ("=" * 70 + "\n \n " )
801808
802809 # Hauptergebnisse
803- report .append ("🔍 HAUPTERGEBNISSE\n " )
810+ report .append ("[ANALYSE] HAUPTERGEBNISSE\n " )
804811 report .append ("-" * 70 + "\n " )
805812 report .append (f"Fehlende Definitionen ({ len (result .missing_defs )} ):\n " )
806813 report .append (f" { ', ' .join (result .missing_defs ) if result .missing_defs else '(keine)' } \n \n " )
@@ -813,7 +820,7 @@ def generate_report(result: AnalysisResult) -> str:
813820
814821 # Import-Analyse
815822 if result .import_scopes :
816- report .append ("\n 📦 IMPORT-SCOPE-ANALYSE\n " )
823+ report .append ("\n [IMPORTS] IMPORT-SCOPE-ANALYSE\n " )
817824 report .append ("-" * 70 + "\n " )
818825
819826 scopes = result .import_scopes
@@ -830,7 +837,7 @@ def generate_report(result: AnalysisResult) -> str:
830837
831838 # Duplikate
832839 if result .duplicate_imports :
833- report .append ("\n ⚠️ DOPPELTE IMPORTS\n " )
840+ report .append ("\n [WARNUNG] DOPPELTE IMPORTS\n " )
834841 report .append ("-" * 70 + "\n " )
835842 report .append (f" { ', ' .join (result .duplicate_imports )} \n \n " )
836843
@@ -852,7 +859,7 @@ def generate_report(result: AnalysisResult) -> str:
852859 report .append ("\n " )
853860
854861 # Statistik
855- report .append ("\n 📊 STATISTIK\n " )
862+ report .append ("\n [STATS] STATISTIK\n " )
856863 report .append ("-" * 70 + "\n " )
857864 report .append (f" Aufrufe gesamt: { len (result .calls )} \n " )
858865 report .append (f" Definitionen gesamt: { len (result .defs )} \n " )
@@ -952,17 +959,17 @@ def run_analysis(output_widget: scrolledtext.ScrolledText) -> None:
952959 _last_analysis_result = result
953960 except FileNotFoundError as e :
954961 output_widget .delete ("1.0" , tk .END )
955- output_widget .insert (tk .END , f"❌ Fehler: { e } " )
962+ output_widget .insert (tk .END , f"[FEHLER] { e } " )
956963 messagebox .showerror ("Dateifehler" , str (e ))
957964 return
958965 except RuntimeError as e :
959966 output_widget .delete ("1.0" , tk .END )
960- output_widget .insert (tk .END , f"❌ Fehler: { e } " )
967+ output_widget .insert (tk .END , f"[FEHLER] { e } " )
961968 messagebox .showerror ("Analysefehler" , str (e ))
962969 return
963970 except Exception as e :
964971 output_widget .delete ("1.0" , tk .END )
965- output_widget .insert (tk .END , f"❌ Unerwarteter Fehler: { e } " )
972+ output_widget .insert (tk .END , f"[FEHLER] Unerwarteter Fehler: { e } " )
966973 messagebox .showerror ("Fehler" , f"Unerwarteter Fehler: { e } " )
967974 return
968975
@@ -980,13 +987,13 @@ def run_analysis(output_widget: scrolledtext.ScrolledText) -> None:
980987 f .write (f"Datum: { datetime .datetime .now ().strftime ('%Y-%m-%d %H:%M:%S' )} \n \n " )
981988 f .write (generate_report (result ))
982989
983- output_widget .insert (tk .END , f"\n ✅ Report gespeichert: { export_path } " )
984-
990+ output_widget .insert (tk .END , f"\n [OK] Report gespeichert: { export_path } " )
991+
985992 except PermissionError :
986- output_widget .insert (tk .END , f"\n ⚠️ Keine Schreibberechtigung für Export" )
993+ output_widget .insert (tk .END , f"\n [WARNUNG] Keine Schreibberechtigung fuer Export" )
987994 messagebox .showwarning ("Export-Fehler" , "Keine Schreibberechtigung" )
988995 except Exception as e :
989- output_widget .insert (tk .END , f"\n ⚠️ Export-Fehler: { e } " )
996+ output_widget .insert (tk .END , f"\n [WARNUNG] Export-Fehler: { e } " )
990997 messagebox .showwarning ("Export-Fehler" , str (e ))
991998
992999
@@ -1058,7 +1065,7 @@ def auto_fix_unused_imports(output_widget: scrolledtext.ScrolledText) -> None:
10581065 f .writelines (new_lines )
10591066
10601067 # Ausgabe
1061- output_widget .insert (tk .END , f"\n \n ✅ AUTO-FIX ERFOLGREICH\n " )
1068+ output_widget .insert (tk .END , f"\n \n [OK] AUTO-FIX ERFOLGREICH\n " )
10621069 output_widget .insert (tk .END , f"Entfernte Zeilen: { sorted (lines_to_remove )} \n " )
10631070 output_widget .insert (tk .END , f"Backup erstellt: { backup_path } \n " )
10641071 output_widget .insert (tk .END , f"\n Bitte Datei erneut analysieren zur Überprüfung." )
0 commit comments