From 07ec3fbb9ee998cc63e472156656800113709bdc Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 15:00:45 +0000 Subject: [PATCH] fix: resolve CI linting errors --- src/gdiffer/output.py | 45 +++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/gdiffer/output.py b/src/gdiffer/output.py index 40ce07f..39bd182 100644 --- a/src/gdiffer/output.py +++ b/src/gdiffer/output.py @@ -63,7 +63,7 @@ class OutputFormatter: if analysis.all_suggestions: output_parts.append(self._format_suggestions(analysis.all_suggestions)) - return '\n'.join(output_parts) + return '\\n'.join(output_parts) def _format_summary(self, analysis: DiffAnalysis) -> str: """Format the summary section.""" @@ -76,19 +76,19 @@ class OutputFormatter: lines.append(f"[info]Total changes:[/info] {analysis.total_changes}") if analysis.language_breakdown: - lines.append("\n[bold blue]Languages:[/bold blue]") + lines.append("\\n[bold blue]Languages:[/bold blue]") for lang, count in sorted(analysis.language_breakdown.items()): lines.append(f" - {lang}: {count}") - return '\n'.join(lines) + return '\\n'.join(lines) def _format_files(self, analysis: DiffAnalysis) -> str: """Format file changes section.""" lines = [] - lines.append("\n[bold blue]=== File Changes ===[/bold blue]") + lines.append("\\n[bold blue]=== File Changes ===[/bold blue]") for i, file_obj in enumerate(analysis.files, 1): - lines.append(f"\n[filename]{i}. {file_obj.filename}[/filename]") + lines.append(f"\\n[filename]{i}. {file_obj.filename}[/filename]") change_emoji = { "add": "[added]✚[/added]", @@ -107,10 +107,11 @@ class OutputFormatter: lines.append(f" Changes: {total_changes} lines") for j, hunk in enumerate(file_obj.hunks, 1): - lines.append(f" Hunk {j} (lines {hunk.old_start}-{hunk.old_start + hunk.old_lines}):") + hunk_range = f"{hunk.old_start}-{hunk.old_start + hunk.old_lines}" + lines.append(f" Hunk {j} (lines {hunk_range}):") lines.append(self._format_hunk(hunk)) - return '\n'.join(lines) + return '\\n'.join(lines) def _format_hunk(self, hunk) -> str: """Format a single hunk with color-coded changes.""" @@ -126,20 +127,22 @@ class OutputFormatter: lines.append(f" [info]{line}[/info]") else: lines.append(f" {line}") - return '\n'.join(lines) + return '\\n'.join(lines) def _format_issues(self, issues: list[dict]) -> str: """Format issues section.""" lines = [] - lines.append("\n[bold blue]=== Detected Issues ===[/bold blue]") + lines.append("\\n[bold blue]=== Detected Issues ===[/bold blue]") severity_priority = {'critical': 0, 'high': 1, 'medium': 2, 'low': 3} - sorted_issues = sorted(issues, key=lambda x: severity_priority.get(x.get('severity', ''), 4)) + sorted_issues = sorted( + issues, key=lambda x: severity_priority.get(x.get('severity', ''), 4) + ) for issue in sorted_issues: severity = issue.get('severity', 'info').lower() color = getattr(SeverityColors, severity.upper(), 'info') - lines.append(f"\n[{color}]✖ {issue.get('title', 'Issue')}[/[{color}]]") + lines.append(f"\\n[{color}]✖ {issue.get('title', 'Issue')}[/[{color}]]") lines.append(f" Severity: [{color}]{severity.upper()}[/[{color}]]") lines.append(f" Description: {issue.get('description', '')}") if issue.get('line'): @@ -147,17 +150,17 @@ class OutputFormatter: if issue.get('suggestion'): lines.append(f" Suggestion: {issue['suggestion']}") - return '\n'.join(lines) + return '\\n'.join(lines) def _format_suggestions(self, suggestions: list[str]) -> str: """Format suggestions section.""" lines = [] - lines.append("\n[bold blue]=== Suggestions ===[/bold blue]") + lines.append("\\n[bold blue]=== Suggestions ===[/bold blue]") for i, suggestion in enumerate(suggestions, 1): - lines.append(f"\n[info]{i}. {suggestion}[/info]") + lines.append(f"\\n[info]{i}. {suggestion}[/info]") - return '\n'.join(lines) + return '\\n'.join(lines) def _format_json(self, analysis: DiffAnalysis) -> str: """Format as JSON.""" @@ -217,14 +220,14 @@ class OutputFormatter: lines.append(f"Total changes: {analysis.total_changes}") if analysis.language_breakdown: - lines.append("\nLanguages:") + lines.append("\\nLanguages:") for lang, count in sorted(analysis.language_breakdown.items()): lines.append(f" - {lang}: {count}") - lines.append("\n=== File Changes ===") + lines.append("\\n=== File Changes ===") for i, file_obj in enumerate(analysis.files, 1): - lines.append(f"\n{i}. {file_obj.filename}") + lines.append(f"\\n{i}. {file_obj.filename}") lines.append(f" Status: {file_obj.change_type}") if file_obj.is_rename: @@ -238,18 +241,18 @@ class OutputFormatter: lines.append(f" {line}") if analysis.all_issues: - lines.append("\n=== Detected Issues ===") + lines.append("\\n=== Detected Issues ===") for issue in analysis.all_issues: lines.append(f"- {issue.get('title', 'Issue')}") lines.append(f" Severity: {issue.get('severity', 'unknown')}") lines.append(f" Description: {issue.get('description', '')}") if analysis.all_suggestions: - lines.append("\n=== Suggestions ===") + lines.append("\\n=== Suggestions ===") for i, suggestion in enumerate(analysis.all_suggestions, 1): lines.append(f"{i}. {suggestion}") - return '\n'.join(lines) + return '\\n'.join(lines) def print(self, content: str) -> None: """Print content to console."""