| #!/bin/bash |
| cd /home/dev/rmi/backend |
|
|
| echo "=== Step 1: Auto-fix with ruff ===" |
| ruff check app/ --fix --unsafe-fixes |
|
|
| echo "=== Step 2: Count remaining errors ===" |
| ruff check app/ 2>&1 | grep "Found" | tail -1 |
|
|
| echo "=== Step 3: Fix B904 (raise from None) ===" |
| |
| python3 -c " |
| import re |
| import os |
| |
| result = os.popen('ruff check app/ 2>&1').read() |
| |
| # Find files with B904 |
| b904_files = set() |
| lines = result.split('\n') |
| current_file = None |
| for i, line in enumerate(lines): |
| file_match = re.search(r' -->\s*(app/[^:]+):', line) |
| if file_match: |
| current_file = file_match.group(1) |
| if 'B904' in line and current_file: |
| b904_files.add(current_file) |
| |
| print(f'Files with B904: {len(b904_files)}') |
| |
| count = 0 |
| for filepath in b904_files: |
| if not os.path.exists(filepath): |
| continue |
| try: |
| with open(filepath, 'r') as f: |
| lines = f.readlines() |
| |
| new_lines = [] |
| i = 0 |
| while i < len(lines): |
| line = lines[i] |
| new_lines.append(line) |
| |
| # Check if this line ends 'except' (no 'as') |
| if re.match(r'^\s*except\s*:$', line): |
| # Look ahead for raise within next 5 lines |
| j = i + 1 |
| while j < min(i + 6, len(lines)): |
| if 'raise ' in lines[j] and ' from ' not in lines[j]: |
| indent = len(lines[j]) - len(lines[j].lstrip()) |
| new_lines.append(' ' * indent + 'from None\n') |
| break |
| new_lines.append(lines[j]) |
| if 'raise' in lines[j]: |
| break |
| j += 1 |
| i = j + 1 |
| else: |
| i += 1 |
| |
| if new_lines != lines: |
| with open(filepath, 'w') as f: |
| f.writelines(new_lines) |
| count += 1 |
| print(f'Fixed B904: {filepath}') |
| except Exception as e: |
| print(f'Error: {filepath} - {e}') |
| |
| print(f'Fixed {count} files with B904') |
| " |
|
|
| echo "=== Step 4: Count again ===" |
| ruff check app/ 2>&1 | grep "Found" | tail -1 |
|
|