"""diff_checker.py — Genera e valida diff tra versioni di file.""" import difflib, re from pathlib import Path def generate_diff(original:str,modified:str,filename:str="file")->dict: a=original.splitlines(keepends=True); b=modified.splitlines(keepends=True) lines=list(difflib.unified_diff(a,b,fromfile=f"a/{filename}",tofile=f"b/{filename}",lineterm="")) diff="\n".join(lines) added=sum(1 for l in lines if l.startswith("+") and not l.startswith("+++")) removed=sum(1 for l in lines if l.startswith("-") and not l.startswith("---")) return {"diff":diff,"added":added,"removed":removed,"has_changes":len(lines)>0} def validate_python(code:str)->dict: import ast try: ast.parse(code); return {"valid":True,"errors":[]} except SyntaxError as e: return {"valid":False,"errors":[f"L{e.lineno}: {e.msg}"]} def file_diff(path_a:str,path_b:str)->dict: try: return generate_diff(Path(path_a).read_text(encoding="utf-8"),Path(path_b).read_text(encoding="utf-8"),Path(path_a).name) except Exception as e: return {"error":str(e),"diff":""}