From 7e4e1a68a89826b885c8cebf0c962f3ad9c2a68f Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 14:39:09 +0000 Subject: [PATCH] fix: resolve CI linting errors - remove unused imports and update type annotations --- src/gdiffer/models.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/gdiffer/models.py b/src/gdiffer/models.py index a404b9d..1949207 100644 --- a/src/gdiffer/models.py +++ b/src/gdiffer/models.py @@ -1,7 +1,6 @@ """Data models for git diff parsing and analysis.""" from dataclasses import dataclass, field -from typing import Optional @dataclass @@ -16,6 +15,7 @@ class DiffHunk: header: str = "" def get_added_lines(self) -> list[tuple[int, str]]: + """Return tuples of (line_number, content) for added lines.""" result = [] for i, line in enumerate(self.new_lines_content): if line.startswith('+') and not line.startswith('+++'): @@ -23,6 +23,7 @@ class DiffHunk: return result def get_removed_lines(self) -> list[tuple[int, str]]: + """Return tuples of (line_number, content) for removed lines.""" result = [] for i, line in enumerate(self.old_lines_content): if line.startswith('-') and not line.startswith('---'): @@ -30,6 +31,7 @@ class DiffHunk: return result def get_modified_lines(self) -> list[tuple[int, str, str]]: + """Return tuples of (old_line, old_content, new_content) for modified lines.""" result = [] added = self.get_added_lines() removed = self.get_removed_lines() @@ -44,36 +46,41 @@ class DiffHunk: @dataclass class DiffFile: """Represents a file in the diff with its changes.""" - old_path: Optional[str] - new_path: Optional[str] - new_file_mode: Optional[str] = None - deleted_file_mode: Optional[str] = None - similarity_index: Optional[str] = None - rename_from: Optional[str] = None - rename_to: Optional[str] = None + old_path: str | None + new_path: str | None + new_file_mode: str | None = None + deleted_file_mode: str | None = None + similarity_index: str | None = None + rename_from: str | None = None + rename_to: str | None = None hunks: list[DiffHunk] = field(default_factory=list) change_type: str = "modify" @property def filename(self) -> str: + """Get the current filename.""" if self.new_path: return self.new_path return self.old_path or "" @property def is_new(self) -> bool: + """Check if this is a new file.""" return self.new_file_mode is not None or self.old_path in [None, "/dev/null"] @property def is_deleted(self) -> bool: + """Check if this file was deleted.""" return self.deleted_file_mode is not None @property def is_rename(self) -> bool: + """Check if this file was renamed.""" return self.rename_from is not None @property def extension(self) -> str: + """Get the file extension.""" filename = self.filename if '.' in filename: return filename.rsplit('.', 1)[-1].lower() @@ -84,7 +91,7 @@ class DiffFile: class CodeChange: """Represents a code change with context.""" file: DiffFile - hunk: Optional[DiffHunk] + hunk: DiffHunk | None old_code: str new_code: str language: str = "unknown"